详解Pytest测试用例的执行方法

作者:0o一人情 时间:2022-02-15 18:28:14 

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

如下是目录结构:

详解Pytest测试用例的执行方法

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 #
python_files=test_*.py  #模块名的规则
python_classes=Test*    #类名的规则
python_functions=test   #方法名的规则

#实际项目配置中,尽量删除注释,确保不必要的问题出现

来源:https://blog.csdn.net/qq_43767472/article/details/116769479

标签:Pytest,测试用例,执行方法
0
投稿

猜你喜欢

  • React开发进阶redux saga使用原理详解

    2023-08-06 09:08:33
  • 阿里云 CentOS7.4 安装 Python3.6的方法讲解

    2022-06-12 23:56:13
  • python简单读取大文件的方法

    2021-04-24 04:10:47
  • 编写Python的web框架中的Model的教程

    2022-09-29 22:54:19
  • 纯ASP(VBscript)写的全球IP地址搜索程序

    2007-09-27 13:28:00
  • Python绘制惊艳的桑基图的示例详解

    2021-09-21 17:24:52
  • 使用python获取CPU和内存信息的思路与实现(linux系统)

    2023-06-11 04:17:47
  • 关于redux-saga中take使用方法详解

    2023-08-06 00:54:11
  • yii框架中的Url生产问题小结

    2023-07-20 14:08:45
  • pd.DataFrame中的几种索引变换的实现

    2023-03-01 12:19:30
  • python判断正负数方式

    2023-07-06 11:16:12
  • javascript-表格排序(降序/反序)实现介绍(附图)

    2023-08-19 15:57:10
  • python解决网站的反爬虫策略总结

    2022-11-04 12:57:34
  • Python asyncio的一个坑

    2022-04-06 20:58:28
  • 基于OpenCV的网络实时视频流传输的实现

    2022-10-18 03:03:57
  • Python 连接字符串(join %)

    2021-01-13 23:30:46
  • Python中PyQt5/PySide2的按钮控件使用实例

    2023-03-04 16:27:44
  • 用JavaScript实现UrlEncode和UrlDecode功能

    2008-01-27 11:30:00
  • 页面编码的doctype声明

    2007-05-31 09:21:00
  • PIL对上传到Django的图片进行处理并保存的实例

    2023-04-03 12:40:04
  • asp之家 网络编程 m.aspxhome.com