有时候参数文件中的数据不一定都能使用,这时候可以写一个函数将脚本调试过程中正确和错误数据分别放入到本地指定的文件中,正式运行的时候就只放入正确的可用的数据。或者需要将一些LOG信息保存到本地文件中。
一般会把筛选函数放在.h文件中,放于C:\Program Files\HP\LoadRunner\include下以便所有脚本都能调用
Action函数
#define bSelectData 1 //定义是否进行数据分拣操作(好坏数据分开文件保存):0-不进行;1-进行(进行数据分拣时注意修改写入内容,即分拣哪些参数)
#include "LRPublic_HXB.h" //引用定制开发的LR公用函数库
char *TransName ="ESB(P4)_帐户余额查询_610100_01_登录"; //事务名称
char ToWriteLine[1024]; //数据分拣时,即将写入数据文件的一行文本
Action()
{
if(判定事务成功){
lr_end_transaction("事务名称",LR_PASS);
if(bSelectData){
//将参数文件中的param1和param2的数据输出到文件中
sprintf(toWriteLine,"%s,%s",lr_eval_string("{param1}"),lr_eval_string("{param2}"));
SelectData(LR_PASS,transName,"c://",toWriteLine);
}
}else{
lr_end_transaction("事务名称",LR_FAIL);
}
return 0;
}
将以下函数添加到公共函数库LRPublic_HXB.h中
SelectData(int status,char *transName,char *filepath,char writeLine[])
{
long filedes_right; //保存正确账号文件句柄
long filedes_wrong; //保存错误账号文件句柄
char filer[256]="\0";
char *file_right="_right.txt";
char filew[256]="\0";
char *file_wrong="_wrong.txt";
//获得正确数据的完整文件名
strcat(filer,filepath);
strcat(filer,transName);
strcat(filer,file_right);
//获得异常数据的完整文件名
strcat(filew,filepath);
strcat(filew,transName);
strcat(filew,file_wrong);
if(status==0){
if((filedes_right = fopen(filer,"a+")) == NULL){
lr_error_message("文件打开失败!");
return 0;
}
fprintf(filedes_right,"%s\n",writeLine); //写入数据到文件中
fclose(filedes_right); //关闭文件句柄
}else{
if((filedes_wrong = fopen(filew,"a+"))==NULL){
lr_error_message("文件打开失败!");
return 0;
}
fprintf(filedes_wrong,"%s\n",writeLine); //写入数据到文件中
fclose(filedes_wrong); //关闭文件句柄
}
}