Pytest--详解01
何为pytest?
基于python的单元测试框架.用来发现测试用例、执行测试用例、判断测试结果、生成测试报告
1.相关插件:
pytest 自己
pytest-html 生成测试报告
pytest-xdist 多线程执行
ytest-rerunfailures 执行重跑
pytest-ordering 修改执行顺序
pytest-base-url 管理基础路径
allure-pytest 生成测试报告
安装插件:
(1)新建requirements.txt文件,将上述插件放入文档(不需要复制中文)
(2)执行:pip install -r requirements.txt
2.pytest的执行规则:
模块名必须使用test_或者_test结尾(.py文件)
测试类必须用Test开头
测试用例必须使用test开头
3.pytest用例的运行方式以及参数
(1)
-vs
-v输出更加详细测试信息
-s输出用例中的调试信息
pytest -vs
-n 多线程运行 pytest -vs -n 3
--reruns 失败用例重跑 pytest -vs --reruns 2
-x 一旦出现失败终止测试 pytest -x
--maxfail 出现指定错误终止 pytest -vs --maxfail 2
--html 生成简易测试报告 pytest -vs --html=./reports/reports.html
指定模块运行:pytest -vs ./testcases/test_weixin.py
指定文件夹运行:pytest -vs ./testcases
通过node id运行:pytest -vs ./testcases/weixin/test_weixin.py::TestApi::test_02_add_flag
(2)主函数的方式运行
首先在,当前目录建立一个run,py文件,添加一个main函数,多个参数使用列表的方式添加
if __name__ == '__main__': pytest.main(['-vs','-n 2'])
(3)使用基于python.ini文件运行
一、配置文件的名称是固定的,一般放在项目的根目录下
二、作用:可以改变pytest默认的用例执行规则
三、不管是命令行的方式,还是主函数的方式都会自动读取该配置文件去运行。
[pytest] addopts = -vs --html=./reports/reports.html -m ''smoke or manage'' testpaths = ./testcases #指定测试用例路径 python_files = test_*.py #指定模块 python_classes = Test* #指定测试类 python_functions = test_* #指定测试用例默认规则 markers = smoke:冒烟 user_manage:管理
注意: 1.一旦有编码错误,那么需要改成gb2312的编码格式或者是不写中文注释。 2.必须在测试用例上面加上标记。
4.执行顺序
默认测试顺序是从上到下依次执行,改变测试用例的执行顺序使用: @pytest.mark,run(order=1) 1、2、3表示执行顺序
5.跳过用例
无条件: @pytest.mark.skip(reason=''用例无条件跳过)
有条件:@pytest.mark.skip(age < 5,reason=''年龄小于五年的不用)
6.测试用例的前后置
def setup_class(self): print("在类的前面执行的操作") def teardown_class(self): print("在类的后面执行的操作") def setup(self): print("测试用例执行之前的操作") def teardown(self): print("测试用例执行之后的操作")
每篇一句:
我把青春放在那个角落里,蒙了厚厚一层灰,你怎么又帮我拿出来,吹了一下。
本文来自博客园,作者:Titen,转载请注明原文链接:https://www.cnblogs.com/chengxiazuohua/p/15600579.html