使用OCR来帮助LR实现认证码识别 By 云层

本文介绍了一种利用AUTOIT和OCR技术自动识别网页认证码的方法,包括请求刷新认证码页面、保存图片、识别内容并保存结果至文本文件,最后LR读取文本以获取认证码的过程。此技术适用于自动化测试场景中处理验证码问题。
[p=30, 2, left] 今天看到一个关于使用AUTOIT调用OCR的帖子,于是就又照猫画虎的转成LR专用了。原帖地址: http://www.51testing.com/index.php?uid-194902-action-viewspace-itemid-808450 [/p][p=30, 2, left] [/p][p=30, 2, left] 原理很简单,用一个请求去刷新认证码返回页面,然后通过关联将返回的图片保存为硬盘的一个文件,然后用ocr去识别这个文件内容,保存结果到txt,最后用LR读这个文本就可以得到认证码。 [/p][p=30, 2, left] 当然很多时候识别不出来所以你要判断一下得出的结果是不是4位字符或数字,如果不是继续刷新,从请求角度来说应该效率很理想了。 [/p][p=30, 2, left]
[/p][p=30, 2, left] 这个写法可能来不及补在《性能测试进阶指南 Loadrunner11实践》书里面了,大家自己懂的。 [/p][p=30, 2, left] [/p][p=30, 2, left] 注:参数Num是一个随机数,目的是为了告诉js现在这个变了请刷新,所以是一个类似于时间戳的东西! [/p][p=30, 2, left] *** Hidden to visitors *** [/p][p=30, 2, left]
[/p][p=30, 2, left]

CODE:

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=http://comment8.mydrivers.com/radompage.aspx?0.{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;
}
[地址:http://www.51testing.com/?uid-104-action-viewspace-itemid-808584
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值