如何参数化 json 文件中的值 - loadrunner

how to parameterize the value in json file - loadrunner

在使用 REST 编写 loadrunner 脚本方面需要一些帮助 api。我有一个要求,即 LR 脚本应该始终替换唯一参数,并且此参数应该是 Json 正文的一部分。我正在使用的文件很大。因此,我在 LR 的额外文件中创建了 payload.json。在 Bodyfilepath 中,我给出了 json 文件的名称。 在 payload.json 中,我为请求成功参数化了一个值(每次迭代都必须是唯一的)。但是,此参数值不会被替换。 任何人都可以帮助我或分享有助于用参数值替换 json 文件中的值的代码 谢谢

web_custom_request(
"web_custom_request", 
"URL=name of the URL/Service ", 
"Method=POST", 
"TargetFrame=", 
"Resource=0", 
"Referer=", 
"BodyFilePath=payload.json", 
LAST); 

Payload.json 文件在 Extra Files 下传递,示例如下所示:

{ "Msgheader":
{ "Field1":"AB", "Field2":"201300{test}", "Field3":"50.00", "CrBy":"", "CrOn":"2018-03-16", }

看来您不能直接在加载的文件上进行参数替换,因此您需要手动加载 JSON 然后将其用作正文。 以下是如何操作的示例:

lr_read_file("test.json", "test", 0);
lr_save_string(lr_eval_string(lr_eval_string("{test}")),"myjson");


lr_eval_json("Buffer={myjson}", 
             "JsonObject=myjson", 
             LAST);
lr_json_stringify("JsonObject=myjson","Format=compact","OutputParam=Result",LAST );


web_rest("My POST",
    "URL=http://myserver.com",
    "Method=POST",
    "EncType=raw",
    "Snapshot=t536990.inf",
//  "Body={\"store\": \"{ts}\"}", this is what the JSON contains 
//                                and I have a parameter named ts
    "Body={Result}",
    HEADERS,
    "Name=Content-Type", "Value=application/json", ENDHEADER,
    LAST);