lnt.testing
– 测试数据创建¶
用于处理 LNT 测试格式的实用程序。
客户端可以通过为他们希望提交的运行创建 Report 对象,并使用 Report.render 将其转换为适合提交到服务器的 JSON 数据,轻松生成 LNT 测试格式数据。
- class lnt.testing.Machine(name, info={}, report_version=1)¶
有关测试运行所在机器的信息。
info 字典可用于描述有关机器的其他信息,例如硬件资源或操作系统环境。
数据库中的 Machines 条目通过其名称和 info 字典的完整内容进行唯一化。
- check()¶
检查对象成员是否足以在渲染该实例时生成构建时指定的版本的 LNT json 报告文件。
- render()¶
以字典形式返回此实例中的信息,该字典在作为 json 打印时遵循构建时指定的版本的 LNT 报告格式。
- class lnt.testing.Report(machine, run, tests, report_version=1)¶
有关单个测试运行的信息。
在 LNT 测试模型中,每个测试运行都应准确定义一台机器和一次运行,以及任意数量的测试样本。
- check()¶
检查对象成员是否足以在渲染该实例时生成构建时指定的版本的 LNT json 报告文件。
- render(indent=4)¶
以字符串形式返回构建时指定的版本的 LNT json 报告文件格式,其中每个对象相对于其父对象缩进 indent 个空格。
- update_report(new_tests_samples, end_time=None)¶
将额外的样本添加到此报告中,并更新运行的结束时间。
- class lnt.testing.Run(start_time=None, end_time=None, info={}, report_version=1)¶
有关特定测试运行的信息。
必须提供至少一个参数,并将其用作多个运行之间的排序依据。在生成格式 1 或更早版本的报告时,start_time 和 end_time 都用于此效果,如果其值为 None,则使用当前日期。
与 Machine 一样,info 字典可用于描述有关运行的其他信息。此字典应用于描述在整个测试运行中保持不变的被测软件的信息,例如正在测试的修订版本号。它也可用于描述有关当前状态的信息,这可能对分析有用,例如当前机器负载。
- check()¶
检查对象成员是否足以在渲染该实例时生成构建时指定的版本的 LNT json 报告文件。
- render()¶
以字典形式返回此实例中的信息,该字典在作为 json 打印时遵循构建时指定的版本的 LNT 报告格式。
- update_endtime(end_time=None)¶
更新此运行的结束时间。
- class lnt.testing.TestSamples(name, data, info={}, conv_f=<class 'float'>)¶
有关给定测试及其关联样本数据的信息。
样本数据必须都与相同的指标相关。当针对给定测试有多个指标可用时,惯例是对每个指标使用一个 TestSamples,并将指标编码到名称中,例如 Benchmark1.exec。服务器会在每次看到新的测试名称时自动创建测试数据库对象。TestSamples 仅用于生成 LNT JSON 报告文件格式的版本 1 或更早版本的报告。
测试名称旨在成为正在执行内容的持久、可识别的标识符。目前,大多数格式对测试名称使用某种形式的点分表示法,这将来可能会在格式中得到体现。通常,测试名称应独立于被测软件,并引用某个已知量,例如被测软件。例如,“CINT2006.403_gcc”是一个有意义的测试名称。
测试 info 字典旨在保存有关测试的特定排列的信息。这可能包括特定于被测软件的变量。这可能包括,例如,测试构建时使用的编译标志,或使用的运行时参数。一般来说,如果两个测试样本具有意义且可以直接比较,那么它们应该具有相同的测试名称,但 info 参数不同。
报告可能包含每个测试的任意数量的样本,以应对多次运行同一测试以收集统计数据的情况。
- render()¶
以字典形式返回此实例中的信息,该字典在作为 json 打印时遵循构建时指定的版本的 LNT 报告格式。