gRPC 使用者
概觀
gRPC user 模板對 operator 提供的 stub 進行 unary 呼叫。底層使用 grpcio 與你自己的 *_pb2 / *_pb2_grpc,皆 lazy import — 以 pip install je_load_density[grpc] 安裝。
Task 欄位
欄位 |
意義 |
|---|---|
|
gRPC 端點,如 |
|
Stub 類別的 dotted path( |
|
請求訊息的 dotted path( |
|
Stub 上的 method 名。 |
|
用以建構 request message 的 dict。 |
|
|
|
單呼叫 timeout(秒),預設 10。 |
dotted path 在 importlib.import_module 之前會通過嚴格識別符 regex 驗證;traversal 攻擊(../、;、__import__)皆被拒絕。
範例
from je_load_density import start_test
start_test(
user_detail_dict={"user": "grpc_user"},
user_count=20,
spawn_rate=5,
test_time=60,
tasks=[
{
"name": "say_hello",
"target": "localhost:50051",
"stub_path": "pkg.greeter_pb2_grpc.GreeterStub",
"request_path": "pkg.greeter_pb2.HelloRequest",
"method": "SayHello",
"payload": {"name": "world"},
"metadata": [["x-token", "abc"]],
"timeout": 5,
}
],
)
每次呼叫會觸發標記為 GRPC 的 Locust 事件。