硬核!Python测试框架 “ pytest ” 快速入门(小白必看!)

Posted 程序员二黑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了硬核!Python测试框架 “ pytest ” 快速入门(小白必看!)相关的知识,希望对你有一定的参考价值。

  • 📢 我是二黑,一个快要秃头的测试人

  • 📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📢 我收集了一些软件测试资料,关注我公众号:程序员二黑,免费领取!

  • 📢 最困难的时候,也就是我们离成功不远的时候!


1、简介

pytest 是成熟的功能齐全的 Python 测试工具,可帮助你编写更好的程序。

pytest 是一个使构建简单和可伸缩的测试变得容易的框架。测试具有表达性和可读性,不需要样板代码。几分钟后就可以开始对应用程序或库进行小的单元测试或复杂的功能测试。

特点:

  • 1、非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考。

  • 2、能够支持简单的单元测试和复杂的功能测试。

  • 3、支持参数化。

  • 4、执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的 case 标记成失败。

  • 5、支持重复执行 (reruns) 失败的 case。

  • 6、支持运行由 nose、unittest 编写的测试 case。

  • 7、可生成 html 报告。

  • 8、可以很好的和CI工具结合,例如 jenkins。

  • 9、可支持执行部分用例。

  • 10、具有很多第三方插件,并且可以自定义扩展。

官方网址:

http://pytest.org/

GitHub网址:

https://github.com/pytest-dev/pytest

2、安装

1、在命令行中运行以下命令进行安装:

pip install -U pytest

或者(使用国内的豆瓣源,数据会定期同步国外官网,速度快。)

pip install pytest -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

2、查看安装的版本:

pytest --version

3、快速入门

1、创建test_Demo.py文件。

脚本代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-


"""
微信公众号:程序员二黑
"""

def func(x):
    return x + 1

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

class TestClass:
    def test_one(self):
        x = "this"
        assert "h" in x

    def test_two(self):
        x = "hello"
        assert hasattr(x, "check")

2、打开命令行,进入当前目录下,输入pytest(或者输入py.test也可以)命令执行。

总结:

  • 1、如果只执行 pytest,会查找当前目录及其子目录下以 test_*.py 或 *_test.py 文件,找到文件后,在文件中找到以 test 开头函数并执行。

  • 2、如果只想执行某个文件 pytest test_Demo.py

  • 3、加上 -q,就是显示简单的结果 pytest -q test_Demo.py

3.1、pytest设计用例规则

按照下面的规则去写,否则不符合规则的测试用例是不会执行的。

  • 1、文件名以 test_*.py 文件和 *_test.py 文件。

  • 2、以 test_ 开头的函数。

  • 3、以 Test 开头的类,不能包含 init 方法。

  • 4、以 test_ 开头的类里面的方法。

  • 5、所有的包 Package 必须要有 init.py 文件。

3.2、pytest执行用例规则

在命令行中执行pytest命令

3.2.1、目录下执行所有的用例

pytest
或者
py.test

3.2.2、执行单独一个pytest模块

pytest 文件名.py

3.2.3、运行某个模块里面的某个类

pytest 文件名.py::类名

3.2.4、运行某个模块里面某个类里面的方法

pytest 文件名.py::类名::方法名

3.2.5、-v打印运行日志信息(详细)

pytest -v 文件名.py

3.2.6、-q打印运行日志信息(简略)

pytest -q 文件名.py

3.2.7、-s控制台输出结果

pytest -v -s 文件名.py
s是带控制台输出结果,也是输出详细运行日志

3.2.8、-m标记表达式

pytest -m login
将运行用 @pytest.mark.login 装饰器修饰的所有测试

3.2.9、-x用例运行失败则立即停止执行

pytest -x 文件名.py

3.2.10、-k运行包含关键字的用例

pytest -v -k "one" 文件名.py
执行测试用例名称包含 one 的所有用例

3.2.11、-k运行排除关键字的用例

pytest -v -k "not one" 文件名.py
执行测试用例名称不包含 one 的所有用例

3.2.12、-k运行匹配多个关键字的用例

pytest -v -k "one or two" 文件名.py
执行测试用例名称包含 one 或 two 的所有用例

3.2.13、–maxfail=num错误个数达到指定数量停止测试

pytest 文件名.py --maxfail=1
用例运行时允许的最大失败次数,超过则立即停止。

最后为方便大家学习测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。


包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……

关注我公众号:【程序员二黑】即可获取这份资料了!

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流,里面也有各种软件测试资料和技术交流。

推荐阅读

高薪程序员也躲不过35岁这一关…当能力与年龄脱节,我们该如何自救

大学毕业开始销售…不甘于现状,转行测试的自救之路

从销冠到失业,最后选择软件测试,回头看看这段路,我很幸运!

以上是关于硬核!Python测试框架 “ pytest ” 快速入门(小白必看!)的主要内容,如果未能解决你的问题,请参考以下文章

python单元测试框架——pytest

Python测试框架之unittest和pytest

Python - pytest

python pytest测试框架介绍三

python测试框架:如何执行pytest测试用例

Python 测试框架之 pytest框架详解