lnt.testing – 測試資料建立

用於處理 LNT 測試格式的工具。

客戶端可以輕鬆產生 LNT 測試格式資料,方法是為他們想要提交的執行建立報告物件,並使用 Report.render 將其轉換為適合提交到伺服器的 JSON 資料。

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

有關執行測試之機器的資訊。

info 字典可用於描述有關機器的其他資訊,例如硬體資源或作業環境。

資料庫中的機器條目由其名稱和 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,則使用當前日期。

與機器一樣,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」是一個有意義的測試名稱。

測試資訊字典的目的是保存有關所執行的測試的特定排列的資訊。這可能包括特定於被測軟體的變數。例如,這可能包括建置測試時使用的編譯標誌,或使用的執行階段參數。一般規則是,如果兩個測試樣本有意義且可以直接比較,那麼它們應該具有相同的測試名稱但不同的資訊參數。

對於多次執行相同測試以收集統計數據的情況,報告中可能包含每個測試的任意數量樣本。

render()

從此實例返回一個字典中的資訊,該字典在列印為 json 時遵循建構時指定的版本之 LNT 報告格式。