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分发)、
- pytest--ordering(控制测试运行的顺序)
5、测试用例的skip和xfail处理;
6、可以很好的和CI工具结合,例如jenkins
编写规则:
- 测试文件以test_开头(以_test结尾也可以)
- 测试类以Test开头,并且不能带有 init 方法
- 测试函数以test_开头
断言使用基本的assert即可
快速示例
test_pyexample.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
通过命令行运行:
1、cd 到代码所在的目录,执行命令:py.test test_pyexample.py
2、安装pytest-sugar插件可以看到进度条
Pycharm配置运行:
1.file->Setting->Tools->Python Integrated Tools->项目名称->Default test runner->选择py.test
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Console常用参数介绍:
- -v 用于显示每个测试函数的执行结果
- -q 只显示整体测试结果
- -s 用于显示测试函数中print()函数输出
- -x, --exitfirst, exit instantly on first error or failed test
- -m 只运行带有装饰器配置的测试用例
- -h 帮助
1 2 3 4 5 6 7 8 9 10 |
|
pytest参数化
使用装饰器:@pytest.mark.parametrize()
单个参数:
1 2 3 4 5 6 |
|
多个参数:
1 2 3 4 5 6 7 8 9 10 |
|
控制测试运行顺序
安装pytest-ordering
pip install pytest-ordering
借助于装饰器@pytest.mark.run(order=1)控制测试运行的顺序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
运行后生成测试报告(htmlReport)
安装pytest-html:
pip install -U pytest-html
如何使用:
py.test test_pyexample.py --html=report.html
更详细的测试报告
安装 pytest-cov:
pip install pytest-cov
如何使用
1 2 3 4 5 6 7 |
|
多进程运行
安装pytest-xdist:
pip install -U pytest-xdist
如何使用:
py.test test_pyexample.py -n NUM
其中NUM填写并发的进程数。
重新运行失败的用例
安装pytest- rerunfailures:
1 2 3 4 5 6 7 |
|
如何使用:
命令:pytest --reruns 重试次数
比如:pytest --reruns 3 表示:运行失败的用例可以重新运行3次
命令:pytest --reruns 重试次数 --reruns-delay 次数之间的延时设置(单位:秒)
比如:pytest --reruns 3 --reruns-delay 5 表示:(译:瑞软四、地类)运行失败的用例可以重新运行3次,第一次和第二次的间隔时间为5秒钟
另外也可以通过装饰器的方式配置:
@pytest.mark.flaky(reruns=3, reruns_delay=5)
以上就是本文的全部内容,希望对大家的学习有所帮助
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:
① 2000多本软件测试电子书(主流和经典的书籍应该都有了)
② 软件测试/自动化测试标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
相关文章
- m.2接口sata和pcie区别_M2固态硬盘安装方法
- ES6常用数组方法总结(max,contant,some,every,filter,reduce,forEach,map)
- pytest学习和使用17-Pytest如何重复执行用例?(pytest-repeat)
- pytest学习和使用12-Unittest和Pytest参数化详解
- pytest学习和使用15-Pytest用例失败如何重跑?(pytest-rerunfailures的简单使用)
- java 同步方法的使用 防止多线程同时执行方法详解编程语言
- MySQL无法启动:解决技巧与方法(无法启动mysql)
- Linux XZ 压缩:快速有效的压缩文件管理方法(linuxxz压缩)
- 据Redis记录数据的快速查看方法(如何查看redis记录数)
- php输出双引号"与单引号'的方法
- PHP生成excel时单元格内换行问题的解决方法
- php函数的常用方法及注意之处小结
- jQuery判断iframe中元素是否存在的方法
- linux服务器下LNMP安装与配置方法
- 验证手机号码的JS方法分享
- js实现class样式的修改、添加及删除的方法