pytest学习指南(一)--pytest的介绍以及使用

前言

              生命不息,奋斗不止。

              对于日常使用python的通用框架unittest+HTMLTestRunner来说,再学习一个新框架主要是为了脱离python鄙视链,O(∩_∩)O哈哈~

               python鄙视链:pytest 鄙视 > unittest 鄙视 > robotframework 鄙视 > 记流水账 鄙视 > "hello world"小白

一、pytest介绍             

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

  • 1、简单灵活,容易上手,文档丰富;
  • 2、支持参数化,可以细粒度地控制要测试的测试用例;
  • 3、能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);
  • 4、pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等;
  • 5、测试用例的skip和xfail处理;
  • 6、可以很好的和CI工具结合,例如jenkins
  • 7、能自动的发现测试模块和测试方法
  • 8、断言使用assert+表达式即可

二、pytest环境搭建

官方手册地址  https://docs.pytest.org/en/latest/getting-started.html#install-pytest

 1.安装pytest

  

pip install pytest

pytest --version   #查看安装的版本  验证是否安装成功

2.安装html报告插件

pip install pytest-html

除开 pytest-html插件外 ,pytest还具备丰富的插件库

pytest插件汇总站点:http://plugincompat.herokuapp.com/

三、应用案例

编写规则

编写pytest测试样例非常简单,只需要按照下面的规则:

  • 测试文件以test_开头(以_test结尾也可以)
  • 测试类以Test开头,并且不能带有 init 方法
  • 测试函数以test_开头
  • 断言使用基本的assert即可

 1、创建一个文件为:test_demo.py

    

#!/usr/bin/python3
# -*- coding: utf-8 -*-
def test_1():
    assert 1==1

 2.运行

  运行有两种方式 

  第一种,通过dos命令或者pycharm的命令窗口输入pytest

 结果如下:

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

(venv) E:学习pytest_code>pytest
============================================================ test session starts ============================================================
platform win32 -- Python 3.6.5, pytest-4.5.0, py-1.8.0, pluggy-0.12.0
rootdir: E:学习pytest_code
collected 1 item

test_demo.py .                                                                                                                         [100%]

========================================================= 1 passed in 0.02 seconds ==========================================================

  注意:输入pytest时候,会自动的收集case并执行

 pytest收集用例的规则

            1.默认从当前目录中搜索case,即在哪个目录下运行pytest命令,则从哪个目录中搜索

             2.可以通过 pytest  地址   指定搜索的目录

           

            

     

 第二种:通过主函数在代码中运行,注意:需要导包
 
 
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import pytest
def test_1():
    assert 1==1

if __name__ == '__main__':
    pytest.main()
 
 
 
 
出处:https://www.cnblogs.com/hn-daxiong/
欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。
原文地址:https://www.cnblogs.com/hn-daxiong/p/12508100.html