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 僅應用於產生版本 1 或更早版本的 LNT JSON 報告檔案格式的報告。

測試名稱旨在作為正在執行的內容的持久、可識別的識別符。目前,大多數格式都使用點表示法的某種形式作為測試名稱,而這將來可能會被納入格式中。一般來說,測試名稱應該獨立於受測軟體,並指代一些已知的量,例如受測軟體。例如,'CINT2006.403_gcc' 是一個有意義的測試名稱。

測試 info 字典旨在保存關於已執行的測試的特定排列組合的資訊。這可能包括特定於受測軟體的變數。這可能包括,例如,用於建構測試的編譯標誌,或使用的執行時期參數。作為一般規則,如果兩個測試樣本在語義上是直接可比較的,那麼它們應該具有相同的測試名稱但不同的 info 參數。

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

render()

以字典形式傳回此實例的資訊,該字典在以 json 格式印出時,會符合建構時指定的版本的 LNT 報告格式。