pytest合集(1)— 快速入门

1、Pytest 介绍

Pytest是一个基于python的第三方单元测试框架。

要求:Python 3.7+ 或 PyPy3

特点:

  • Pytest 是免费和开源的,且入门简单,文档丰富
  • 主要用来做接口测试,也可以编写简单到复杂的功能测试
  • 编写测试用例方便,使用assert断言
  • 使用mark标记管理测试用例
  • 使用fixture夹具管理测试前置处理,后置处理
  • 支持参数化
  • 支持失败重试机制,部分执行,跳过执行,标记失败等
  • 支持生成html报告
  • 丰富的第三方插件,良好的自定义扩展性
  • 兼容其它测试框架,如unittest
  • 方便的和持续集成工具集成CI环境,如Jenkins

2、下载和安装

(1)安装pytest

pip install -U pytest

 pip安装不了的话可以登录Python第三方库PyPI官网下载pytest · PyPI

(2)查看pytest版本

pytest --version

也可以使用如下方式获取当前的 pytest 版本,结果是字符串:

>>> import pytest
>>> pytest.__version__
'7.0.0'

7.0 版中的新功能。

当前的 pytest 版本,作为一个元组:

>>> import pytest
>>> pytest.version_tuple
(7, 0, 0)

3、编写测试用例

新建test_sample.py文件如下,编写测试用例test_answer,使用assert断言。

# content of test_sample.py
def func(x):
    return x + 1


def test_answer():
    assert func(3) == 5

测试用例编写规范:

  • 测试用例包pakege必须要有__init__.py文件
  • 测试文件名必须以“test_”开头或者以”_test”结尾
  • 测试类命名以Test开头
  • 测试方法必须以“test_”开头
  • 使用assert断言

 

4、运行测试用例

打开test_sample.py所在的文件夹,选中文件路径输入cmd然后按enter键进入cmd窗口,输入命令:pytest。

说明: 

  • collected 1 item:pytest运行的时候一共收集到了1条测试用例。
  • test_sample.py F:标记F,是指测试结果失败,注意Failure和Error的区别。
  • [100%] :指测试用例运行的总体进度。
  • FAILURES:输出了详细的错误信息,帮助我们分析测试原因,我们可以看到"assert func(3) == 5"这条语句出错了,错误的原因是func(3)=4,然后我们断言func(3) 等于 5。

(1)测试用例收集规则:

  • pytest运行的时候,默认会收集当前目录及其子目录中,所有test_*.py或*_test.py文件中以"test_"开头的测试函数。

(2)测试用例运行结果标记符:

  • 点号,表示用例通过
  • F 表示失败 Failure
  • E 表示用例中存在异常 Error
  • S 表示用例被跳过 Skip
  • x 小写的 x 表示预期失败 xfail
  • X 大写的 X 表示预期失败,但是通过了

5、生成测试报告

使用pytest-html插件可以生成HTML格式的测试报告。

运行命令如下:

pytest --html=report.html

 打开测试报告:

6、学习网站推荐

Pytest Tutorial

这是个印度佬创建的网站,不得不说这个教程对于初学pytest的人来说非常友好,基本上花个半天时间跟着教程练习一遍就能快速入门pytest的基本功能了。

Full pytest documentation — pytest documentation

这是Pytest官网教程,适合作为参考手册使用,如果你想深入了解某个API的功能都可以找到对应教程来学习。

Pytest权威教程(官方教程翻译) - 韩志超 - 博客园

这是大佬翻译的官网教程,建议作为官网教程的参考。


reference:

Pytest Tutorial

Full pytest documentation — pytest documentation

Pytest权威教程(官方教程翻译) - 韩志超 - 博客园

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值