【原文链接】Pytest----pytest-csv 执行结果输出csv文件
Pytest-csv插件用于将自动化脚本执行结果存储为csv格式,我们知道csv格式数据是可以直接使用excel打开的,这样一来就可以将脚本执行结果直接存放于excel表格中,这是非常方便的。
首先执行如下命令安装pytest-csv插件。
pip install pytest-csv
为了更好的演示pytest-csv插件的使用方法以及效果,这里准备了如下测试脚本。
import pytest
@pytest.mark.unit
@pytest.mark.smoke
def test_1():
"""
测试用例1: 用于演示pytest-csv插件的作用
:return:
"""
print("in test_1")
assert 1==1
@pytest.mark.system
def test_2():
"""
测试用例2: 用于演示pytest-csv插件的作用
:return:
"""
print("in test_2")
assert 1==2
然后使用如下命令执行脚本,此时即会自动将脚本执行结果以及脚本细心存储为csv格式。
pytest --csv test.csv
使用excel表格打开csv格式数据,结果如下图所示,这里在表格中将用例id、模块名、函数名、文件名、注释、标签、执行结果、报错信息,延时等显示出来了,这样一来相当于自动生成了excel数据表格式的自动化测试报表。这对测试来说是非常方便的。
此外pytest-cov是可以定制csv格式数据的列的,采用类似如下命令,即在–csv-columns 后面将列列举出来即可。
--csv tests.csv --csv-columns host,function,status,duration,parameters_as_columns
目前支持的列如下表所示:
Column | Description |
---|---|
id | pytest test identifier |
module | test module name |
class | test class |
function | test function name |
name | test name, with arguments |
file | test module file |
doc | test function docstring |
status | test status (passed, failed, error, skipped, xpassed or xfailed) |
success | test status, as a boolean |
duration | test duration, in seconds |
duration_formatted | test duration, human readable |
message | error message, if any |
markers | test markers, as a comma-separated list |
markers_with_args | test markers with their arguments, as a comma-separated list |
markers_as_columns | test markers, each as a separate column |
markers_args_as_columns | test markers with their arguments, each as a separate column |
parameters | test parameters, as a comma-separated list |
parameters_as_columns | test parameters, each as a separate column |
properties | properties recorded using record_property, as a comma-separated list |
properties_as_columns | properties recorded using record_property, each as a separate column |
user | current user name |
host | current host (from platform module) |
system | current system name (from platform module) |
system_release | current system release info (from platform module) |
system_version | current system version info (from platform module) |
python_implementation | current python implementation (from platform module) |
python_version | current python version (from platform module) |
working_directory | current working directory |