pytest之命名规则和运行方式

在文章开始前,先了解一下本文章使用到工程结构情况,本栏会围绕该工程进行举例说明。
Test_project工程的根目录有两个模块(主函数main()模块,test_token.py模块)和一个testcase包,testcase包中新建了名为test_login.py模块。
在这里插入图片描述
test_token.py模块下有一个test_01的方法,test_login.py模块新建TestLogin类,类包含了test02和test03两个方法。
在这里插入图片描述

1. 默认规则

pytest的命名默认规则如下:

1. 模块名必须以test_开头或以_test结尾(如,test_login.py)

2. 测试类必须以Test开头,并且不能有init方法(如,class TestLogin:)

3. 测试方法必须以test开头(如,def test_01()或test02())

2. 运行方式

pytest运行方式主要有三种,main()函数运行、终端运行和main()结合配置文件方式运行。

2.1 main()函数运行

(1)运行所有测试用例:pytest.main()
	
(2)运行指定路径的用例:pytest.main( ["./路径"] )
	
(3)运行指定模块的用例:pytest.main( ["模块名.py"] )
	
(4)运行指定用例:pytest.main( [ " ./路径/模块名::类名::方法"] )

main()函数在测试模块中可以省略,在任意一模块中有主函数,满足条件的所有测试用例均可以执行。因此,常常在项目中单独创建一个模块来存放main()函数的代码。
在这里插入图片描述
【注】在图中指定只执行test_login.py模块时,前面还增加了模块对应的路径,若不增加,程序无法查询到模块。

2.2 终端运行

(1)运行所有测试用例:pytest
	
(2)运行指定路径的用例:pytest ./路径
	
(3)运行指定模块的用例:pytest 模块名
	
(4)运行指定用例:pytest ./路径/模块名::类名::方法

没有写main()函数时,可以在pycharm的终端窗口运行测试用例。
在这里插入图片描述
在终端运行程序时,需要注意测试用例所在的目录。当测试用例不在根目录时,需要将路径切换到用例模块所在路径,方法是使用cd 命令。

  • cd命令格式为:cd 路径
    如下图,执行testcase包下的test_login.py模块的用例时,需要切换到testcase路径下。
    在这里插入图片描述
    若执行test_login.py模块下的test02方法,则如下图所示。
    在这里插入图片描述
  • clear清除终端显示信息

2.3 使用配置文件运行程序

2.3.1 配置文件规则
文件名:pytest.ini。文件名是固定的,不允许更改

存放路径:必须放在根目录

编码格式:ANSI 或UTF-8无 BOM格式编码。可以使用Notepad++修改编码格式,即,点击工具栏“编码(N)”,选择编码格式

在这里插入图片描述

2.3.2 作用和运行规则
作用:能够更改pytest默认命名规则

运行规则:主函数和终端命令运行程序时,都会读取配置文件的信息
2.3.3 配置文件格式
[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”合并在一起。下面将介绍常使用到的参数。

2.3.4 参数详解
-q:只打印测试结果
-s:输出调试信息、打印的信息
-v:显示详细信息
-n:支持多线程或分布式运行 
-m:标记用例,执行被mark标记的测试用例
-html:生成html测试用例
--reruns Num:失败用例重跑,Unm是重跑次数 (注意:前面是两个杠)
--maxfall=Num:出现Num个用例出错时就停止(注意:前面是两个杠)

在前面介绍运行方式时,在main()函数和终端运行均未使用参数,因此在运行结果中并未看到打印的信息(每个函数功能均有打印功能)。在不使用配置文件的情况下,使用main()函数和终端运行程序,若为了查看打印的消息,也是需要增加-v和-s的参数。例如:
main()函数运行:pytest.main([“-vs”])
终端运行:pytest -vs (中间有空格)

  • 使用多个参数值时,使用空格隔开。vs两个参数可以一起使用。
    在这里插入图片描述
-m 标记用例

在配置参数中没有只运行指定方法的参数,那如何实现指定执行某个方法呢?
使用-m参数来执行被标记的测试用例。如,运行test_01和test03方法,使用smoke值来标记,可任意命名。
(1)配置文件参数行:-m 标志值
(2)配置文件增加markers参数 和标志值
在这里插入图片描述
(3)在test_01和test03方法增加mark标志值
在这里插入图片描述
运行结果,只执行test_01和test03的方法。
在这里插入图片描述

–html生成测试报告

在工程中新建report的包来存放测试报告,在配置文件增加–html参数信息。
./report :表示在report路径
/report.html:表示生成report.html报告
在这里插入图片描述
运行结果
在report报告下生成了report.html的报告,使用浏览器打开,就能看到生成的测试报告。
在这里插入图片描述
在这里插入图片描述
其他参数的具体使用方式,可以自行使用并运行查看,本文就不在详解。另外通过配置文件还可以更改pytest默认的命名规则,需要的可以自行百度了解。

3. 总结

默认规则,运行方式是学习pytest模块最基础的知识,但是本主认为也是很重要的,是后续实现自动化测试的基本。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值