pytest-介绍

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的注意点:

  1. 所有的测试用例文件名都需要满足test_*.py格式或*_test.py格式(可在pytest.ini中更改这种规则)
  2. 在测试用例文件中,测试类以Test开头,并且不能带有 init 方法
  3. 测试用例函数名以test*来命名
  4. pytest断言是通过assert进行调用
  5. 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(很多改动可以在这个文件里配置,例如测试用例文件,测试用例类,测试用例函数命名规则的改动等)

 

posted @ 2022-11-22 09:59  测试-13  阅读(155)  评论(0编辑  收藏  举报