匯入器
概觀
六個匯入器把現實世界的壓測資產轉成 LoadDensity action JSON 或單一
task dict。產出的 task schema 完全一致,因此下游 LD_start_test
payload 與輸入格式無關。
來源 |
LoadDensity helper |
|---|---|
HAR(瀏覽器 DevTools、mitmproxy、Charles…) |
|
Postman v2.1 collection |
|
OpenAPI 3.x(JSON / YAML) |
|
單一 cURL 指令 |
|
k6 腳本( |
|
JMeter JMX |
|
cURL
from je_load_density import curl_to_task
task = curl_to_task("""curl -X POST https://api/login \\
-H 'Content-Type: application/json' \\
-d '{"email":"u@x","password":"s"}'""")
支援旗標:-X / --request、-H / --header、
-d / --data / --data-raw / --data-binary / --data-urlencode、
-u / --user``(basic auth)、-b / –cookie``、
-k / --insecure、-L / --location、--compressed。
HAR
from je_load_density import load_har, har_to_action_json
action_json = har_to_action_json(
load_har("recording.har"),
user="fast_http_user",
user_count=20, spawn_rate=10, test_time=120,
include=[r"api\.example\.com"],
exclude=[r"\.svg$"],
)
HAR 內回應狀態碼會自動成為每個 task 的 status_code 斷言。
Postman v2.1
from je_load_density import (
load_postman_collection,
postman_to_action_json,
)
action_json = postman_to_action_json(
load_postman_collection("collection.json"),
user="fast_http_user", user_count=20, spawn_rate=10, test_time=120,
)
遞迴走訪 folder;raw / urlencoded / formdata body 皆支援;disabled header / field 自動跳過。
OpenAPI 3.x
from je_load_density import load_openapi, openapi_to_action_json
action_json = openapi_to_action_json(
load_openapi("openapi.yaml"), # YAML 需 [yaml] extra
user="fast_http_user", user_count=20, spawn_rate=10, test_time=120,
)
每個 (path, method) 變成一個 task;``{param}`` 路徑參數會被改寫為
${var.param},供呼叫者透過 register_variables 提供值。第一個
2xx 回應狀態碼會成為 status_code 斷言。
k6
from je_load_density import load_k6_script, k6_script_to_action_json
action_json = k6_script_to_action_json(load_k6_script("script.js"))
實用主義解析器 — 抓 http.<method>(...) 呼叫以及相鄰的
check(res, {...})。不是完整 ES module 評估器;設計用於一次性遷移,
不追求 1:1 來回轉換。
JMeter JMX
from je_load_density import load_jmeter_jmx, jmeter_to_action_json
action_json = jmeter_to_action_json(load_jmeter_jmx("plan.jmx"))
走訪 XML,為每個 HTTPSamplerProxy 產生一個 task,並繼承外層
HeaderManager 設定;form Arguments 轉成 body 字串或 dict。
Action JSON 指令
指令 |
說明 |
|---|---|
|
HAR pipeline |
|
Postman pipeline |
|
OpenAPI pipeline |
|
解析一條 cURL |
|
k6 pipeline |
|
JMeter JMX pipeline |