跳转到主要内容

一个将Robot Framework测试运行结果序列化到sqlite3数据库的工具。

项目描述

DbBot是一个Python脚本,可以将Robot Framework输出文件序列化到SQLite数据库。这样,未来的Robot Framework相关工具和插件将有一个统一存储的测试运行结果。

需求

建议使用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 (8.4 kB 查看哈希)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面