云层 发表于 2012-3-1 16:40:14

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

本帖最后由 云层 于 2012-3-1 16:43 编辑

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

Action()
{
    int flen;      //定义一个整型变量保存获得文件的大小
    long filedes;    //保存文件句柄
    char file="c:\\test1.jpg";//保存文件路径及文件名
         char result;

    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;
}

bluetearxie 发表于 2012-3-1 17:09:33

做个记号慢慢看~~~~~~~~谢谢云老大

liyan20090622 发表于 2012-3-1 17:12:23

好的 学习了

lyc2010 发表于 2012-3-1 17:20:05

收藏了,支持一下!

tangjwtj 发表于 2012-3-1 17:24:26

先标记一下吧, 暂时没有这方面 的需要。

yuehun168 发表于 2012-3-1 17:39:27

回帖,看一下隐藏内容……学习了!

bounty 发表于 2012-3-1 17:55:23

做个标记

lp7wshishui 发表于 2012-3-1 19:11:51

:)标记

fiskeryang 发表于 2012-3-1 22:56:53

标记

黑羽祭 发表于 2012-3-2 09:04:32

支持~~~~

963999727 发表于 2012-3-2 09:19:29

{:4_88:}:lol

wsbuaa 发表于 2012-3-2 10:23:35

简单的字符和数字和验证码现在已经很少见了
我们这里用的都是“X+X=?”这样的算术形式

liucode 发表于 2012-3-2 10:24:49

谢谢分享!

mymagic 发表于 2012-3-2 10:49:22

学习学习

云层 发表于 2012-3-2 12:08:03

算数是文本,其实更好做!

wang001 发表于 2012-3-2 15:30:18

:shutup:

wbcn 发表于 2012-3-2 20:14:13

学习!

wbcn 发表于 2012-3-2 20:14:19

学习!

iiargeth 发表于 2012-3-3 23:26:18

老师。。。驱家的那个验证码真能ocr出来?

edisonzhang 发表于 2012-3-4 13:08:01

学习下
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 使用OCR来帮助LR实现认证码识别 By 云层