赞
踩
在文章开始前,先了解一下本文章使用到工程结构情况,本栏会围绕该工程进行举例说明。
Test_project工程的根目录有两个模块(主函数main()模块,test_token.py模块)和一个testcase包,testcase包中新建了名为test_login.py模块。
test_token.py模块下有一个test_01的方法,test_login.py模块新建TestLogin类,类包含了test02和test03两个方法。
pytest的命名默认规则如下:
1. 模块名必须以test_开头或以_test结尾(如,test_login.py)
2. 测试类必须以Test开头,并且不能有init方法(如,class TestLogin:)
3. 测试方法必须以test开头(如,def test_01()或test02())
pytest运行方式主要有三种,main()函数运行、终端运行和main()结合配置文件方式运行。
(1)运行所有测试用例:pytest.main()
(2)运行指定路径的用例:pytest.main( ["./路径"] )
(3)运行指定模块的用例:pytest.main( ["模块名.py"] )
(4)运行指定用例:pytest.main( [ " ./路径/模块名::类名::方法"] )
main()函数在测试模块中可以省略,在任意一模块中有主函数,满足条件的所有测试用例均可以执行。因此,常常在项目中单独创建一个模块来存放main()函数的代码。
【注】在图中指定只执行test_login.py模块时,前面还增加了模块对应的路径,若不增加,程序无法查询到模块。
(1)运行所有测试用例:pytest
(2)运行指定路径的用例:pytest ./路径
(3)运行指定模块的用例:pytest 模块名
(4)运行指定用例:pytest ./路径/模块名::类名::方法
没有写main()函数时,可以在pycharm的终端窗口运行测试用例。
在终端运行程序时,需要注意测试用例所在的目录。当测试用例不在根目录时,需要将路径切换到用例模块所在路径,方法是使用cd 命令。
文件名:pytest.ini。文件名是固定的,不允许更改
存放路径:必须放在根目录
编码格式:ANSI 或UTF-8无 BOM格式编码。可以使用Notepad++修改编码格式,即,点击工具栏“编码(N)”,选择编码格式
作用:能够更改pytest默认命名规则
运行规则:主函数和终端命令运行程序时,都会读取配置文件的信息
[pytest]
addopts = -vs #命令行参数,多个命令用空格分隔
testpaths = ./ #测试用例的路径
python_files = test*.py #配置测试搜索的模块文件名称(模块名的规则)
python_class = Test* #配置测试搜索的类名 (类名的规则)
python_function = test #配置测试搜索的测试函数名 (方法名的规则)
上述配置文件表示,执行所有路径下按照pytest默认规则命名的测试用例。这相当于主函数pytest.main()和终端运行的pytest。
主函数和终端命令运行程序时,都会读取配置文件的信息,因此可以根据情况修改配置参数来执行对应的测试用例,在main函数和终端无需在添加参数。
例如:
只执行test_login.py模块的用例。将配置文件中的testpath参数值更改为./testcase,或者将python_files的参数值改为test_login.py。
测试结果如下图所示:
上述的文件格式中出现了命令行,并使用了-vs参数,这是使用两个参数“v”和“s”合并在一起。下面将介绍常使用到的参数。
-q:只打印测试结果
-s:输出调试信息、打印的信息
-v:显示详细信息
-n:支持多线程或分布式运行
-m:标记用例,执行被mark标记的测试用例
-html:生成html测试用例
--reruns Num:失败用例重跑,Unm是重跑次数 (注意:前面是两个杠)
--maxfall=Num:出现Num个用例出错时就停止(注意:前面是两个杠)
在前面介绍运行方式时,在main()函数和终端运行均未使用参数,因此在运行结果中并未看到打印的信息(每个函数功能均有打印功能)。在不使用配置文件的情况下,使用main()函数和终端运行程序,若为了查看打印的消息,也是需要增加-v和-s的参数。例如:
main()函数运行:pytest.main([“-vs”])
终端运行:pytest -vs (中间有空格)
在配置参数中没有只运行指定方法的参数,那如何实现指定执行某个方法呢?
使用-m参数来执行被标记的测试用例。如,运行test_01和test03方法,使用smoke值来标记,可任意命名。
(1)配置文件参数行:-m 标志值
(2)配置文件增加markers参数 和标志值
(3)在test_01和test03方法增加mark标志值
运行结果,只执行test_01和test03的方法。
在工程中新建report的包来存放测试报告,在配置文件增加–html参数信息。
./report :表示在report路径
/report.html:表示生成report.html报告
运行结果
在report报告下生成了report.html的报告,使用浏览器打开,就能看到生成的测试报告。
其他参数的具体使用方式,可以自行使用并运行查看,本文就不在详解。另外通过配置文件还可以更改pytest默认的命名规则,需要的可以自行百度了解。
默认规则,运行方式是学习pytest模块最基础的知识,但是本主认为也是很重要的,是后续实现自动化测试的基本。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。