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

  该参数用来使用表达式制定特定的测试用例运行。例如

  1.   pytest -k 类名      pytest -k Testday
  2.        pytest -k 方法名   pytest -k test_0001
  3.        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

相关