自动化测试持续学习中,不断更新内容…
立志成为一名拥有全栈开发能力的测试开发工程师和自动化测试工程师,记录我的学习之路,内容持续更新中…
使用pip install -r requirements.txt一键下载全部的包
pytest
pytest-html(生成html报告的插件)
pytest-xdist(多线程运行的插件)
pytest-ordering(改变用例执行顺序的插件)
pytest-rerunfailres(失败用例重跑的插件)
allure-pytest(生成美观的自定义的allure报告的插件)
执行用例的方法:
1、使用命令
pytest
-v
输出详细信息
-s
输出调试内容
-vs
组合使用 如pytest -vs
-n
多线程运行(前提需要安装pytest-xdist)如pytest -vs -n=2使用两个线程
--reruns num
失败重跑,前提安装pytest-rerunfailres插件 如pytest -vs --reruns=2
-x
出现一个用例失败则停止测试 如pytest -vs -x
-maxfail
出现几个用例失败才终止 如pytest -vs --maxfail=2
--html
生成html的测试报告(前提需要安装pytest-html插件)如pytest -vs --html 报告存放路径
-k
运行测试用例名称当中包含某个字符串的测试用例 如pytest -vs -k “xxx or xxx”
pytest -vs --alluredir='存在allure报告路径'//会在指定的目录下生成一个json文件
//运行以下命令启动一个allure服务器在浏览器展示allure报告
allure serve '存放json文件的目录'//这样就能在浏览器查看美观的allure报告了
raise Exception()
抛出异常
try except
将可能有报错的语句放到try当中,如果发生错误代码执行就跳到except当中
2、通过主函数main方式执行
1 if __name__ == '__main__'
2 pytest.main()
3、通过全局配置文件pytest.ini文件执行
创建一个pytest.ini文件
pytest.ini文件可以改变默认的用例执行规则
[pytest]
addopts = -vs
testpaths = 用例路径
python_files = test_*.py
python_classes = Test*
python_functions = test_*
4、pytest跳过测试用例,借助pytest提供的装饰器实现
(1)无条件跳过
@pytest.mark.skip(reason="无理由")
(2)有条件跳过
@pytest.mark.skipif(workage<10,reason="工作经验少于10年跳过")
5、pytest测试用例的前后置,固件
class CommonUtil:
def setup_class(self): #每个类之前执行一次
print()
def teardown_class(self): #每个类之后执行一次
print()
def setup(self): #每个用例之前执行一次
print()
def teardown(self): #每个用例之后执行一次
print()
6、使用fixtrue实现部分前后置
@pytest.fixtrue()
scope
:作用域
function
:在函数之前和之后执行
class
:在类之前和之后执行
package/session
:在整个项目会话之前和之后执行
autouse
:自动执行,默认为false
@pytest.fixtrue(scope = "function",autouse = true)