pytest框架学习-基础入门

作者: 残阳夕露 | 来源:发表于2020-02-12 17:20 被阅读0次
    查看所有Python相关学习笔记

    pytest学习

    一、相关内容的下载安装

    1.1 基础安装

    pip install pytest
    

    1.2 html报告相关

    pip install pytest-html
    

    1.3 多进程运行相关

    pip install pytest-xdist
    

    1.4 错误重试相关

    pip install pytest-rerunfailures
    

    二、代码编写

    2.1 编写规则

    1. 测试文件以test_开头(以_test结尾也可以);
    2. 测试类以Test开头,并且不能带有init方法;
    3. 测试函数以test_开头;
    4. 断言使用基本的assert
    5. 可自定义规则,详见【Pytest】pytest的基本设置

    2.2 简单示例

    简单示例代码详见第三章节

    2.3 断言的使用

    【Pytest】pytest断言

    三、pytest执行命令

    3.1 选择需要运行的用例

    1. 执行时需先切换到相关文件夹下
    2. 运行pytest时会找当前目录及其子目录中的所有test_*.py 或 *_test.py格式的文件以及以test开头的方法或者class,不然就会提示找不到可以运行的case了
    3. 演示代码
    • test_01.py
    class Testcases01:
        def test_01(self):
            assert 1 == 1
    
        def test_02(self):
            assert 1 == 1
    
    class Testcases02:
        def test_01(self):
            assert 1 == 1
    
        def test_02(self):
            assert 1 == 1
    
    • test_02.py
    class Testcases03:
        def test_01(self):
            assert 1 == 1
    
        def test_02(self):
            assert 1 == 1
    

    3.1.1 运行当前文件夹下的所有用例

    pytest
    
    运行当前文件夹下的所有用例(加了html参数,详见3.2.2章节)

    3.1.2 运行某个py文件中的所有用例

    pytest test_01.py
    
    运行某个py文件中的所有用例(加了html参数,详见3.2.2章节)

    3.1.3 运行某个py文件中的某个class下的所有用例

    pytest test_01.py::Testcases01
    
    运行某个py文件中的某个class下的所有用例(加了html参数,详见3.2.2章节)

    3.1.3 运行某个py文件中的某个class下的某个用例

    pytest test_01.py::Testcases01::test_02
    
    运行某个py文件中的某个class下的某个用例(加了html参数,详见3.2.2章节)

    3.2 参数说明

    3.2.1 -q(-quiet)作用是减少冗长(命令行窗口不再展示pytest的版本信息)。

    • 演示代码
    class TestClass:
        def test_one(self):
            x = "this"
            assert 'h' in x
    
    • 演示命令
    pytest -q
    
    带-q与不带-q的区别

    3.2.2 --html=xxx.html运行后生成html测试报告

    执行前需先安装pytest-html模块,详见1.2章节。

    • 演示代码
    class TestClass:
        def test_one(self):
            x = "this"
            assert 'h' in x
    
    
        def test_two(self):
            x = "hello"
            assert hasattr(x, 'check')
    
    • 演示命令
    pytest --html=myreport/myreport.html
    
    • 上面方法生成的报告,css是独立的,分享报告的时候样式会丢失,为了更好的分享发邮件展示报告,可以把css样式合并到html里
    pytest --html=report.html --self-contained-html
    
    生成的html报告界面

    3.2.3 -n NUM多进程运行用例,NUM是线程数。

    执行前需先安装pytest-xdist模块,详见1.3章节。

    pytest -n 3
    

    3.2.4 --reruns NUM某个用例运行失败时自动重试,NUM是重试次数。

    执行前需先安装ppytest-rerunfailures模块,详见1.4章节。

    pytest --reruns 2
    

    3.2.5 -s运行命令时显示调试信息(print内容)。

    pytest -s
    
    带-s与不带-s的区别

    四、参考文档

    1. 全功能Python测试框架:pytest
    2. Python单元测试框架Pytest——如何生成测试报告
    3. 通过Hook函数使Py.test支持含有中文的测试用例名称(nodeid)和测试报告
    4. Pytest和Allure测试框架-超详细版+实战
    5. Pytest - 使用介绍

    相关文章

      网友评论

        本文标题:pytest框架学习-基础入门

        本文链接:https://www.haomeiwen.com/subject/duycfhtx.html