zoukankan      html  css  js  c++  java
  • 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/
    欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。
  • 相关阅读:
    opencv检测运动物体的基础_特征提取
    混合高斯建模
    计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接
    opencv视频读取问题
    混合高斯模型背景显示
    图像显著区域检测代码及其效果图 saliency region detection
    opencv宏
    目标检测与转自背景减除
    混合高斯模型不显示背景
    error C3872: “0x3000”: 此字符不允许在标识符中使用错误 的解决办法
  • 原文地址:https://www.cnblogs.com/hn-daxiong/p/12508100.html
Copyright © 2011-2022 走看看