pytest---环境安装


  看到这个标题的小伙伴肯定想,最终还是对pytest下了手,安静前段时间买了本pytest实战的书籍进行学习。这个要从前段时间出去面试说起了。面试被问pytest的内容,安静呢一直使用的是unittests。一直都知道pytest很好用,很棒,但是一直没有下定决心学习,结果就是面试被鄙视了,虽然最终结果是还是成功面试上了。但是个人感觉呢技术一点点在更新,我们个人也要一直努力学习。所以安静也开始对pytest下手了。话不多说,往下看

pytest简单介绍

pytest:Pytest是一个使创建简单及可扩展性测试用例变得非常方便的框架。测试用例清晰、易读而无需大量的繁琐代码。只要几分钟你就可以对你的应用程序或者库展开一个小型的单元测试或者复杂的功能测试。pytest支持第三方插件,灵活性较高。

官方文档:https://pypi.org/project/pytest/5.1.0/

python支持版本:Python2.0,python3.0+

pytest功能

  • 通过python编写脚本,简单方便
  • pytest支持调用unittest用例
  • pytest支持参数化
  • 执行特定的用例顺序
  • 利用插件生成html报告

安装: pip install pytest 

查看版本号: pytest --version 

快速上手

这里安静就直接编写代码了

class Test:
    def test_01(self):
        print('这是用例01')
        assert 1 == 1

    def test_02(self):
        print('这是用例02')
        assert 2 == 2

    def test_03(self):
        print('这是用例03')
        assert 1 == 2

执行代码可以通过cmd打开文件地址也可以通过pycharm下的Terminal打开进行输入pytest

E:\auto_test>pytest
======================================================================== test session starts ========================================================================
platform win32 -- Python 3.7.7, pytest-6.1.2, py-1.9.0, pluggy-0.13.1
rootdir: E:\auto_test
collected 3 items                                                                                                                                                    

test_01.py ..F                                                                                                                                                 [100%]

============================================================================= FAILURES ==============================================================================
___________________________________________________________________________ Test.test_03 ____________________________________________________________________________

self = 

    def test_03(self):
        print('这是用例03')
>       assert 1 == 2
E       assert 1 == 2

test_01.py:12: AssertionError
----------------------------------------------------------------------- Captured stdout call ------------------------------------------------------------------------
这是用例03
====================================================================== short test summary info ======================================================================
FAILED test_01.py::Test::test_03 - assert 1 == 2
==================================================================== 1 failed, 2 passed in 0.07s ====================================================================

结果解析:

我们可以从上面执行结果看到,执行了多少个用例,有多少个失败的,且运行时间以及报错内容

这里的执行用例规则是通过查找当前目录下的test_*.py或者*_test.py文件,找到后进行查找test开头的类以及test开头的函数进行执行

pychram运行pytest

我们代码都是在pycharm中编写的,每次都从cmd中或者从下Terminal中运行输入pytest比较不方便,如果直接在pycharm上右键运行,又不出运行按钮,这个时候,我们只需要更改下运行规则就可以了。

file->Setting->Tools->Python Integrated Tools->Default test runner->选择py.test就行了

 进入文件中点击右键,就会出现执行按钮了

知识总结

  1. pytest执行规则是通过调用目录下文件名为test_*.py文件
  2. pytest执行时类名必须是通过Test开头,函数也必须是test为前缀,且类Test下不能有__init__方法
  3. pytest断言是通过assert进行调用
  4. pytest执行通过cmd进行在当前目录执行

大家有想学习pytest的朋友们,可以扫码关注公众号,回复【pytest】进行领取pytest中文文档书籍。