LR如何解决登录验证码问题

上一篇 / 下一篇  2016-05-27 17:22:03 / 个人分类:loadrunner

文章背景:这次是受同事的刺激,需要解决题目上的验证码问题。

相信很多用Loadrunner做过性能测试的同学都会面临这样一个问题,登录时有验证码该怎么办?下面就来介绍一下有哪些方法可以“干掉”验证码。
  1. 屏蔽验证码
  2. 设置一个万能验证码
  3. 写一个破解验证码的程序
  4. 使用OCR识别验证

我们现在来说说第一个方法,如何屏蔽验证码。很简单,我们只要跟开发说一句,“帮我把验证码那段代码注释掉,可以吗”。最简单,最暴力,最直接的方法,大家学会了么,学不会怪自己。

第二个方法,设置万能验证码。什么叫万能验证码?就是让开发在代码里重新写一个验证方法,每次前端输入验证码“1234”就验证通过,懂了吗?或者再来个更黄更暴力的,前端页面不管输入什么,都验证通过!!!一点都不黄,好,先别高兴,上面两个方式排除验证码,工作量都在开发方,程序猿或许会不高兴,这时候我们怎么办?

我们来看第三个方法,比较难,也考验我们测试圆的实力。破解验证码,这个方法适用破解一些有简单规律的验证码,我们举一个例子,大家从中或许能得到一些启发。
经过源码分析,我们发现每次客户端请求过来的验证码都可以取到,格式固定,是四个数字的组合,52|52|52|51|46|47|49|55|,根本就不是四个字啊~~好吧,对应界面的验证码是:6039
我们发现规律是第2,5,7,9位的值减去46对应的即是验证码。
有了这个规律,就可以通过关联提前取得服务器的验证码,然后通过简单的计算,得到结果。详细代码如下:

#include “web_api.h”

Action()
{

// char* str = “52|52|52|51|46|47|49|55|”;
char result[64];
int num1;
int num2;
int num3;
int num4;

int temp1;
int temp2;
int temp3;
int temp4;

web_set_user(“XXXXDomain\\szXXXX”,
lr_decrypt(“46246a2633f042c67758b9ddc2b863038aa063c03d7e”),
XXXX.XXXX.com.cn:8080”);

web_reg_save_param(“check”, “LB=Image=”, “RB=\\”, LAST);

web_url(“Register”,
“URL=http://XXXX.XXXX.com.cn:8080/xx/main/Register”,
“Resource=0”,
“RecContentType=text/html”,
“Referer=”,
“Snapshot=t1.inf”,
“Mode=HTML”,
LAST);

lr_think_time( 6 );

sscanf(lr_eval_string(“{check}”), “%d|%d|%d|%d|%d|%d|%d|%d”, &temp1, &num1, &temp2, &temp3, &num2, &temp4, &num3, &num4);

num1 -= 46;
num2 -= 46;
num3 -= 46;
num4 -= 46;

sprintf(result, “%d%d%d%d”, num1, num2, num3, num4);

lr_log_message(“getvalue : %s”, result);

web_submit_form(“Register;jsessionid=6726009A7D21963602B166D91C883413”,
“Snapshot=t2.inf”,
ITEMDATA,
“Name=Register.reason”, “Value= “, ENDITEM,
“Name=set_attach”, “Value=result”, ENDITEM,
LAST);

return 0;
}
懂了吧?没懂,我们来看第四种绕过验证码的方法——ORC识别验证。我们这里只介绍方法,代码大家自行脑补好了。
网络上某位大神发现LR在录制的时候是会存储结果文件的,默认存在脚本目录的result1中,其中Iteration1存储的是页面缓存文件,仔细检查了这个目录发现验证码文件就在这个目录中文件名为*ValidateCode.UNK。于是便有了我们以下的识别验证码方法:
  1. lr 访问登录页面,在./result1/Iteration1/中生成 *ValidateCode.UNK文件即为验证码
  2. lr 调用外部命令执行tesseract.exe识别验证码,将结果保存到txt文件中
  3. lr 读取txt文件获取验证码,保存为参数
  4. 得到验证码参数后就可以愉快地登录了

TAG:

hurose的个人空间 引用 删除 hurose   /   2016-05-30 17:29:10
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2019-07-17  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 39064
  • 日志数: 24
  • 建立时间: 2016-05-27
  • 更新时间: 2016-07-29

RSS订阅

Open Toolbar