标签:value ctrl 添加 本地变量 handle oct info http 自定义
1、安装
pip install pytest
2、查看版本和获取帮助
3、指定允许失败的用例数
4、执行指定的测试用例
pytest
为每一个收集到的测试用例指定一个唯一的nodeid
。其由模块名加说明符构成,中间以::
间隔。
其中,说明符可以是类名、函数名以及由parametrize
标记赋予的参数:
parametrize
标记赋予的参数执行,单个或多个参数的赋值形式类比,且指定能为[1-1]形式
5、pytest回溯信息的输出一共有六种模式:auto/long/short/line/native/no,用--tb
选项指定:
pytest -l, --showlocals # 打印本地变量
pytest --tb=auto # 默认模式
pytest --tb=long # 尽可能详细的输出
pytest --tb=short # 更简短的输出
pytest --tb=line # 每个失败信息总结在一行中
pytest --tb=native # python的标准输出
pytest --tb=no # 不打印失败信息
--full-trace
是一种比--tb=long
更详细的输出模式。它甚至能观察到用户打断执行(Ctrl+C
)时的回溯信息,而上述六种模式默认是不输出此类信息的。
6、报告
-r
选项可以在执行结束后,打印一个简短的总结报告。
所有有效的字符参数:
print
等p
和P
的6、失败是加载PDB(Python Debugger)
PDB
是python
内建的诊断器,pytest
允许通过以下命令在执行失败时进入这个诊断器模式:失败的信息存储在sys.last_value, sys.last_type, sys.last_traceback
变量中,可以在交互环境中访问它们;使用exit
命令,退出PDB
环境;
7、开始执行时加载PDB环境
8、设置断点
在测试用例代码中添加import pdb;pdb.set_trace()
,当其被调用时,pytest
会停止这条用例的输出:
continue
命令,退出PDB
环境,并继续执行用例;
9、内置breakpoint()
函数。pytest可以在以下场景中支持使用:
breakpoint()
被调用,并且PYTHONBREAKPOINT
为None
时,pytest
会使用内部自定义的PDB
代替系统的;PDB
;--pdb
选项时,breakpoint()
和测试发生错误时,都会调用内部自定义的PDB
;--pdbcls
选项允许指定一个用户自定义的PDB
类;10、分析用例执行时间
pytest
不会显示执行时间<0.01s的测试用例,可以使用-vv
选项查看;
11、错误句柄
在测试执行中发生段错误或者超时的情况下,faulthandler
标准模块可以转储python
的回溯信息;它在pytest
的执行中默认使能,使用-p no:faulthandler
选项可以关闭它;同样,faulthandler_timeout=X
配置项,可用于当测试用例的完成时间超过X
秒时,转储所有线程的python
回溯信息:
12、创建测试报告
(1)创建JunitXML格式
在pytest.ini设置junit_suit_name自定义testsuite根节点的name信息
JUnit XML规定time
属性应该表明测试用例执行的全部耗时,包含setup
和teardown
中的操作,这也是pytest的默认行为;如果只想记录测试用例执行的时间,只需要做如下配置:
13、在报告中为用例附加子节点信息
(1)使用record_property fixture:
(2)解析一个 自定义的@pytest.mark.test_id():修改pytest_collection_modifyitems
钩子方法,添加对test_id
标记的支持:
14、创建测试报告 的URL链接
只实现了在http://bpaste.net上的展示功能;
15、尽早加载插件
可以在命令行中使用-p
选项,来尽早的加载某一个插件:
pytest -p mypluginmodule
-p
选项接收一个name
参数,这个参数可以为:
myproject.plugins
,其必须是可以import
的。setuptools
中赋予的名字,例如:尽早的加载pytest-cov插件:bash pytest -p pytest_cov
16、去使能插件
可以在命令行中使用-p
结合no:
,来去使能一个插件的加载,例如:pytest -p no:doctest
17、python命令执行pytest
标签:value ctrl 添加 本地变量 handle oct info http 自定义
原文地址:https://www.cnblogs.com/Tester-Chenmo/p/12518658.html