本篇文章主要針對POST請求的三種數據請求格式,組織不同的腳本,較爲基礎,入手教簡單
(1)、application/x-www-form-urlencoded 鍵值對
(2)、multipart/form-data 表單
(3)、application/json Json串
注意:loadrunner參數中的引號,需要自己加"\"。
1. application/x-www-form-urlencoded 鍵值對
- Action()
- {
- lr_start_transaction("checkPerson");
- /* 註冊獲取返回參數,該方法可以配合打印返回數據,檢測數據內容 */
- web_reg_save_param("Para",
- "LB=",
- "RB=",
- LAST);
- /* 註冊斷言: Text=斷言內容 */
- /* 該方法會判斷後面的web請求方法的返回值 */
- web_reg_find("Text=成功",
- LAST);
- /* 漢字進行UTF-8編碼 */
- lr_convert_string_encoding("需要進行UTF-8加密的中文字符串",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result");
- /* 向後面的web請求函數增加請求頭 */
- /* 如果web請求方法中已經設置了相同的頭,則優先使用web請求方法中的頭,例如web請求方法中的EncType參數,對應請求投中的Content-Type。由於下面的方法已經設置了EncType參數,所以這裏的設置並沒有什麼X用 */
- /* 表單直接使用方法自帶參數,鍵值對和json建議使用該方法 */
- web_add_header("Content-Type",
- "application/x-www-form-urlencoded; charset=utf-8");
- /*針對一些接口開發規則,token需要在header內添加*/
- web_add_auto_header("token", "79faf82271944fe38c4f1d99be71bc9c");
- /* 主要針對form表單和鍵值對兩種格式的web請求 */
- web_submit_data("checkPerson",
- "Action=http://130.1.11.105:9080/ibis/faceService/checkPerson",
- "Method=POST",
- /* 該方法支持常見的兩種請求數據格式 */
- /* (1)"EncType=multipart/form-data"。form表單提交數據 */
- /* (1)"EncType=application/x-www-form-urlencoded"。默認使用鍵值對提交數據 */
- //"EncType=",
- "TargetFrame=",
- "Referer=",
- ITEMDATA,
- "Name=Name1", "Value=Value1", ENDITEM,
- "Name=Name2", "Value=Value2", ENDITEM,
- LAST);
- /* 打印相應結果 */
- /* lr_eval_string("{result}") 使用loadrunner引用外部函數,只有這樣才能取出上面web_reg_save_param方法的返回值 */
- lr_log_message(lr_eval_string("{result}"));
- lr_end_transaction("checkPerson", LR_AUTO);
- return 0;
- }
2. multipart/form-data 表單
- Action()
- {
- lr_start_transaction("checkPerson");
- /* 註冊獲取返回參數,該方法可以配合打印返回數據,檢測數據內容 */
- web_reg_save_param("Para",
- "LB=",
- "RB=",
- LAST);
- /* 註冊斷言: Text=斷言內容 */
- /* 該方法會判斷後面的web請求方法的返回值 */
- web_reg_find("Text=成功",
- LAST);
- /* 漢字進行UTF-8編碼 */
- lr_convert_string_encoding("需要進行UTF-8加密的中文字符串",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result");
- /* 向後面的web請求函數增加請求頭 */
- /* 如果web請求方法中已經設置了相同的頭,則優先使用web請求方法中的頭,例如web請求方法中的EncType參數,對應請求投中的Content-Type。由於下面的方法已經設置了EncType參數,所以這裏的設置並沒有什麼X用 */
- /* 表單直接使用方法自帶參數,鍵值對和json建議使用該方法 */
- //web_add_header("Content-Type",
- // "multipart/form-data; boundary = --------BORN3QKNRTS4; charset=UTF-8");
- /*針對一些接口開發規則,token需要在header內添加*/
web_add_auto_header("token", "79faf82271944fe38c4f1d99be71bc9c"); - /* 主要針對form表單和鍵值對兩種格式的web請求 */
- web_submit_data("checkPerson",
- "Action=http://130.1.11.105:9080/ibis/faceService/checkPerson",
- "Method=POST",
- /* 該方法支持常見的兩種請求數據格式 */
- /* (1)"EncType=multipart/form-data"。form表單提交數據 */
- /* (1)"EncType="。默認使用鍵值對提交數據 */
- "EncType=multipart/form-data",
- "TargetFrame=",
- "Referer=",
- ITEMDATA,
- "Name=Name1", "Value=Value1", ENDITEM,
- "Name=Name2", "Value=Value2", ENDITEM,
- LAST);
- /* 打印相應結果 */
- /* lr_eval_string("{result}") 使用loadrunner引用外部函數,只有這樣才能取出上面web_reg_save_param方法的返回值 */
- lr_log_message(lr_eval_string("{result}"));
- lr_end_transaction("checkPerson", LR_AUTO);
- return 0;
- }
3. application/json Json串
- Action()
- {
- lr_start_transaction("checkPerson");
- /* 註冊獲取返回參數,該方法可以配合打印返回數據,檢測數據內容 */
- web_reg_save_param("Para",
- "LB=",
- "RB=",
- LAST);
- /* 註冊斷言: Text=斷言內容 */
- /* 該方法會判斷後面的web請求方法的返回值 */
- // web_reg_find("Text=成功",
- // LAST);
- /* 漢字進行UTF-8編碼 */
- lr_convert_string_encoding("需要進行UTF-8加密的中文字符串",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result");
- /* 向後面的web請求函數增加請求頭 */
- /* 如果web請求方法中已經設置了相同的頭,則優先使用web請求方法中的頭,例如web請求方法中的EncType參數,對應請求投中的Content-Type。由於下面的方法已經設置了EncType參數,所以這裏的設置並沒有什麼X用 */
- /* 表單直接使用方法自帶參數,鍵值對和json建議使用該方法 */
- web_add_header("Content-Type",
- "application/json; charset=UTF-8");
- /*針對一些接口開發規則,token需要在header內添加*/
web_add_auto_header("token", "79faf82271944fe38c4f1d99be71bc9c"); - /* 主要針對form表單和鍵值對兩種格式的web請求 */
- web_custom_request("web_custom_request",
- "URL=http://www.baidu.com",
- "Method=POST",
- "TargetFrame=",
- "Resource=0",
- "Referer=",
- "Mode=HTTP",
- /* json和鍵值對數據格式,建議使用web_add_header方法添加Content-Type頭 */
- //"EncType=application/json",
- "Body={\"Name1\":\"Value1\",\"Name2\":\"Value2\"}",
- LAST);
- /* 打印相應結果 */
- /* lr_eval_string("{result}") 使用loadrunner引用外部函數,只有這樣才能取出上面web_reg_save_param方法的返回值 */
- lr_log_message(lr_eval_string("{result}"));
- lr_end_transaction("checkPerson", LR_AUTO);
- return 0;
- }
3. swagger接口參數轉爲loadrunner請求報文示例: