• LoadRunner断言:正确结果有多种情况


    用过lr的都知道,我们可以用web_reg_find这个注册函数判断某个请求的返回中是否有我们要找的内容,这就是检查点。

    但是,如果正常的情况有多种,该如何断言呢?

    我们可以设置多个检查点,把每个检查点获取到的结果数量相加,如果大于0,就表示请求成功,然后通过if条件,人工判断事务是否成功。

    示例代码:

    Action()
    {
    	int res = 0;
    	//int int_res = 0;
    	//char * string_res = (char*)calloc(100,sizeof(char));  // 请求存储空间
    
    	//设置检查点
    	web_reg_find("Text="code":"00"","SaveCount=c00",LAST);
    	web_reg_find("Text="code":"8016"","SaveCount=c8016",LAST);
    	web_reg_find("Text="code":"8017"","SaveCount=c8017",LAST);
    	//web_reg_find("Text="code":"8001"",LAST);
    
    	//获取response响应信息
    	//web_reg_save_param("response","LB=","RB=",LAST); 
    
    	lr_start_transaction("payPause");
        web_custom_request("activityHandler",
                           "URL=http://127.0.0.1:8081/payPause",
                           "Method=POST",
                           "Resource=0",
                           "RecContentType=application/json",
                           "Referer=",
                           "Mode=HTTP",
                           "EncType=application/json",
    						"Body={"tokenId":"{tokenId}","cardNo":"62010101{userAccount}"}",
                           LAST);
    
    	res = atoi(lr_eval_string("{c00}"))+atoi(lr_eval_string("{c8016}"))+atoi(lr_eval_string("{c8017}"));
    
    	//下面四行是调试信息,int和string需要互转
    	//sprintf(string_res,"%d",res); //int转string
    	//lr_output_message("string_res = %s",string_res);
    	//int_res = atoi(string_res); //string转int,其实这里不需要转了,因为res已经是int,这里只是再次体现string如何转int
    	//lr_output_message("int_res = %d",int_res);
    
    	if (res > 0){ 
            //lr_output_message("事务成功"); 
    		lr_end_transaction("payPause",LR_PASS);
    		} 
    
           else{ 
              //lr_error_message("事务失败"); 
              lr_end_transaction("payPause",LR_FAIL);
    		} 
    		
    	//lr_convert_string_encoding(lr_eval_string("{response}"),LR_ENC_UTF8,"GBK","result");
    	//输出response响应信息
    	//lr_output_message( "返回response响应信息:%s",lr_eval_string("{result}"));
    
        //lr_end_transaction("payPause", LR_AUTO);
    
    	return 0;
    }
    
  • 相关阅读:
    QT信号槽传递自定义结构体
    Qt5MVC模式(一)
    深层次理解MVC
    代码重构与单元测试——测试项目(二)
    代码重构与单元测试(一)
    在Visual Studio 中使用git——同步到远程服务器-下(十二)
    在Visual Studio 中使用git——同步到远程服务器-上(十一)
    在Visual Studio 中使用git——标记(Tag)管理(十)
    在Visual Studio 中使用git——分支管理-下(九)
    在Visual Studio 中使用git——分支管理-上(八)
  • 原文地址:https://www.cnblogs.com/uncleyong/p/7753196.html
Copyright © 2020-2023  润新知