10 UI自动化测试——PyTest框架
pytest 是 python 的一种单元测试框架,同自带的 UnitTest 测试框架类似,相比于 UnitTest 框架使用起来更简洁,效率更高。
-
UI自动化测试——PyTest框架
1. 介绍和安装
1.1 概念
pytest 是 python 的一种单元测试框架,同自带的 UnitTest 测试框架类似,相比于 UnitTest 框架
使用起来更简洁,效率更高。
1.2 特点
- 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
- 支持简单的单元测试和复杂的功能测试
- 支持参数化
- 执行测试过程中可以将某些测试跳过,或者对某些预期失败的 Case 标记成失败
- 支持重复执行失败的 Case
- 支持运行由 Nose,UnitTest 编写的测试 Case
- 具有很多第三方插件,并且可以自定义扩展
- 方便的和持续集成工具集成
1.3 安装
pip3 install pytest
安装校验
- 进入命令行
- 输入命令 pytest --version 会展示当前已安装版本
- 运行方式
代码准备
test_login.py
class TestLogin:
def test_a(self): # test开头的测试函数
print("------->test_a")
assert 1 # 断言成功
def test_b(self):
print("------->test_b")
assert 0 # 断言失败
运行方式分为两种:
命令行模式【建议】
命令行中执行 pytest -s test_login.py
主函数模式
在 test_login.py 文件中增加主函数
if __name__ == '__main__':
pytest.main(["-s", "login.py"])
-s 表示支持控制台打印,如果不加,print 不会出现任何内容
运行结果
test_login.py ------->test_a
.------->test_b
F
. 表示成功
F 表示失败
小结
建议使用命令行的形式运行,对比主函数模式更加方便
2. setup 和 teardown
应用场景
pytest 在运行自动化脚本的前后会执行两个特殊的方法,分别是 setup 和 teardown 。在执行脚本
之前会执行 setup 方法,在执行脚本之后会执行 teardown 方法。有了这两个方法,我们可以在
setup 中进行获取驱动对象的操作,在 teardown 中进行关闭驱动对象的操作。
3.1 函数级别方法
运行于测试方法的始末,运行一次测试函数会运行一次 setup 和 teardown。
示例代码
import pytest
class TestLogin:
# 函数级开始
def setup(self):
print("------->setup_method")
# 函数级结束
def teardown(self):
print("------->teardown_method")
def test_a(self):
print("------->test_a")
def test_b(self):
print("------->test_b")
执行结果
scripts/test_login.py ------->setup_method # 第一次 setup()
------->test_a
.------->teardown_method # 第一次 teardown()
------->setup_method # 第二次 setup()
------->test_b
.------->teardown_method # 第二次 teardown()
3.2 类级别方法
运行于测试类的始末,在一个测试内只运行一次 setup_class 和 teardown_class,不关心测试类
内有多少个测试函数。
示例代码
class TestLogin:
# 测试类级开始
def setup_class(self):
print("------->setup_class")
# 测试类级结束
...
def teardown_class(self):
print("------->teardown_class")
def test_a(self):
print("------->test_a")
def test_b(self):
print("------->test_b")
执行结果
scripts/test_login.py ------->setup_class # 第一次 setup_class()
------->test_a
.------->test_b
.------->teardown_class # 第一次 teardown_class()
4. 配置文件
应用场景
使用配置文件后可以快速的使用配置的项来选择执行哪些测试模块。
使用方式
- 项目下新建 scripts 模块
- 将测试脚本文件放到 scripts 中
- pytest 的配置文件放在自动化项目目录下
- 名称为 pytest.ini
- 命令行运行时会使用该配置文件中的配置
- 第一行内容为 [pytest]
示例
[pytest]
# 添加命令行参数
addopts = -s
# 文件搜索路径
testpaths = ./scripts
# 文件名称
python_files = test_*.py
# 类名称
python_classes = Test*
# 方法名称
python_functions = test_*
addopts = -s
表示命令行参数
testpaths,python_files,python_classes,python_functions
表示 哪一个文件夹 下的 哪一个文件 下的 哪一个类 下的 哪一个函数
表示执行 scripts 文件夹下的 test 开头 .py 结尾的文件下的 Test 开头的类下的 test开头的函
数
更多推荐




所有评论(0)