【2021.9.17】pytest自学笔记
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一直接在Pycharm中安装Pytest
一安装插件
1.pytest-html 生成HTML格式的测试报告
2.pytest-xdist 测试用例分布式执行
3.pytest-ordering 用户改变测试用例的执行顺序
4.pytest-rerunfailures 用例失败后重跑
5.allure-pytest 用户生成美观的测试报告
!:allure需求进入官网下载包并配置环境变量
allure下载地址:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/
!:快捷安装插件方式
1.在pycharm中新建一个txt文件
2.在txt文件中写入要安装的插件名 #一行一个插件名
3.在pycharm底部终端中输入:pip install -r (文件名)
一Pytest默认格式(可修改)
模块名必须以test_开头或以_test结尾
类名必须以Test开头
方法名必须以test开头
一Pytest中函数
1.-s 表示输出调试信息,包括print打印的信息
2.-v 显示更纤细的参数
3.-n 用户进行多线程或分布式运行 注:主函数使用方法为 ’-n=(线程数)‘
4.--reruns 用例出错重跑 注:此函数为双 ’-‘ 开头
5.-x 遇到错误就停止执行 注:不常用
6.-k 根据用例的部分字符串来指定运行测试用例 注:主函数使用方法为 ’-k=(文本)‘
7.-maxfail 当出现x个用例失败就停止运行 注:主函数使用方法为 ’-maxfil=(错误数)‘
8.-m 执行已经被命名或分类修饰的用例 注:主函数使用方法为 ’-m=(修饰时使用的自定义名)
|||知识点|||
Unittest是通过ASCLL码的大小来确定用例执行顺序
Pytest是从上至下执行用例
一Pytest中基础的修饰方法
1.@pytest.mark.skip(resson=‘备注’) 跳过被修饰的用例(无条件直接跳过,备注并不必须存在)
2.@pytest.mark.xfail 认定被修饰的用例是个错误的用例
3.@pytest.mark.(自定义名) 为此用例命名或分类
4.@pytest.mark.run(order = 值) 用例执行顺序 注:值越小越先执行
5.@pytest.mark.skipif(条件,reason=‘备注’) 若满足条件则跳过(有条件跳过方式,备注为必须存在)
一主函数模式指定文件/模块/类/方法执行用例
运行所有模块:pytest.main()
指定运行:pytest.main([‘-vs’ ‘路径’])
注:当指定路径时每级用 ‘::’ 隔开
一通过读取pytest.ini配置文件运行
!:不管是主函数运行,命令行模式运行,都会读取这个配置文件,并以此配置文件为主,配置文件可以修改pytest的默认取名规则。
1.配置文件放在项目的根目录
2.配置文件编码为ANSI 注:编码问题可以使用notpad++修改
pytest.ini文件格式:
[pytest]
addopts= 注:命令行参数,多个参数用空格分开
testpaths= 注:测试用例文件夹,自行配置
python_file= 注:测试搜索的文件名称,可修改默认规则
python_class= 注:测试所搜的测试类名,可修改默认规则
python_functions= 注:测试搜索的测试方法名,可修改默认规则
markers= 注:执行的用例组
!:若不进行配置则默认查找并允许
一比较笨重的前后置处理setup和teardown以及setup_class和teardown_class
1.def setup(self) 在每一条用例执行前都执行,有几条用例就执行几次
2.def teardown(self) 在每一条用例执行后都执行,有几条用例就执行几次
3.def setup_class(self) 在每个类开始前执行,有几个类就执行几次
4.def teardown_class(self) 在每个类结束后执行,有几个类就执行几次
!:setup与teardown用于重复且简单的操作,如:打开浏览器等
setup_class与teardown_class用于不需要重复且重要的操作,如:连接数据库等
过于笨重,只能用于全体,不能指定部分

浙公网安备 33010602011771号