lnt.testing – 测试数据创建

用于处理 LNT 测试格式的实用工具。

客户端可以轻松生成 LNT 测试格式数据,方法是为他们希望提交的运行创建 Report 对象,并使用 Report.render 将其转换为适合提交到服务器的 JSON 数据。

class lnt.testing.Machine(name, info={}, report_version=1)

关于运行测试的机器的信息。

info 字典可以用于描述关于机器的附加信息,例如硬件资源或操作系统环境。

数据库中的 Machine 条目通过其名称和 info 字典的完整内容进行唯一化。

check()

检查对象成员是否足以在渲染该实例时生成指定版本 LNT json 报告文件。

render()

以字典形式返回此实例的信息,该字典在打印为 json 时符合构造时指定的 LNT 报告格式。

class lnt.testing.Report(machine, run, tests, report_version=1)

关于单个测试运行的信息。

在 LNT 测试模型中,每次测试运行应精确定义一个 machine 和 run,以及任意数量的 test samples。

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 仅应用于生成版本 1 或更早版本的 LNT JSON 报告文件格式的报告。

测试名称旨在作为正在执行的操作的持久、可识别的标识符。目前,大多数格式对测试名称使用某种形式的点号表示法,这将来可能会被正式纳入格式中。通常,测试名称应独立于被测软件,并指代某些已知量,例如被测软件。例如,“CINT2006.403_gcc”是一个有意义的测试名称。

测试 info 字典旨在保存关于运行的特定测试排列的信息。这可能包括特定于被测软件的变量。例如,这可能包括测试构建时使用的编译标志或使用的运行时参数。作为一般规则,如果两个测试样本在意义上是直接可比的,则它们应具有相同的测试名称但不同的 info 参数。

报告可能包含每个测试的任意数量的样本,以用于在多次运行同一测试以收集统计数据的情况。

render()

以字典形式返回此实例的信息,该字典在打印为 json 时符合构造时指定的 LNT 报告格式。