今天看到一个关于使用AUTOIT调用OCR的帖子,于是就又照猫画虎的转成LR专用了。原帖地址:
原理很简单,用一个请求去刷新认证码返回页面,然后通过关联将返回的图片保存为硬盘的一个文件,然后用ocr去识别这个文件内容,保存结果到txt,最后用LR读这个文本就可以得到认证码。
当然很多时候识别不出来所以你要判断一下得出的结果是不是4位字符或数字,如果不是继续刷新,从请求角度来说应该效率很理想了。
这个写法可能来不及补在《性能测试进阶指南 Loadrunner11实践》书里面了,大家自己懂的。
注:参数Num是一个随机数,目的是为了告诉js现在这个变了请刷新,所以是一个类似于时间戳的东西!
本帖隐藏的内容需要回复才可以浏览
-
Action()
-
{
-
int flen; //定义一个整型变量保存获得文件的大小
-
long filedes; //保存文件句柄
-
char file[256]="c:\\test1.jpg"; //保存文件路径及文件名
-
char result[4];
-
-
web_set_max_html_param_len("2000000");//设置页面接收最大的字节数,该设置应大于下载文件的大小
-
-
web_reg_save_param("pic",
-
"LB=",
-
"RB=",
-
"Ord=1",
-
"Search=Body",
-
LAST);
-
-
web_url("randpiccloud","URL={rnum}",LAST);
-
-
-
flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE); //获得文件大小
-
if(flen > 0)
-
{
-
if((filedes = fopen(file, "wb")) == NULL)
-
{
-
lr_output_message("oh cloud your Open File Failed!");
-
return -1;
-
}
-
fwrite( lr_eval_string("{pic}"),flen,1,filedes );
-
fclose( filedes );
-
}
-
-
system("c:\test.bat");
-
-
if((filedes = fopen("c:\\test.txt", "rt")) == NULL)
-
{
-
lr_output_message("oh,cloud your Open File Failed!");
-
return -1;
-
}
-
fread( result,4,1,filedes);
-
fclose( filedes );
-
-
lr_output_message(result);
-
-
return 0;
-
}
转载自:l
阅读(1325) | 评论(0) | 转发(0) |