CSDN博客地址

pytest测试框架简介(二)

一:  Pytest Exit Code含义清单

Exit code 0  所有用例执行完毕,全部通过

Exit code 1  所有用例执行完毕,存在Fail的测试用例

Exit code 2  用户中断了测试的执行

Exit code 3  测试执行过程发生了内部错误

Exit code 4 pytest 命令行使用错误

Exit code 5 未采集到可用测试用例文件

二: 控制测试用例执行

pytest -x                第一次失败就停止测试

pytest --maxfail=2   出现2个失败就终止测试

pytest  testing/       指定测试目录

pytest -k “MyClass and not method”  通过关键字表达式过滤执行

三: 多进程运行case

当cases量很多时,运行时间过长,如果想缩短测试时长,可以用多进程的方式

安装pytest-xdist: pip install -U pytest-xdist

运行模式:   pytest test_*.py -n Num   其中Num填写并发的进程数

四:重试运行case

有时遇到服务器响应超时导致case运行失败,我们可以通过重试的方式解决

安装pytest-rerunfailures: pip install -U pytest-rerunfailures

运行模式: pytest test*.py --reruns Num   其中Num是重试的次数

五:显示print内容

运行测试脚本时,为了调试或打印一些内容,我们会在代码里面加一下print的内容,运行pytest时这些内容不会显示出来,如果加上-s就可以显示了.

运行模式: pytest test*.py -s

pytest的多种模式是可以叠加执行的,例如 pytest test*.py -s -n 4

六:pytest的setup和teardown函数

1:setup和teardown主要分为:模块级,类级,功能级和函数级

2:存在于测试类内部

函数级别setup()/teardown()  每运行一次测试函数都会运行一次setup和teardown

def add(x, y):
    return x+y

class Test_MyClass():
    # 函数级 每个用例执行都会执行一遍
    def setup(self):
        print("-------->setup")
    # 函数级结束
    def teardown(self):
        print("------->teardown")
    def test_something(self):
        assert add(1, 5) == 6
    def test_something1(self):
        assert add(1, 6) == 7

 

 类级别: 在一个测试类只运行一次setup_class和teardown_classs

class Test_ABC:
    # 测试类级别
    # 智慧在这个类里面前后各执行一次
    def setup_class(self):
        print("------>setup_class")
    def teardown_class(self):
        print("------>teardown_class")
    def test_a(self):
        assert 1
    def test_b(self):
        assert 1

 

七:pytest配置文件

pytest的配置文件通常放在测试目录下,名称为pytest.ini, 命令运行时会使用该配置文件中的配置

[pytest]
addopts = -s --html=./report.html --reruns=2  # 空格分隔,可添加多个命令行参数
testpaths = ../pytest_test   # 上一级目录下的pytest_test文件夹
python_files = test*.py     # 配置搜索的文件名称
python_classes = Test_*     # 配置测试搜索的测试类名
python_functions = test_*   # 配置测试搜索的测试函数名

 八:pytest测试报告

pytest-html是一个插件,用于生成测试结果的HTML报告

安装方式: pip install pytest-html

通过命令行方式,生成xml/html格式的测试报告,存储于用户指定路径。插件名称:pytest-html

使用方法: 命令行格式:pytest --html=用户路径/report.html

import pytest
class Test_ABC:
    def setup_class(self):
        print("------->setup_class")
    def teardown_class(self):
        print("------->teardown_class")
    def test_a(self):
        print("------->test_a")
        assert 1
    def test_b(self):
            print("------->test_b")
            assert 0 # 断言失败```
运行方式:
1.修改pytest_test/pytest.ini文件,添加报告参数,即:addopts = -s --html=./report.html 
    # -s:输出程序运行信息
    # --html=./report.html 在当前目录下生成report.html文件
    ️ 若要生成xml文件,可将--html=./report.html 改成 --html=./report.xml
2.命令行进入pytest_test目录
3.执行命令: pytest
执行结果:
    1.在当前目录会生成assets文件夹和report.html文件
 

 

posted @ 2020-08-30 21:56  Yi_warmth  阅读(281)  评论(0编辑  收藏  举报
CSDN博客地址