1. loadrunner + json說明
使用lr測試json接口,向服務端發送json格式請求,接收處理返回響應數據。
主要用到函數:
1)web_custon_request
2)web_reg_save_param (此函數常用戶處理動態參數,該方法在LoadRunner中被稱為Correlation(關聯))
2. web_custon_request 參數說明
3. 具體實例如下(包含發送json,獲取響應數據,設置關聯、設置檢查點):
/* 定義事務: 1)用戶注冊 2)用戶登錄 3)用戶簽到 接口為:application/json 思路: 1)app注冊,獲到mobile 2)使用獲取到的mobile登錄,獲取tokenid和userid。 參數化:手機號碼、設備號 */
Action() { //定義接口url char *Interface_Url; lr_save_string("http://192.168.0.1:8080/action.a","Interface_Url"); //注冊事務開始 lr_start_transaction("用戶注冊"); lr_rendezvous("register"); //檢查用戶是否注冊成功 web_reg_find("Search=Body", "Text=createTime", "SaveCount=createTime", LAST); //web_set_max_html_param_len("10000000"); //獲取用戶注冊后響應數據,並傳給mobile web_reg_save_param("mobile", "LB=\"mobile\":\"", //設置左邊界 "RB=\",", //設置右邊界 "Ord=1", "Notfound=empty", "Search=Body", LAST); web_custom_request("register", "Url={Interface_Url}", //設置url "Method=POST", //設置方法,post或get "Mode=HTTP", "EncType=application/json", //編碼類型 "RecContentType=application/json", "Body={\"c\":\"1001\",\"p\":{\"code\":\"9051\",\"mobile\":\"{phone}\",\"pwd\":\"123456\",\"model\":\"{model}\",}}", //請求主體,json格式,分號前需要加斜杠 LAST); lr_vuser_status_message("注冊事務,虛擬用戶數 #%s",lr_eval_string("{phone}")); lr_end_transaction("用戶注冊",LR_AUTO); //登錄事務開始 lr_start_transaction("用戶登錄"); lr_rendezvous("login"); web_reg_find("Search=Body", "Text=lastLoginTime", "SaveCount=lastLoginTime", LAST); //獲取用戶登錄后響應數據tokenId,並傳給pdl_dynamic_tokenId web_reg_save_param("pdl_dynamic_tokenId", "LB=\"tokenId\":\"", "RB=\"", "Ord=1", "Notfound=empty", "Search=Body", LAST); //從用戶登錄響應數據中,獲取pdl_user_id web_reg_save_param("pdl_user_id", "NotFound=warning", "LB=\"id\":", "RB=,\"inviteCode", "Ord=1", "Search=Body", LAST); web_custom_request("login", "Url={Interface_Url}", "Method=POST", "Mode=HTTP", "EncType=application/json", "RecContentType=application/json", "Body={\"c\":\"1002\",\"p\":{\"mobile\":\"{pdl_mobile}\",\"pwd\":\"123456\"}}", LAST); lr_end_transaction("用戶登錄",LR_AUTO); //用戶簽到 lr_start_transaction("用戶簽到"); lr_rendezvous("Sign_in"); web_reg_find("Search=Body", "Text=signDate", "SaveCount=signDate", LAST);
web_custom_request("pdl_Sign_in", "Url={Interface_Url}", "Method=POST", "Mode=HTTP", "EncType=application/json", "RecContentType=application/json", "Body={\"c\":\"1014\",\"p\":{\"userId\":\"{pdl_user_id}\",\"tokenId\":\"{pdl_dynamic_tokenId}\"}}", LAST); lr_end_transaction("用戶簽到",LR_AUTO); return 0; }