zoukankan      html  css  js  c++  java
  • LoadRunner录制图片验证码

    LoadRunner录制图片验证码
    LoadRunner自身是无法捕获到图片验证码的,但是我们可以帮助LoadRunner来实现验证码的捕获。
    1.图片验证码
    图片验证码的产生来自服务器端,由服务器生成随机数,然后写入到图片中。虽然LR可以录制下图片,但是无法从图片中获取数据,因此表面上看LR是无法跳过这关了,那么我们从服务器下手,通常产生的随机数是保存在session中,所以我们可以想办法获取到这个session。
     
     a.针对应用,采用不同的语言,本次讲的是java应用,首先写个*.jsp脚本,用来获取应用当前session的名值对。
     b.将脚本调试通过后,放入应用的root目录下。
     c.访问该脚本,验证能获取session名值对。
    2.捕获验证码
    既然可以从服务器获得session的名值对,那么我们就可以用LR来捕获这些值。
     
     a.添加注册函数web_reg_save_param,设置目标边界。
     b.通过web_url访问*.jsp文件。
     c.处理名值对,使用atoi将字符串型的验证码转换成整型。
    3.筛选捕获的信息
    a.在捕获的session信息中,可能存在多个名值对,所以建议用循环处理,筛选出验证码的session。
     b.建议在获得验证码session后,重新整理脚本,修改web_reg_save_param的目标边界值,然后直接调用web_url访问*.jsp,这样可以避免循环带来的性能问题,提高效率。
    4.参数化
    将验证码进行参数替换,脚本回放即可。
    5.实例
    Action()
     {
     web_url("reg.jsp", 
        "URL=http://localhost:8090/verf/reg.jsp", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=", 
        "Snapshot=t2.inf", 
        "Mode=HTTP", 
        LAST);
    web_url("CheckCode.jsp", 
        "URL=http://localhost:8090/verf/CheckCode.jsp", 
        "Resource=1", 
        "RecContentType=image/jpeg", 
        "Referer=http://localhost:8090/verf/reg.jsp", 
        "Snapshot=t3.inf", 
        LAST);
    web_reg_save_param("vcode","LB=S:","RB=:E", "ORD=ALL", LAST);
    SessionInfo("vcode", "http://localhost:8090/verf/verify.jsp", "http://localhost:8090/verf/reg.jsp");
    lr_start_transaction("very");
    web_submit_data("actreg.jsp", 
        "Action=http://localhost:8090/verf/actreg.jsp", 
        "Method=POST", 
        "RecContentType=text/html", 
        "Referer=http://localhost:8090/verf/reg.jsp", 
        "Snapshot=t4.inf", 
        "Mode=HTTP", 
        ITEMDATA, 
        "Name=CheckCode", "Value=5715", ENDITEM, 
        "Name=btnG", "Value=登录", ENDITEM, 
        LAST);
    lr_end_transaction("very",LR_AUTO);
    return 0;
     }
     
     小结
    a.此方法有一定的局限性,主要表现在需要写一个服务端的脚本,并将脚本放入应用中,其次对于不同语言编写的应用,需要编写不同的脚本,如java、c#,最后此方法只适用于将验证码保存到session中的应用。
     b.可以将上面关于LR的方法写入函数中,方便以后的测试,提供 session.h 和 verify.jsp 脚本供参考

    深圳湖北籍软件测试群 275212937

  • 相关阅读:
    javaScript真值和假值以及相等操作符
    javaScript操作符
    javascript变量作用域
    javaScript变量
    Linux命令学习之路——档案拷贝:cp
    Linux命令学习之路——变更文档拥有者:chown
    Linux命令学习之路——文档权限管理:chmod
    Linux命令学习之路——变更工作目录:cd
    关于Scrum团队的理解
    关于MATHAPP的测试
  • 原文地址:https://www.cnblogs.com/qmfsun/p/4949149.html
Copyright © 2011-2022 走看看