• Pytest 1


    1. Pytest简介

       pytest是一个非常成熟的全功能的Python测试框架。

    (1) 主要特点有以下几点:

    • 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

     Pytest与Robotframework相比,更加适合小公司。

    (2) pytest有哪些优点?

    • 允许直接使用assert进行断言,而不需要使用self.assert*;
    • 可以自动寻找单测文件、类和函数;
    • Modular fixtures可以用于管理小型或参数化的测试信息;
    • 与unittest和nose单测框架兼容;
    • 兼容性较好,支持Python 2.7,Python 3.4+。
    • 丰富的插件支持,共计有超过315个插件支持;

    2. 使用虚拟环境做Pytest测试

         安装虚拟环境模块并创建虚拟环境

    pip install virtualenv
    pip install virtualenvwrapper
    pip install virtualenvwrapper-win  #Windows使用该命令
    
    mkvirtualenv venv(安装虚拟环境的路径及目录名)

         之后再次进入时,需要激活虚拟环境

    cd venv/scripts
    activate.bat

         激活后会在左边显示(虚拟环境目录)

    3. Pytest 安装相关模块

    pip install pytest 
    pip install pytest-html
    pip install pytest-rerunfailures

            此外还有很多很好的第三方插件,请到http://plugincompat.herokuapp.com/ 和 https://pypi.python.org/pypi?%3Aaction=search&term=pytest-&submit=search 查找

    4. Pytest Demo

        (1) 在虚拟环境中创建一个文件夹来存储测试代码,例如code.

        文件夹中创建测试代码(code est_sample.py)

    # content of test_sample.py
    def inc(x):
        return x + 1
    
    def test_answer():
        assert inc(3) == 5

        code est_class.py

    # content of test_class.py
    
    class TestClass:
        def test_one(self):
            x = "this"
            assert 'h' in x
    
        def test_two(self):
            y = "this"
            assert hasattr(x, 'check')

        (2) 使用pytest执行测试。

        在虚拟环境的code路径下,cmd执行:

    py.test

    (3) pytest执行说明

    # 默认会执行当前目录及子目录的所有test_*.py或*_test.py文件。用例执行成功为.,失败为F
    $ pytest
    # 静默执行
    $ pytest -q 01	est_sample.py
    # 调试方式执行,可以打印print日志等详情信息
    $ pytest 01	est_sample.py -s -v
    # python模块方式执行
    $ python -m pytest 01	est_sample.py
    # 执行单个目录下的tests
    $ python 01

    (4) pytest 常见的exit code

      Exit code 0 所有tests全部通过

      Exit code 1 部分tests失败了

      Exit code 2 用户中止test执行

      Exit code 3 执行test时,内部报错

      Exit code 4 pytest命令使用姿势不对

      Exit code 5 无tests可执行

    (5) pytest 常见帮助选项

    $ pytest --version      # 显示版本信息
    $ pytest --fixtures     # 显示内置可用的函数参数
    $ pytest -h | --help    # 显示帮助信息
    $ pytest -x             # 第一个失败时即停止
    $ pytest --maxfail=2    # 两个失败后即停止

          

    5. Pytest 生成日志

        在code平行层级创建Log目录。运行一下命令以运行并生成指定日志。

    (pyTest2) E:1workspacevenvpyTest2code>py.test --resultlog=../Log/b.html

    6. Pytest 生成报告

        在虚拟环境中执行:

    pip install pytest-html

        在code平行层级创建Report目录。执行以下命令以生成html格式报告。

    (pyTest2) E:1workspacevenvpyTest2code>py.test --html=../Report/b.html

     

        在code平行层级创建Report目录。执行以下命令以生成xml格式报告。

    (pyTest2) E:1workspacevenvpyTest2code>py.test --junitxml=../Report/b.xml

    参考网址:

    pytest官方网站 - https://docs.pytest.org/en/latest/index.html

    pytest详解 - https://www.jianshu.com/p/a754e3d47671

    生成报告 - https://blog.csdn.net/liuchunming033/article/details/48137813?utm_source=blogxgwz0  -

    pytest 多种用法 - https://www.cnblogs.com/jinzhuduoduo/articles/7017405.html

    pytest学习笔记(非完整版) - https://www.jianshu.com/p/b825addb4e16

  • 相关阅读:
    关于Java 如何采用 metadata-extractor 读取数码相机 Exif 数据信息的代码
    Maven 项目引用文件地址管理配置与Eclipse的使用设置
    MySql如何将一个表字段更新到另一个表字段
    关于jquery.fileupload结合PHP上传图片的开发用法流程
    Windows下 Composer 安装 Thinkphp5 的记录.
    NASM汇编学习系列(6)——示例打印0到10
    NASM汇编学习系列(0)——说明、目录和环境搭建
    NASM汇编学习系列(5)——使用bss段和获取用户输入
    NASM汇编学习系列(4)——获取命令行参数
    NASM汇编学习系列(3)——多汇编文件间函数调用
  • 原文地址:https://www.cnblogs.com/keepSmile/p/10932336.html
Copyright © 2020-2023  润新知