一:环境配置
安装pytest
pytest官网地址:https://github.com/pytest-dev/pytest/
pytest第三方插件:http://plugincompat.herokuapp.com/
前置条件:已安装Python环境
使用pip安装pytest,在Dos窗口中执行pip install -U pytest命令:
安装Allure2
前置条件:已部署java环境
allure 是一个轻量级的,灵活的,支持多语言,多平台的report框架
Allure2官网地址:https://github.com/allure-framework/allure2
Win10 安装allure2:需要在Power Shell窗口中执行scoop install allure命令:
Win键+X 调出Power Shell窗口
Power Shell窗口执行如下命令(先安装scoop):
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
执行后,使用scoop命令查看是否正确安装(下图说明安装正确):
Power Shell窗口执行scoop install allure命令(如下图安装成功):
注意:win7下要执行pip install pytest-adaptor-allure安装allure的适配器!
二:Pytest的参数详解
2.1:--collect-only
使用--collect-only选项可以展示在给定的配置下哪些测试用例会被执行。
2.2:-k
-k选项允许我们使用表达式指定希望执行的测试用例。
2.3:-m
-m(marker)用于标记测试并分组以便快速选择并执行测试用例。
使用的前提条件是必须使用@pytest.mark.marker_name标记测试用例
-m可以使用多个marker_name(标记名称),当然它也支持and not or这些规则。
2.4:-x(--exitfirst)
正常情况下,pytest会运行每个收集到的测试用例。如果某个测试函数被断言失败或者触发了外部异常,则该测试用例的运行就会终止,pytest将其标记为失败后会继续下一个测试用例。通常来说这是我们期望的运行模式。但是在debug时,我们会希望失败时立即终止整个会话,此时,-x选项就可以满足我们的需求了。
2.5:--maxfail=num
-x选项的特点是一旦遇到失败就会立即终止会话。如果我们允许pytest失败几次后再停止,那么就果断使用--maxfail选项吧。
例子:pytest --maxfail=3(pytest执行过程中失败3次后终止会话)
2.6:-s(--capture=method)
-s选项允许终端在测试过程中输出某些结果,包括任何附和标准的输出流信息。-s等价于--capture=no。正常情况下,所有的测试输出都会被捕获。
2.7:--lf(--last-failed)
当一个或多个测试用例失败时,如果我们希望定位到最后一个失败的测试用例重新执行,此时,可以使用--lf选项。
2.8:--ff(--failed-first)
--ff和--lf选项的作用差不多,不同之处在于--ff会运行完剩余的测试用例。
2.9:-v(--verbose)
使用-v选项,输出的信息会更详细。
2.10:-q(--quit)
-q选项和-v选项作用相反,它会简化输出信息。
2.11:-l(--showlocals)
使用-l选项,失败的测试用例由于被堆栈追踪,所以局部变量及其值都会显示出来。
2.12:--tb=style
--tb选项觉得了捕获到失败时输出信息的显示方式。
推荐的style类型有short,line,no。
Short模式:仅输出assert的一行一级系统判定内容。
line模式只使用一行输出显示所有的错误信息。
no模式则直接屏蔽全部回溯信息。
2.13:--duration=N
--duration=N选项可以加快测试节奏。它不关心测试如何执行,只统计测试过程中哪几个阶段是最慢的,展示最慢的N个阶段,耗时越长越靠前。如果指定duration=0,将所有阶段按耗时从长到短排序后显示。