pytest各种自动化测试用例的代码
官方文档给出了pytest寻找测试项(也就是测试用例)的具体规则:
· 如果为指定命令行参数,则从testpath(如果已配置)或当前目录开始收集。
如果命令行参数,指定了目录,文件名或 node id 的任何组合,则按参数来找
· 寻找过程会递归到目录中,除非它们匹配上 norecursedirs.
· 在这些目录中,搜索由其测试包名导入的 test_*.py或*_test.py文件。
· 从这些文件中,收集如下测试项:
· test为前缀的函数
· Test(注意类为大写T)为前缀的类 里面的test为前缀的方法
示例:
首先,我们编写的测试用例代码文件,必须test_开头,或者以_test结尾(pytest 会根据命令 来识别哪些是自动化测试用例)
比如,创建一个文件名为 test_错误登录.py, 放在目录autotestcaseslogin 下
其中 autotest 是创建的自动化项目根目录
代码:
class Test_ercode:
def test_C001001(self):
print(' 用例C001001')
assert 1 == 1
def test_C001002(self):
print(' 用例C001002')
assert 2 == 2
def test_C001003(self):
print(' 用例C001003')
assert 3 == 2
项目命令行运行 pytest 查看结果
显示找到3个测试项,2个执行通过,一个不通过。
通过用例是用一个绿色小的表示, 不通过的检查点 显示代码细节
用例代码中有些打印语句没有显示内容。
因为pytes会 截获print打印内容
如果要显示print内容,可以加上 命令行参数 -s 如: pytest -s
如果要得到更详细的执行信息, 包括每个测试类,测试函数名字,可以加上-v 这个参数可以和-s 合并
如:pytest -sv (详细内容)
产生报告
测试报告需要一个 pytest-html插件 是用来产生测试报告的
下载:pip install pytest-html
要产生报告,在命令行加上参数 --html=report.html(自己命名的heml文件) --self-contained-html 如下:
pytest --html=report.html --self-contained-html
这样就会产生名为report.html的测试报告文件,可再浏览器打开
注意:工具有个bug,导致测试目录,文件名,类名中 ,如果有中文,显示为乱码
修复:
打开插件对应的代码文件,通常在解析器目录下: site-packagespytest_htmlplugin.py
找到代码:
报告展示