pytest框架入门
因为最近项目需要接口自动化,由于之前公司使用的是robot framework 现在公司想用pytest框架所以抽空余时间学习了一下pytest基础内容,现将学习笔记整理一下后续可以作为团队内部学习资料。
安装
pip install pytest
查看版本
pytest version
用例的识别和运行
- 测试文件已test_***开头或者以_test结尾也可以
- 测试类以Test开头,并且不能有__init__方法
- 测试函数以test_开头
第一个例子
打开pycharm的terminal 执行“pytest test_one.py“命令,输出结果如下:
可能出现的测试结果有如下几种:
- PASSED(.):测试通过
- FAILED(.):测试失败
- SKIPPED(s):跳过,即没有被执行
- XFAIL(x):预期测试失败了,并且确实失败了
- XPASS(X):预期测试失败了,但是实际通过了,不符合预期
- ERROR(E):测试用例之外的代码错误
命令行运行参数
pytest带有很多参数,可以使用pytest --help来查看帮助文档,下面介绍集中长用的参数:
- 无参数
读取路径下所有符合规则的文件,类,方法,函数全部执行
- -v
打印详细的运行日志信息,一般在调试的时候加上这个参数,终端会打印出每条用例的详细日志信息,方便定位问题
- -s
带控制台输出结果,当你的代码中有print输出语句,如果想在运行结果中打印print输出代码,在运行的时候可以添加-s参数
- -k
该参数用来使用表达式制定特定的测试用例运行。例如
- pytest -k 类名 pytest -k Testday
- pytest -k 方法名 pytest -k test_0001
- pytest -k "类名 and not 方法名“ pytest -k "Testday and not test_0001“
- -x
遇到用例失败立即停止
- -maxfail=num
用例失败个数达到阀值停止运行
- -m
将运行有@pytest.mark.[标题]这个标记的测试用例
- ::(运行模式)
举例 pytest test_one.py::Testday pytest test_one.py::Testday::test_0001