資料層

資料層提供串接 request、用外部資料驅動測試,以及切換環境而不必重寫 action JSON 所需的全部工具。

VariableStore

Thread-safe 全域單例 variable_store

from je_api_testka import variable_store

variable_store.set("token", "abc")
variable_store.get("token")        # 'abc'
variable_store.snapshot()           # {'token': 'abc'}
variable_store.clear()

模板渲染

render_template 會遞迴走 dict / list / str,把 {{name}} placeholder 替換成 store 內的值。

from je_api_testka import render_template, variable_store

variable_store.set("base", "https://api.invalid")
render_template({"url": "{{base}}/v1"})
# -> {'url': 'https://api.invalid/v1'}

strict=True 可在 placeholder 找不到對應值時拋例外。

串接 request

extract_and_store 用 dotted path 從 response 取值並存到 store。

from je_api_testka import extract_and_store, variable_store

response_payload = {"data": {"user": {"id": 7}}}
extract_and_store(response_payload, "data.user.id", "user_id")
variable_store.get("user_id")  # 7

資料驅動測試

from je_api_testka import iter_csv_rows, iter_json_rows

for row in iter_csv_rows("data/users.csv"):
    ...
for row in iter_json_rows("data/users.json"):
    ...

假資料 helper

fake_uuidfake_emailfake_word 全 stdlib,夠應付邊界情境。 要更豐富的假資料,自行裝 Faker

環境設定檔

load_env_profile 讀 JSON 檔並把每個 key/value 推進 store,讓同一份 action 可以靠切 profile 對應 dev / staging / prod。

from je_api_testka import load_env_profile

load_env_profile("envs/dev.json")

Executor 命令

  • AT_set_variable

  • AT_get_variable

  • AT_clear_variables

  • AT_extract_and_store

  • AT_render_template

  • AT_fake_uuid

  • AT_fake_email

  • AT_fake_word

  • AT_load_env_profile