一个将Robot Framework测试运行结果序列化到sqlite3数据库的工具。
项目描述
DbBot是一个Python脚本,可以将Robot Framework输出文件序列化到SQLite数据库。这样,未来的Robot Framework相关工具和插件将有一个统一存储的测试运行结果。
需求
已安装Python 2.6或更高版本
已安装Robot Framework 2.7或更高版本
建议使用2.7.4或更高版本的Robot Framework,因为2.7.4之前的版本不支持存储测试运行的总耗时或标签。
工作原理
脚本以一个或多个output.xml文件作为输入,初始化数据库模式,并将相应的结果存储到数据库中(默认为robot_results.db,可以通过选项-b或–database更改)。如果数据库文件已存在,它将新结果插入该数据库。
安装
此工具可以通过以下命令使用pip安装
$ pip install dbbot
或者您也可以下载源代码包,解压并使用以下命令安装
$ python setup.py install
存储内容
测试数据(名称、内容)和测试统计信息(通过或失败的个数、可能发生的错误、运行时间等)与测试套件和测试用例相关的内容默认存储。然而,由于大规模测试运行可能需要更长的时间量级,关键字和相关数据不会默认存储。您可以通过使用-k或–also-keywords标志来选择存储关键字和相关数据。
使用示例
使用单个output.xml文件的典型用法
python -m dbbot.run atest/testdata/one_suite/output.xml
如果数据库尚不存在,则将其创建。否则,测试结果将直接插入到现有数据库中。只有新结果会被插入。
默认数据库是名为robot_results.db的文件。
其他选项包括
短格式 |
长格式 |
描述 |
---|---|---|
-k |
–also-keywords |
解析套件和测试的关键字 |
-v |
–verbose |
将输出打印到控制台。 |
-b DB_FILE_PATH |
–database=DB_FILE_PATH |
SQLite数据库用于测试运行结果 |
-d |
–dry-run |
执行所有操作,除了存储结果。 |
指定自定义数据库名称
$ 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> .tables
arguments suite_status test_run_errors tests
keyword_status suites test_run_status
keywords tag_status test_runs
messages tags test_status
sqlite> SELECT count(), tests.id, tests.name
FROM tests, test_status
WHERE tests.id == test_status.test_id AND
test_status.status == "FAIL"
GROUP BY tests.name;
请注意,当数据库初始化时,DbBot不会创建索引,这是为了避免减慢插入速度。您可能需要手动添加索引到数据库中,以加快您自己的脚本中的某些查询。
有关数据库架构的信息,请参阅doc/robot_database.md。
从Robot Framework 2.7迁移到2.8
在Robot Framework 2.8中,output.xml略有变化。因此,使用2.7创建的数据库需要迁移才能与2.8兼容。
要迁移现有数据库,请发出以下脚本
python tools/migrate27to28 -b <path_to_robot_results_db>
用例示例:最常失败的测试
DbBot的常见用例之一是获取最常失败的套件、测试和关键字的报告。在examples/FailBot/bin/failbot中有此目的的示例。
Failbot是一个Python脚本,用于使用存储在DbBot数据库中的信息生成失败套件、测试和关键字的摘要网页。请根据您的需要调整examples/FailBot/templates中的(裸骨)HTML模板。
编写您自己的脚本
请以examples/FailBot/failbot中的模块为例,了解如何利用DbBot提供的类来构建满足您自己的脚本需求的类。
许可证
DbBot在Apache License, Version 2.0下发布。
有关详细信息,请参阅LICENSE.TXT。
项目详情
dbbot-0.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c41fd61b71100eebf757b3b084a104c87dd2b7c15ed7d4166cd9d7540e82e180 |
|
MD5 | efab56aa40c8835ad233b9bdc728672a |
|
BLAKE2b-256 | 0c1838410a5c2771378aba2d1bff6cef139ba680fbb488dcf56aa14da32ce856 |