LoadRunner 實現一個簡單的接口測試

LoadRunner 實現一個簡單的接口測試

閱讀 http://www.k780.com/api/idcard.get 提供的接口文檔,使用LR開發以下腳本:?

1)Idcard需要參數化10條;?
2)添加必要的檢查點;
3)將結果以以下格式保存至項目根目錄下的userInfo.txt中

 [
     {
         "idcard": "idcard1",
         "att": "att1",
         "sex": "sex1"
     },
     {
         "idcard": "idcard2",
         "att": "att2",
         "sex": "sex2"
     }
 ]

其中idcard爲參數化的值,att、sex爲響應中對應的字段。
注意:結果應該不止2條,理論上應該與參數化的數量一致,即10條,需要將所有結果都保存至userInfo.txt中。

code:
	long file; 
	int i,count;
	char tmp[4];
	char URL[100];
    char *filename = "C:\\Program Files (x86)\\HP\\LoadRunner\\scripts\\lude\\PL0-LR\\PL0-LR-11\\demo1.txt"; //文件路徑

	lr_save_string("http://api.k780.com:88/?app=idcard.get","base_url");
	//定義參數數組"idcard"
	lr_save_string("362322199112290014","idcard_1");
 	lr_save_string("511527199105032033","idcard_2");
 	lr_save_string("352231197212010024","idcard_3");
 	lr_save_string("352231197902050031","idcard_4");
 	lr_save_string("352231197201280029","idcard_5");
	lr_save_string("450203198605050730","idcard_6");
	lr_save_string("440105196402201515","idcard_7");
	lr_save_string("441521199311198572","idcard_8");
	lr_save_string("441521200103160815","idcard_9");
	lr_save_string("372523197202250841","idcard_10");
	lr_save_string("10","idcard_count");
	//打開文件
	if((file = fopen(filename, "a+")) == NULL){
        lr_output_message("uncreate a file %s",filename);
        return -1;
        }

	count = lr_paramarr_len("idcard");
	//遍歷參數數組,進行每次身份證信息查詢
	for (i=1; i<=count;i++) {
		// 設置檢查點,判斷返回信息是否成功
		web_reg_find("Text=ALREADY_ATT",
				 "SaveCount=success",
				 "Search=All",
				 LAST);
		web_reg_save_param("response",
					   "LB={",
					   "RB=}",
					   "Search=All",
					   "Ord=All",
					   "NOTFOUND=warning",
					   LAST);
		// 關聯獲取"att"的值
		web_reg_save_param("att",
					   "LB=\"att\":\"",
					   "RB=\",",
					   "Search=All",
					   "Ord=All",
					   LAST);
		// 關聯獲取"sex"的值
		web_reg_save_param("sex",
					   "LB=\"sex\":\"",
					   "RB=\",",
					   "Search=All",
					   "Ord=All",
					   LAST);
		//構造請求URL,將idcard傳入
		sprintf(URL,"&idcard=%s&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json",lr_paramarr_idx("idcard",i));
		//參數化URL
		lr_save_string(URL,"tmp");
		//發送請求
		web_url("IDCARD_Request",
            	"URL={base_url}{tmp}",
				"TargetFrame=Main", 
				"Resource=0",
				"Mode=HTML",
            	LAST);
		//如果請求返回成功,則進行如下操作
		if(atoi(lr_eval_string("{success}"))){
			//lr_output_message("-----------------返回成功-----------");
			
			if(i == 1){
				fprintf(file,"[\n\t{\n"); // [
			}
			
			//lr_output_message("%s",lr_eval_string("{att_1}"));
			//將返回亂碼中文轉換編碼方式,解決亂碼問題
			lr_convert_string_encoding(lr_paramarr_random("att"),"utf-8",NULL,"msg1");
			//lr_output_message("%s",lr_eval_string("{msg1}"));

			//lr_output_message("%s",lr_eval_string("{sex_1}"));
			//將返回亂碼中文轉換編碼方式,解決亂碼問題
			lr_convert_string_encoding(lr_paramarr_random("sex"),"utf-8",NULL,"msg2");
			//lr_output_message("%s",lr_eval_string("{msg2}"));
			
			if(i==count){//最後一條時執行,主要是添加],且最後的“}”不帶","
				fprintf(file, "\t\t\"idcard\":\"%s\",\n\t\t\"att\":\"%s\",\n\t\t\"sex\":\"%s\"\n",lr_paramarr_idx("idcard",i),lr_eval_string("{msg1}"),lr_eval_string("{msg2}"));//構造json格式並參數化賦值
				fprintf(file,"\t}\n]\n");
			}else{//否則執行這裏
				fprintf(file, "\t\t\"idcard\":\"%s\",\n\t\t\"att\":\"%s\",\n\t\t\"sex\":\"%s\"\n",lr_paramarr_idx("idcard",i),lr_eval_string("{msg1}"),lr_eval_string("{msg2}"));
				fprintf(file,"\t},\n");
			}
		}
	}

    fclose(file);//關閉文件

運行後,生成的demo1.txt中內容如下
在這裏插入圖片描述

第二章參數化實現的方式

idcard進行文件參數化

在這裏插入圖片描述

創建唯一序列值
在這裏插入圖片描述
運行時設置迭代10次
在這裏插入圖片描述

long file; 
	int i,count;
	char tmp[4];
	char URL[100];
	char *filename = "C:\\Program Files (x86)\\HP\\LoadRunner\\scripts\\lude\\PL0-LR\\PL0-LR-11\\demo2.txt"; 

	lr_save_string("http://api.k780.com:88/?app=idcard.get","base_url");


	if((file = fopen(filename, "a+")) == NULL){
		lr_output_message("uncreate a file %s",filename);
		return -1;
	}

	lr_start_transaction("idcard");

	web_reg_find("Text=ALREADY_ATT",
			 "SaveCount=success",
			 "Search=All",
			 LAST);
	web_reg_save_param("response",
				   "LB={",
				   "RB=}",
				   "Search=All",
				   "Ord=All",
				   "NOTFOUND=warning",
				   LAST);
	web_reg_save_param("att",
				   "LB=\"att\":\"",
				   "RB=\",",
				   "Search=All",
				   "Ord=All",
				   LAST);
	web_reg_save_param("sex",
				   "LB=\"sex\":\"",
				   "RB=\",",
				   "Search=All",
				   "Ord=All",
				   LAST);

	//此處參數化
	sprintf(URL,"&idcard=%s&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json",lr_paramarr_idx("idcard",i));
	lr_save_string(URL,"tmp");
		web_url("lala",
		"URL={base_url}&idcard={idcard_list}&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json",
		"TargetFrame=Main", 
		"Resource=0",
		"Mode=HTML",
		LAST);

	if(atoi(lr_eval_string("{success}"))){
		lr_end_transaction("idcard",LR_PASS);
		lr_output_message("-----------------返回成功-----------");
		if(atoi(lr_eval_string("{item_num}")) == 1){
			fprintf(file,"[\n\t{\n");
		}
		//lr_output_message("%s",lr_eval_string("{att_1}"));
		lr_convert_string_encoding(lr_paramarr_random("att"),"utf-8",NULL,"msg1");
		//lr_output_message("%s",lr_eval_string("{msg1}"));

		//lr_output_message("%s",lr_eval_string("{sex_1}"));
		lr_convert_string_encoding(lr_paramarr_random("sex"),"utf-8",NULL,"msg2");
		//lr_output_message("%s",lr_eval_string("{msg2}"));

		if(atoi(lr_eval_string("{item_num}"))==10){
			fprintf(file, "\t\t\"idcard\":\"%s\",\n\t\t\"att\":\"%s\",\n\t\t\"sex\":\"%s\"\n",lr_paramarr_idx("idcard",i),lr_eval_string("{msg1}"),lr_eval_string("{msg2}"));
			fprintf(file,"\t}\n]\n");
		}else{
			fprintf(file, "\t\t\"idcard\":\"%s\",\n\t\t\"att\":\"%s\",\n\t\t\"sex\":\"%s\"\n",lr_paramarr_idx("idcard",i),lr_eval_string("{msg1}"),lr_eval_string("{msg2}"));
			fprintf(file,"\t},\n");
		}
	}


	fclose(file);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章