loadrunner接口自动化测试

上一篇 / 下一篇  2015-11-25 09:42:27

工具不摸就不会了,近来又有需要重新开启性能测试这张大门,当然得把loadrunner这项利器拿出来磨磨了,翻开两年前写过的一个脚本(这是一个loadrunner接口自动化测试的demo,采用数据驱动,完成接口的入参和返回的校验)觉得有点实际应用的意义,当初弄这个的缘故是为了利用loadrunner集成接口的功能测试和性能测试,后来因为个中缘故没有应用的上,有些遗憾。回到正题,上demo。
vuser_init()
{  
 //结果文件采用html展现,初始化表头
 strcpy(filename,"C:\\result.html");
 if(access(filename, 0) != 0)
 {
  file=fopen(filename,"at+");
  strcpy(filename,"<html><table  border='1'><tr><th>测试描述</th><th>预期值</th><th>返回值</th><th>结果</th></tr>");
  fputs(filename,file);
 }
 else
 {  
  file=fopen(filename,"at+");
  strcpy(filename,"<html><table  border='1'>");
  fputs(filename,file);
 }
 return 0;
}


//所需参数均在脚本目录中"参数文件.CSV"配置,可用excel打开,方便编辑;
Action()
{
 char TestResult[1024];
 lr_convert_string_encoding( lr_eval_string("{check}"),
  LR_ENC_SYSTEM_LOCALE,
  LR_ENC_UTF8,
  "str" );
 lr_save_string( lr_eval_string("{str}"),"temp");
 lr_rendezvous("并发");
   
 lr_start_transaction("接口测试");

 web_reg_find("Text={temp}","SaveCount=count",LAST);
 lr_convert_string_encoding( lr_eval_string("{url}"),
  LR_ENC_SYSTEM_LOCALE,
  LR_ENC_UTF8,
  "str" );
 lr_save_string( lr_eval_string("{str}"),
  "temp1" );
 web_reg_save_param("content",
  "LB=",
  "RB=",
        "Search=Body",
  LAST);
 web_url("获取城市接口",
  "URL={temp1}",
  "Resource=0",
  "RecContentType=text/xml",
  "Referer=",
  LAST);
 lr_think_time(3);
 lr_convert_string_encoding(lr_eval_string("{content}"),
  LR_ENC_UTF8,
  LR_ENC_SYSTEM_LOCALE,
  "string" );
 lr_save_string( lr_eval_string("{string}"),
  "filecontent" );
 if(atoi(lr_eval_string("{count}"))==0)
 {
  strcpy( TestResult,"失败");
  strcpy( filename,"<tr bgcolor=\"\#FF0000\"><td>");
 // 写入测试描述
  strcat(filename,lr_eval_string("{Desc}"));
  strcat(filename,"</td>");
  strcat(filename,"<td>");
 // 写入预期结果
  strcat(filename,lr_eval_string("{check}"));
  strcat(filename,"</td>");
  strcat(filename,"<td>");
 // 写入实际结果
  strcat(filename,lr_eval_string("{filecontent}"));
  strcat(filename,"</td>");
  strcat(filename,"<td>");
  lr_think_time(3);
 // 写入测试是否通过
  strcat(filename,TestResult);
  strcat(filename,"</td></tr>");
  fputs(filename,file);
  lr_end_transaction("接口测试", LR_FAIL);
 }
 else
 {
  strcpy( TestResult,"通过");
  strcpy( filename,"<tr><td>");
 // 写入测试描述
  strcat(filename,lr_eval_string("{Desc}"));
  strcat(filename,"</td>");
  strcat(filename,"<td>");
 // 写入预期结果
  strcat(filename,lr_eval_string("{check}"));
  strcat(filename,"</td>");
  strcat(filename,"<td>");
 // 写入实际结果
  strcat(filename,lr_eval_string("{filecontent}"));
  strcat(filename,"</td>");
  strcat(filename,"<td>");
  lr_think_time(3);
 // 写入测试是否通过
  strcat(filename,TestResult);
  strcat(filename,"</td></tr>");
 
  fputs(filename,file);
  lr_end_transaction("接口测试", LR_PASS);
 }
    return 0;
}


//结束写结果文件操作
vuser_end()
{
 strcpy(filename,"</table></html>");
 fputs(filename,file);
 fclose(file);
 return 0;
}


内容如上述,很简单的线性脚本就不多说了,其中"参数文件.CSV"示例如下:

测试描述URL预期结果
错误出现的情况http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/getSupportCityString?theRegionCode=湖南北京



正常场景


结果文件示例如图:


http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/getSupportCityString?theRegionCode=乱填的

无城市

TAG:

 

评分:0

我来说两句

Open Toolbar