pytest是一个单元测试框架,在python中比较主流,另一个比较主流的就是unittest。
可以来干嘛呢?可以做自动化,接口也行,UI也可以,可以配合其它的测试工具(或模块)丰富自身,比如测试报告、断言和参数化;可以做别的(目前我没有接触,手动捂脸)。
unittest这个是官方库,python自带的框架;而pytest是在unittest基础上进一步封装的,可以兼容unittest脚本。
pytest的有点有什么呢?
1.资料丰富、入门简单、容易上手;
3.支持参数化;
4.执行过程用例可跳过,可标记预期失败;
5.支持失败case重复执行;
6.兼容unittest编写的case;
7.可使用html测试报告;
8.可与jenkins集成;
怎么安装呢?
cmd中操作:
pip install pytest pip install pytest --default-timeout=6000 -i https://pypi.tuna.tsinghua.edu.cn/simple # 如果超时可以更换清华源
安装完成后查看pytest版本:
pytest --version
pytest编写用例的时候需要按照规范来编写,否则用例将不能被pyterst识别并执行:
这里我用的pycharm进行测试的,所以要在pycharm中设置一下执行框架,方便操作。
用例的执行规则(cmd中执行pytest命令)
可以使用命令行参数执行 pytest -h 或者 pytest -help查看 pytest 帮助文档
下面说一下常用的参数
- 某个目录下的所有用例
- pytest
- 匹配用例名称
- 按节点运行
- 遇到错误是停止测试 -x
- pytest strart.py -x
- 当用例错误个数达到指定数量时停止测试 --maxfail=num
- pytest start.py --maxfail=6
- 详细打印用例的执行结果 -s, -v更详细
- pytest -s start.py
- 简单打印用例执行结果
- pytest -q start.py
常用的断言
pytest使用python自带的assert关键字进行断言: assert A==B 如果A==B为True,断言通过,A==B为False,单元失败,用例执行失败。
先看一个断言成功的例子:
class TestClass(object): # def __init__(self): # print('初始化函数') def test_func1(self): print('测试用例1==========') result = 10 assert result == 10
执行结果如下:
在看一下断言失败的情况:
执行结果如下:
总结一下pytest断言常用的几种情况:
- assert A: 判断 A 是否为真
- assert not A: 判断 A 是否为假
- assert A in B: 判断B是否包含A
- assert A==B: 判断A是否等于B
- assert A!=B: 判断A是否不等于B
结合上面的断言,用例执行完成后可以有一下几种状态:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。