產生報告

概觀

LoadDensity 可從 test_record_instance 產生六種報告:HTML、JSON、XML、CSV、JUnit XML、百分位摘要 JSON。

Note

報告需要至少一筆紀錄;對空 store 呼叫產生器會拋出 LoadDensityHTMLException / LoadDensityGenerateJsonReportException

HTML

from je_load_density import generate_html_report
generate_html_report("my_report")            # 寫出 my_report.html

JSON(依結果分檔)

from je_load_density import generate_json_report
success_path, failure_path = generate_json_report("my_report")

XML(依結果分檔)

from je_load_density import generate_xml_report
success_path, failure_path = generate_xml_report("my_report")

CSV(每筆請求一列)

from je_load_density import generate_csv_report
generate_csv_report("my_report")             # 寫出 my_report.csv

欄位:outcome, Method, test_url, name, status_code, response_time_ms, response_length, error

JUnit XML(CI 友善)

from je_load_density import generate_junit_report
generate_junit_report("loaddensity-junit")   # 寫出 loaddensity-junit.xml

每筆請求變成 <testcase>;失敗附上 <failure> 節點。可餵 Jenkins、GitHub Actions、GitLab 等。

Summary(百分位)

from je_load_density import generate_summary_report, build_summary

summary = build_summary()                    # 記憶體 dict
generate_summary_report("loaddensity-summary")

包含 totals、per-name 計數、min / max / mean / 百分位(p50 / p90 / p95 / p99)延遲與整體區塊。便於繪圖與跨次回歸檢查。

動作 JSON

把報告串入測試:

{"load_density": [
  ["LD_start_test", {...}],
  ["LD_generate_html_report",   {"html_name": "report"}],
  ["LD_generate_json_report",   {"json_file_name": "report"}],
  ["LD_generate_xml_report",    {"xml_file_name": "report"}],
  ["LD_generate_csv_report",    {"csv_name": "report"}],
  ["LD_generate_junit_report",  {"report_name": "report-junit"}],
  ["LD_generate_summary_report",{"report_name": "report-summary"}]
]}