0


pytest简介

  1. - 介绍

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

简单灵活,容易上手

支持参数化

能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)

pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等

测试用例的skip和xfail处理

可以很好的和jenkins集成

report框架----allure 也支持了pytest

  1. - 安装

pip install pytest

或者在pycharm设置中进行安装

检查安装是否成功以及安装的版本,命令行命令如下:

  pytest --version

  1. - 用例编写

当我们通过 pytest 执行用例时,pytest 会自动递归遍历执行路径下所有的目录,根据 pytest 中默认用例的识别的规则,自动收集测试用例。所有在使用 pytest 编写测试用例之前,我们首先需要了解一下 pytest 收集用例时默认的用例识别规则。

默认的用例识别的规则

用例文件:所有文件名为 开头 或者 开头的文件会被识别为用例文件。test__test

用例类,测试文件中没有每个 Test 开头的类型就是一个测试用例类。

测试用例:测试类中每个 test 开头的方法就是一条测试用例,测试文件中每个 test 开头的函数也是一条测试用例,

例如:

断言

pytest 里面断言实际上就是 python 里面的 assert 断言方法,常用的有以下几种
assert xx :判断 xx 为真
assert not xx :判断 xx 不为真
assert a in b :判断 b 包含 a
assert a == b :判断 a 等于 b
assert a != b :判断 a 不等于 b
  1. - 执行

只重新运行上次失败的用例
pytest  --lf -vs
先运行上次失败的用例再运行其余的测试用例
pytest  --ff 

python代码执行pytest(main函数)

  1. - 常用命令行参数

-x 用例一旦失败,就立刻停止执行
--maxfail=num 用例失败个数达到num后停止执行
-m 标记用例
-k 执行包含某个关键字的测试用例
-v 打印详细日志
-s 打印输出日志(一般-vs一起使用)
--collect-only 收集测试用例
  1. - 常用装饰器

参数化

class Testdome:
    a = ["1", "2", "3"]

    # 参数化,ids表示起别名
    @pytest.mark.parametrize("sum", a, ids=["test1", "test2", "test3"])
    def test_demo(self, sum):
        print(sum)

跳过测试用例

@pytest.mark.skip
#加入跳过原因
@pytest.mark.skip(reason="该条用例跳过")

  1. - 异常处理机制

try:
except

pytest.raises()

  1. - 常用数据驱动

excel

文件格式

数据驱动案例

csv文件

文件格式

数据驱动案例

json文件

文件格式

数据驱动案例

yaml文件

文件格式

数据驱动案例


本文转载自: https://blog.csdn.net/weixin_50464533/article/details/128854177
版权归原作者 小han的日常 所有, 如有侵权,请联系我们删除。

“pytest简介”的评论:

还没有评论