1、pytest简单介绍
pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:
简单灵活,容易上手
支持参数化
能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等
测试用例的skip和xfail处理
可以很好的和jenkins集成
report框架----allure 也支持了pytest
2、pytest安装
可以直接通过pip安装:
pip install pytest
安装成功后,可以在cmd中输入
pytest --version
来查看pytest是否安装成功,且输出版本号
3、pytest简单使用
pytest的注意点:
- 所有的测试用例文件名都需要满足test_*.py格式或*_test.py格式(可在pytest.ini中更改这种规则)
- 在测试用例文件中,测试类以Test开头,并且不能带有 init 方法
- 测试用例函数名以test*来命名
- pytest断言是通过assert进行调用
- pytest执行通过cmd进行,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行
注意点都知道后,那么就开始写一个简单的测试用例文件test_01.py(符合测试用例文件名满足test_*.py格式或*_test.py格式)
#导入pytest import pytest #创建测试类,命名规则符合Test*,并且没有带有ini方法 class Test_01: #创建测试用例 def test_01(self): print('test_01执行') def test_02(self): print('test_02执行') if __name__ == '__main__': #执行当前路径下所有测试文件的测试用例 pytest.main()
pycharm中可以直接点击run(效果等同于cmd的当前路径下执行pytest )
输出结果:
可以看到输出内容中:
platform:打印系统版本,以及python、pytest、pytest包的版本信息
rootdir:执行测试用例的根目录
plugins:安装pytest插件的版本
collected:搜索到的测试用例个数
表示test_1.py 2个测试用例都测试通过, .表示用例通过,F表示用例失败,[100%]表示执行用例个数/搜索到用例个数
表示测试用例测试结果情况,以及执行测试用例总时长
warning解决:
可以看到,执行pytest后,有个warning打印,且还拉长了执行时间,也不知道咋回事。但这么简单的一个测试用例文件确实没有调用到collections库,很不雅观,那么我们就将其去掉这个warning打印吧
在测试用例文件的同级目录下,新建一个pytest.ini文件,然后输入
[pytest] addopts = -p no:warnings
取消warning打印后,重新执行pytest
可以看到,warning打印已经消失,执行时长也达到了0.03s,同时还多了一个参数configfile,表示配置文件读取的是pytest.ini(很多改动可以在这个文件里配置,例如测试用例文件,测试用例类,测试用例函数命名规则的改动等)
标签:py,pytest,介绍,测试用例,test,执行,warning From: https://www.cnblogs.com/trystudy/p/16914223.html