对于测试工作人员来说,目前用到的最多的单元测试工具非 pytest 莫属。
pytest 是一个非常流行且成熟的,全功能的 Python 测试框架,适用于单元测试、UI 测试、接口测试。它和单元测试框架 unittest 类似,但是 pytest 更简洁、高效。
很多测试人员学习 unittest 和 pytest 之后,都会感觉到 pytest 才是做测试的最好框架,这是因为 pytest 有许多优点:
简单灵活,容易上手。
支持参数化。
可标记测试功能与属性。
pytest 具有很多第三方插件,并且可以自定义扩展,比较好用的如 pytest-selenium(集成 Selenium)、pytest-html(生成 HTML 测试报告)、pytest-rerunfailures(失败 case 重复执行)等。
使用 skip 和 xfail 可以处理不成功的测试用例。
可通过 xdist 插件分发测试到多个 CPU。
允许直接使用 assert 进行断言,而不需要使用 self.assert *。
方便在持续集成工具中使用。
01
pytest 安装
打开 Xfce 终端,输入命令 sudo pip install pytest
然后回车,操作截图如下:
安装完成后,输入命令 pytest -V
或 pytest --version
检查 pytest 是否安装成功,操作截图如下:
如果出现 pytest version 等版本信息,则表示安装成功。
02
实例体验
我们在 /home/shiyanlou/
下新建一个文件夹 test
,然后使用 VS Code 打开 test
文件夹。再在 test
文件夹下新建一个 py 文件,并且命名为 test_example.py
。编写 test_example.py
内容如下:
import pytestdef add(a, b):
return a + bdef test_add1():
print("add(2, 3)的结果是:{}".format(add(2, 3))) assert add(2, 3) == 5def test_add2():
assert add(2, 3) == 6if __name__ == "__main__":
pytest.main()
运行 pytest 标记的测试用例有两种方法,在 py 文件中添加 pytest.main()
,使用 VS Code 工具右上角的运行按钮执行。另一种方法是在命令行中使用命令运行,本次实验我们采用在命令行中运行。
打开 VS Code 的终端,通过命令 cd /home/shiyanlou/test/
进入到 test
文件夹下,输入 pytest
后回车,操作截图如下:
从运行结果中可以看到一些信息:
可以看到运行的平台,运行的 Python 版本,执行的根目录。
收集的测试用例,
collected 2 items
表示总共检测到两条测试用例。执行的测试文件及测试文件中测试用例的结果,其中
.
表示测试通过的用例,F
表示测试失败的用例。[100%]
指运行所有测试用例的总体进度。如果测试用例运行不通过,则会显示具体的测试用例,并且标注出错的地方。
在最后,会对运行的整体情况给出一个简单的统计。例如
1 failed, 1 passed in 0.09s
。
03
系统学习
蓝桥云课上线了一门《Web 自动化测试全面提升之 Pytest》,通过 13 个实验带你系统学习 Pytest,逐步掌握 Pytest 框架、PyMySQL、logging 和 OpenPYXL、以及自动化测试中数据驱动模型和关键字驱动模型等。
在 Python 自动化测试中,Pytest 是非常流行且受大家喜爱的一个测试框架。拥有简单灵活、容易上手、功能强大、插件丰富、支持参数化等特点。是自动化测试中的一把利器。课程会全方位为大家介绍 Pytest 框架的操作,并且会在数据驱动模型和关键字驱动模型中使用。
本系列实验由原著作者基于其《Python Web 自动化测试入门实战》书籍中 Pytest 内容改编而成。
效果图展示
数据驱动模型实战结果展示:
关键字驱动模型实战结果展示:
课程大纲:
你将学到:
适合人群
在职人群:软件测试人员
在校学生:想要了解自动化测试的同学
其他人群:对 Pytest 框架感兴趣的人员
课程地址:
https://www.lanqiao.cn/courses/3776
???????????? 点击文末的「阅读原文」,免费试学课程内容~