用于将robot框架测试运行结果序列化到sqlite3数据库中的工具。
dbbot的Python项目详细描述
dbbot是一个python脚本,用于将Robot Framework输出文件序列化到 一个sqlite数据库。这样未来的Robot Framework相关工具和 插件将为测试运行结果提供统一的存储空间。
要求
- Python2.6或更高版本已安装
- Robot Framework2.7或更高版本已安装
Robot Framework建议将2.7.4或更高版本作为 2.7.4不支持存储测试运行或标记的总运行时间。
工作原理
脚本将一个或多个output.xml文件作为输入,初始化 数据库模式,并将相应的结果存储到数据库中 (robot_results.db默认情况下,可以使用选项-b或 数据库。如果数据库文件已经存在,它将插入新文件。 结果输入数据库。
安装
此工具与pip一起安装,命令为:
$ pip install dbbot
或者,您可以下载源发行版,提取它并 安装时使用:
$ python setup.py install
存储的内容
测试数据(名称、内容)和测试统计数据(通过或 失败、可能发生的错误、运行时间等)与 默认情况下,套件和测试用例是存储的。但是,关键字和相关 数据不会被存储,因为它可能需要更长的数量级 测试运行。您可以使用-k或 –也是关键字标志。
用法示例
单个output.xml文件的典型用法:
python -m dbbot.run atest/testdata/one_suite/output.xml
如果数据库不存在,则创建数据库。否则测试 结果只插入到现有的数据库中。只有新的结果 插入。
默认数据库是名为robot_results.db的文件。
其他选项包括:
Short format | Long format | Description |
---|---|---|
-k | –also-keywords | Parse also suites’ and tests’ keywords |
-v | –verbose | Print output to the console. |
-b DB_FILE_PATH | –database=DB_FILE_PATH | SQLite database for test run results |
-d | –dry-run | Do everything except store the results. |
指定自定义数据库名称:
$ python -m dbbot.run -b my_own_database.db atest/testdata/one_suite/output.xml
分析包含关键字和相关数据的测试运行结果:
python -m dbbot.run -k atest/testdata/one_suite/output.xml
同时提供多个测试运行结果文件:
python -m dbbot.run atest/testdata/one_suite/output.xml atest/testdata/one_suite/output_latter.xml
数据库
您可以使用sqlite3命令行工具检查创建的数据库:
$ sqlite3 robot_results.db sqlite> .tablesarguments suite_status test_run_errors tests keyword_status suites test_run_status keywords tag_status test_runs messages tags test_status sqlite> SELECTcount(),tests.id,tests.name FROM tests, test_status WHERE tests.id == test_status.test_id AND test_status.status == "FAIL" GROUP BY tests.name;
请注意,在初始化数据库时,不会创建索引 德博特。这是为了避免减慢插入速度。您可能需要添加 手动索引到数据库以加速您自己的某些查询 剧本。
有关数据库架构的信息,请参见doc/robot_database.md。
从Robot框架2.7迁移到2.8
在RobotFramework2.8中,output.xml略有变化。因为这个, 使用2.7创建的数据库需要迁移才能与2.8兼容。
迁移现有数据库,发布以下脚本:
python tools/migrate27to28 -b <path_to_robot_results_db>
用例示例:大多数失败的测试
dbbot的一个常见用例是 失败的套件、测试和关键字。在 示例/failbot/bin/failbot。
failbot是一个python脚本,用于生成失败的摘要web页面 套件、测试和关键字,使用dbbot中存储的信息 数据库。请调整(赤骨)HTML模板 示例/failbot/模板
编写自己的脚本
请以examples/failbot/failbot中的模块为例 如何在dbbot提供的类之上构建以满足您自己的需要 脚本需求。