详解Pytest测试⽤例的执⾏⽅法
pytest概述
pytest是⼀个⾮常成熟的全功能的Python测试框架,主要特点有以下⼏点:
1、简单灵活,容易上⼿,⽂档丰富;
2、⽀持参数化,可以细粒度地控制要测试的测试⽤例;
3、能够⽀持简单的单元测试和复杂的功能测试,还可以⽤来做selenium/appnium等⾃动化测试、接⼝⾃动化测试
(pytest+requests);
4、pytest具有很多第三⽅插件,并且可以⾃定义扩展,⽐较好⽤的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告⽣成)、pytest-rerunfailures(失败case重复执⾏)、pytest-xdist(多CPU分发)等;
5、测试⽤例的skip和xfail处理;
6、可以很好的和CI⼯具结合,例如jenkins
如下是⽬录结构:
1、主函数模式
(1)运⾏所有 pytest.main()
(2)指定模块 pytest.main('[-vs],','./testcase/test_day1.py')
(3)指定⽬录pytest.main('[-vs]'),'./testcase')
(4)通过nodeid指定⽤例运⾏:nodeid由模块名,分隔符,类名,⽅法名,函数名组成
#pytest.main(["-vs"],'./interface_testcase/test_day3.py::test_demo11')
#pytest.main(["-vs"],'./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1')
2、命令⾏模式
(1)运⾏所有:pytest
(2)指定模块 pytest -vs ./testcase/test_day1.py
(3)指定⽬录 pytest -vs ./testcase
(4)通过nodeid指定⽤例运⾏:nodeid由模块名,分隔符,类名,⽅法名,函数名组成
pytest -vs ./interface_testcase/test_day3.py::test_demo11
pytest -vs ./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1
参数详解:
-s:表⽰输出调试信息,包括print打印的信息
-v显⽰更详细的信息
-vs⼀起使⽤
-n⽀持多线程或者分布式运⾏测试⽤例
#如 #pytest.main(['-vs','./testcase/test_day1.py','-n=2'])
# pytest -vs ./testcase/test_day1.py -n 2
#reruns==number 表⽰失败⽤例重跑
#pytest -vs ./testcase/test_day2.py --reruns 2
#pytest.main(['–vs','./testcase/test_day2.py',‘reruns=2']) #失败得的⽤例重跑两次
#-x表⽰只要⼀个⽤例报错,那么测试停⽌运⾏
#–maxfail=2 出现两个失败⽤例停⽌
#-k 根据测试⽤例的部分字符串指定测试⽤例 pytest -vs test_day2 -k “yang”
3、通过读取pytest ini配置⽂件运⾏(最主要运⽤的⽅式)
#pytest.ini是pytest单元测试框架中的核⼼配置⽂件
(1)位置:⼀般是放在项⽬的根⽬录
(2)编码:必须是ANSI,可以使⽤notepad++来修改编码格式
(3)作⽤:改变pytest的默认⾏为
(4)运⾏的规则:不管是主函数的模式运⾏该,命令⾏模式,都会区读取这个配置⽂件
[pytest]
addopts=-vs    #命令⾏参数⽤空格分离
testpaths=./testcase #测试⽤例的路径 ./testcase/test_day2.py #
app接口测试工具
python_files=test_*.py  #模块名的规则
python_classes=Test*    #类名的规则
python_functions=test  #⽅法名的规则
#实际项⽬配置中,尽量删除注释,确保不必要的问题出现
以上就是详解Pytest测试⽤例的执⾏⽅法的详细内容,更多关于Pytest测试⽤例的资料请关注其它相关⽂章!