pytest框架简单介绍

Posted 永远不要矫情

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest框架简单介绍相关的知识,希望对你有一定的参考价值。

pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:

  • 简单灵活,容易上手,文档丰富;
  • 支持参数化,可以细粒度地控制要测试的测试用例;
  • 能够支持简单的单元测试和复杂的功能测试,还可以用selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
  • 具有很多第三方插件,并且可以自定义扩展,比如pytest-selenium,pytest-html
  • 测试用例的skip和xfail处理
  • 可以很好的和CLI工具结合,例如Jenkins

1.pytest安装

安装命令如下:

pip install pytest

使用pip list命令能看到pytest即可
在这里插入图片描述

2.编写规则

编写规则有如下几点:

  1. 测试文件以test_开头,或者以_test结尾也行
  2. 测试类以Test开头,并且不能带init方法
  3. 测试函数以test_开头
  4. 断言使用基本的assert即可
    例如:
import pytest

class Testcase():
    def test_01(self):
        print('test01')

if __name__ == '__main__':
    pytest.main(['test_01.py'])

输出为:
在这里插入图片描述

若将类名称改为testcase,则结果如下:
在这里插入图片描述

3.console参数

在上面的例子里,test_01方法里会打印test01,但实际上并没有,这就需要在执行的时候加参数。参数如下所示:

参数含义
-v用于显示每个测试函数的执行结果
-q用于显示每个测试函数的执行结果
-s用于显示测试函数中print()函数的输出
-x–exitfirst,在第一个错误或测试失效时立即退出
-h帮助

例如:我们将代码改一下,便于看参数的效果:

import pytest

class Testcase():
    def test_f(self):
        print('hello')

if __name__ == '__main__':
    pytest.main(['-v','test_01.py'])

使用-v输出如下:

collecting ... collected 1 item

test_01.py::Testcase::test_f PASSED                                        [100%]

============================== 1 passed in 0.02s ==============================

使用-s输出如下:

rootdir: D:\\pythonProject\\my_selenium_project\\testcases\\pytest
collected 1 item

test_01.py hello
.

============================== 1 passed in 0.02s ==============================

使用-s和-v,输出如下:

collecting ... collected 1 item

test_01.py::Testcase::test_f hello
PASSED

============================== 1 passed in 0.02s ==============================

4.执行测试

4.1.main方法
在上一节使用过的,格式为:

  pytest.main(['module_name'])

4.2 命令行
可在pycharm的命令行执行,格式如下:

pytest -s -v test_01.py

例如:

D:\\pythonProject\\my_selenium_project\\testcases\\pytest>pytest test_01.py
======================================================================== test session starts ========================================================================
platform win32 -- Python 3.7.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: D:\\pythonProject\\my_selenium_project\\testcases\\pytest
collected 1 item                                                                                                                                                     

test_01.py .                                                                                                                                                    [100%]

========================================================================= 1 passed in 0.02s =========================================================================

4.3 配置PyCharm执行
方法为:setting->Tools->Python Integrated tools->Default test runner,将默认的unittest改为pytest即可。
在这里插入图片描述
设置了之后,点击方法或者类名旁边的执行按钮即可。
在这里插入图片描述

以上是关于pytest框架简单介绍的主要内容,如果未能解决你的问题,请参考以下文章

python ----> pytest 测试框架

Pytest之基本介绍

python测试模块-pytest介绍

python pytest测试框架介绍三

Pytest框架

拉钩4.3-pytest测试框架