一、pytest的特点:
- 简单灵活,容易上手,文档丰富 . 支持参数化,可以细粒度地控制要测试的测试用例。
- 能支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appium等自动化测试、接口测试(pytest+requests)。
- pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium (集成selenium)、pytest-html (完美html测试报告生成)、pytest-rerunfailures(失败case重复执 行)、pytest-xdist (多CPU分发)等。
二、 pytest 安装
pip install -U pytest # 参数 -U指安装最新版本
pytest --version # 查看版本信息
三. pytest用例编写规范
- 测试文件以 test_ 开头(以 _test 结尾也可以).
- 测试类以 Test 开头,并且不能带有 init 方法 .
- 测试函数以 test_ 开头 .
- 断言使用 assert.
四. pytest框架assert断言的使用
- 编写代码时,我们经常会做出一些假设,断言就是用于在代码中捕捉这些假设。断言表示为一些bool表达式,测试人员通常会加一些断言来断定中间过程的正确性。断言支持显示最常见的子表达式 的值,包括调用,属性,比较以及二元和一元运算符。
- Python使用 assert (断言)用于判断一个 表达式,在表达式条件为 false 的时候触发异常 。
- 如果没有断言,没有办法判定用例中每一个测试步骤结果的正确性。在项目中适当的使用断言,来对代码的结构、属性、功能、安全性等场景检查与验证。
- 使用方法: assert True / assert False
举例如下:
# 创建文件test_1.py
import pytest
lam=lambda x,y:x+y
def test_case1():
print('\n执行test_case1')
assert lam(3,6) == 9
def test_case2():
print('\n执行test_case2')
assert lam(4,2) == 5
def test_case3():
print('\n执行test_case3')
assert True
if __name__== '__main__':
args=['test_1.py']
pytest.main(args)
六. 运行结果说明
test_1.py .F. [100%]
================================== FAILURES ================================