pytest框架
模块:pytest
基本使用方法:
1.函数名要以test开头
2.类名需要以Test开头,类中的方法需要以test开头;类中不能有构造方法
3.使用assert进行断言
4.脚本名需要以test开头
作用于函数
pytest.main中第一个参数:-s,将print语句的结果输出
第二个参数:__file__表示当前文件
作用于类
用例执行
方式1:
脚本:pytest.main([参数1,参数2,…..])
-s,将print语句的结果输出
-v,以详细信息显示每条用例执行结果
-q,以极简形式显示测试结果
-k,通过关键字匹配脚本、函数名、类名、方法名
-x,如果测试执行过程中有fail的用例,则测试立即停止
–maxfile=n,当失败的用例达到指定的数量n时,停止测试
-m,对用例进行标记,执行指定的用例
01.在项目根目录下新建文件pytest.ini,
02.在文件内添加标记
03.使用装饰器标记测试用例 @pytest.mark.标记
04.执行测试时,使用-m 标记 即可执行指定的用例
方式2:
命令行方式:pytest 参数 脚本;py.test 参数 脚本 ;python -m pytest 参数 脚本
跳过用例
@pytest.mark.skip(reason=xxxx),无条件跳过指定用例
@pytest.mark.skipif(条件,reason=xxxxx),有条件跳过指定用例
参数化
@pytest.mark.parametrize(‘参数1,参数2,….’,值)
参数,与被装饰的函数的形参相同
值,传递给参数的数据,如果需要给多个参数传数据可以将这些数据封包到元组中,通常为一个列表,列表中有几个值,相当于有多少条测试用例。
例1.(一个参数):
例2(多个参数):
例3.(登录功能,包含两种接收测试数据的方法):
前置后置
模块级,作用范围为当前模块,模块中的所有测试用例执行前后分别运行1次前置和后置
setup_module(),前置,用例执行前运行一次
teardown_module(),后置,用例执行后运行一次
函数级,作用范围为当前函数中的所有测试函数,类中的每条测试用执行前后分别运行一次前置和后置
setup_module(),前置,所有用例执行前运行一次
teardown_module(),后置,所有用例执行后运行一次
类级,作用范围为当前类,类中的每条测试用执行前后分别运行一次前置和后置
setup_module(),前置,所有用例执行前运行一次
teardown_module(),后置,所有用例执行后运行一次
方法级,作用范围为当前类中的每一个测试方法,每条测试用执行前后分别运行一次前置和后置
setup_module()或者setup(),前置,每条用例执行前运行一次
teardown_module()或者teardown(),前置,每条用例执行后运行一次
fixture(固件)
创建:@pytest.fixture([name,scope,params,autouse])
name,指定fixture名称,如果不指定则默认为被装饰的函数名
scope,指定fixture作用范围,module、class、function(默认)、session、package
params,参数
autouse,设置为Ture,实现自动调用fixture
全局fixture
1.在项目下创建conftest.py文件,在该文件中实现fixture
yield返回一个值
2.调用
Original: https://blog.csdn.net/xljniui/article/details/119766822
Author: NJUPT-Xuxu
Title: python高阶4(pytest)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/776528/
转载文章受原作者版权保护。转载请注明原作者出处!