pytest简介

    • 介绍

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

    • 安装

pip install pytest

或者在pycharm设置中进行安装

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

  pytest --version
    • 用例编写

当我们通过 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
    • 执行

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

python代码执行pytest(main函数)

    • 常用命令行参数

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

参数化

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="该条用例跳过")
    • 异常处理机制

try:
except
pytest.raises()
    • 常用数据驱动

excel

文件格式

数据驱动案例

csv文件

文件格式

数据驱动案例

json文件

文件格式

数据驱动案例

yaml文件

文件格式

数据驱动案例

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值