自动化测试 | Pytest单元测试框架:pytest测试用例规范&运行方式

1、pytest测试用例规范&运行方式

1.1  pytes测试用例规范

使用pytest,测试用例输出有一些约定俗成的规范,详细如下:

(1)模块名必须以test_开头或者_test结尾;

(2)测试类必须以Test开头,并且不能有int方法;

(3)测试方法必须以test开头。 

1.2  pytest测试用例运行方式

pytest中测试用例运行有主函数模式、命令行模式和读取全局配置文件3种方式:

一、主函数模式

主函数模式,需要建一个以.py结尾的文件(如:all.py),先用命令import pytest将pytest模块导入。主函数模式可以运行所有、按指定模块运行、按指定目录运行等,详细如下:

(1)运行所有:pytest.main()

示例1:

import pytest
if __name__ == '__main__':
   pytest.main()

运行结果:

(2)指定模块:pytest.main(['-vs','testcase_web/test_login.py'])

示例2:​​​​​​​

import pytest
if __name__ == '__main__':
   pytest.main(['-vs','testcase_web/test_login.py'])

运行结果:

(3)指定目录:pytest.main(['-vs', './testcase_web'])

示例3:​​​​​​​

import pytest
if __name__ == '__main__':
  pytest.main(['-vs', './testcase_web'])

运行结果:

(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成。如:

pytest.main(['-vs', './testcase_web/test_login.py::TestLogin::test_Login_01'])

示例4​​​​​​​

import pytest
if __name__ == '__main__':
   pytest.main(['-vs', './testcase_web/test_login.py::TestLogin::test_Login_01'])

运行结果:

释义说明:

二、命令行模式

命令行模式,需要在Pycharm终端Terminal手动输入命令的方式来运行。命令行模式也可以运行所有、按指定模块运行、按指定目录运行等,详细如下:

(1)运行所有:pytest

示例1

运行结果

(2)运行指定模块:pytest -vs ./testcase_web/test_login.py

示例2

运行结果

(3)指定目录:pytest -vs ./testcase_web/

示例3

运行结果

(4)指定目录:

pytest -vs ./testcase_web/test_login.py::TestLogin::test_Login_01

示例4:

运行结果:

各参数释义说明:

(1)-s:表示输出调试信息,包括print打印的信息

(2) -v: 显示更详细的信息

(3)-vs:这两个参数一起用

(4) -n:支持多线程或者分布式运行测试用例

如:pytest -vs ./testcase_web/test_login.py -n  2  

(5) --reruns NUM:失败用例重跑

   -x:表示只要有一个用例报错,那么测试停止

   --maxfail=2 出现两个用例失败就停止。

     -k:根据测试用例的部分字符串指定测试用例

     如:pytest -vs ./testcase_web -k "demo"

(6) --html ./report/report.html  生成html的测试报告

三、通过读取pytest.ini全局配置文件运行(实际项目)

pytest.ini 文件是pytest单元测试框架的核心配置文件,在实际项目中一般通过读取pytest.ini全局配置文件的方式来运行。这样可以通过改变pytest默认的执行规则来定制个性化的执行策略。

(1)位置:一般放在项目的根目录

(2)编码:必须是ANSI,可以使用notepad++修改编码格式

(3)作用:改变pytest默认的行为和规则

(4)运行的规则:不管是主函数的模式运行,还是命令行的模式运行,都会去读取这个配置文件

pytest.ini 示例:

# pytest.ini全局配置文件
[pytest]
#命令行参数,用空格分隔
addopts = -vs
#测试用例的路径
testpaths = ./testcase_web
#模块名的规则
python_files = test_*.py
#类名的规则
python_classes = Test*
#方法名的规则
python_functions = test
#测试用例分组执行
markers=
   smoke:冒烟用例
   userquery:用户查询
   order:订单查询

本章总结:

pytest中测试用例运行,在实际项目中一般通过读取pytest.ini全局配置文件的方式来运行。这样可以通过改变pytest默认的执行规则来定制个性化的执行策略,方便、灵活。

最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值