工具不摸就不会了,近来又有需要重新开启
性能测试这张大门,当然得把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"示例如下: