一、Pytest简介
1.pytest是一个具有非常成熟的所有功能的python测试框架。它具有以下几个主要功能:
简单灵活,易于使用,支持参数化
2.它可以支持简单的单元测试和复杂的功能测试,还可以用于selenium、appium等自动化测试,以及requests pytest界面自动化测试
3.pytest有许多第三方插件,您可以按如下方式自定义扩展:
Pytest-selenium(集成selenium)
Pytest-html(生成完整的html测试报告)
Pytest-rerunfailures(重复失败案例)
Pytest-xdist(多CPU部署)
4.测试用例skip和xfail处理
5.能和詹金斯很好地整合。
6.pytest还支持allure测试报告
7.与unittest兼容,是unittest的扩展
二、Pytest以及常用插件安装
将以下内容写入txt文件,例如require-in
Pytest
Pytest-html
Pytest-xdist
Pytest-rerunfailures
然后在Dos窗口中使用此命令安装所有模块pip install -r require-in
使用Pytest – version命令验证安装结果。
如果报如下错误则需要调整python或pytest的版本,这是python和pytest的版本不兼容:
下面说两个错误例子,一个是win7、以及,将python降到3.7.3就ok了,另一个是Windows 10, python 3.8.1, pytest 5.3.3,将pytest降到4.6.9以下版本也ok,因此建议你要么降python版本,要么降pytest版本试试。
笔者使用的是:win7+,亲测没问题。
三、 pytest框架基础应用
- pytest运行函数时和运行类里面的方法情况如下:
import pytest
def test01():
print('测试用例一')
def abcd():
print('测试用例二')
class TestCase:
def test_03(self):
print('测试用例三')
def defg(self):
print('测试用例四')
if __name__ == '__main__':
(['-s',';])
运行结果如下:
注意事项:
(1) 测试函数、类中的测试方法都必须以test_ 开头,当然以什么开头在pytest可自定义。
(2) 测试类必须以Test开头,并且不能带有init方法
(3) 断言必须使用assert断言
执行方式:
(1) 主函数方式运行:
指定运行文件:(['-s','模块名'])
注意:如果py文件是以test_开头或者以_test结尾则可以使用()运行。因为()会运行当前目录下所有以test_开头或者以_test结尾的文件。
(2) 命令行方式运行
点开Pycharm左下角的:Terminal打开当面目录下的命令行窗口。
输入命令执行:pytest 模块名
注意:如果py文件是以test_开头或者以_test结尾则可以使用pytest命令运行,因为pytest会运行当前目录下所有以test_开头或者以_test结尾的文件。
四、 运行时参数说明
-s:显示打印内容
如:pytest -s
等价于:(['-s',';])
:::指定测试用例运行
运行函数:如:pytest ::test_01
等价于:(['-s','::test01'])
运行类中方法:如:pytest
等价于:(['-s', '::TestCase::test_03'])
–html=路径:生成xml/html格式测试报告(需要先安装pytest-html)
如:pytest –html-.
等价于:(['-s',';,'–html=.'])
–maxfail=1:出现1个失败就终止测试
如:pytest –maxfail=1
等价于:(['-s',';,'–maxfail=1'])
-n:pytest-xdist多线程运行(需要先安装pytest-xdist)
如:pytest -n 2
等价于:(['-s',';,'-n=2'])
在用例中使用(2)加等待时间测试,发现多线程时间减少了。
–reruns NUM:重试运行测试用例(需要先安装pytest-rerunfailures)
如:pytest –reruns 2
则一旦有用例失败,则会重复执行两次,貌似这种不能用main运行。
由此能看出:(['-s','模块名']),main方法中是传入的一个list格式,list中可以传入多个参数。
五、pytest的ini配置文件
文件是pytest的主配置文件,可以改变pytest的默认行为。
1.的放置位置:一般放在项目工程的根目录(即当前项目的顶级文件夹下)
2.的作用:指定pytest的运行方式(在cmd输入pytest后,会读取中的配置信息,按指定的方式去运行)
3.cmd下使用 pytest -h 命令查看的设置选项(以下截图只是部分选项)
常用设置选项如下:
[pytest]
addopts = -s … #可添加多个命令行参数,用空格分隔
testpaths = ../pytestproject #测试用例文件夹,可自己配置,../pytestproject为上一层的pytestproject文件夹。
python_files = test*.py #配置测试搜索的模块文件名称
python_classes = Test* #配置测试搜索的测试类名
python_funtions = test #配置测试搜索的测试函数名
示例如下:
[pytest]
addopts = -s –html=.
testpaths = ../pytestproject
python_files = test*.py
python_classes = Test*
python_funtions = test*
注意:
1.运行的时候自动读取配置文件,运行pytestproject下的所有test开头的模块文件。
六、总结
如果你觉得此文对你有帮助,如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入软件测试技术交流群:695458161 群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
一箭三雕:如果你觉得本文对你有帮助,请关注,赞同,分享三连!谢谢!
作者出处:春哥
转载声明:欢迎转载,但未经作者同意请保留此段声明,并在文章明显位置给出原文链接。
1.文章《「pytest01」pytest快速入门-pytest运行时参数,pytest.ini详解》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《「pytest01」pytest快速入门-pytest运行时参数,pytest.ini详解》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好