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

LoadRunner录制图片验证码的更多相关文章

  1. JMeter开发插件——图片验证码识别

    我们在性能测试中总会时不时地遭遇到来自于应用系统的各种阻碍,图片验证码就是一类最常见的束缚,登录或交易时需要按照图片中的内容输入正确的验证信息后,数据才可以提交成功,这使得许多性能测试工具只能望而却步 ...

  2. 字符型图片验证码识别完整过程及Python实现

    字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...

  3. android图片验证码--自绘控件

    自绘控件的内容都是自己绘制出来的 大致流程如下: 1.定义一个类继承view 使用TypedArray初始化属性集合 在view的构造方法中 有一个AttributeSet的参数 很明显是用来保存控件 ...

  4. webform(十)——图片水印和图片验证码

    两者都需要引入命名空间:using System.Drawing; 一.图片水印 前台Photoshuiyin.aspx代码: <div> <asp:FileUpload ID=&q ...

  5. Android-简单的图片验证码

    Android-图片验证码生成1.为啥要验证码?图片验证码在网络中使用的是比较普遍的.一般都是用来防止恶意破解密码.刷票.论坛灌水.刷页等.2.怎样的验证码比较好?验证码的获取方式无非就两种,一种是后 ...

  6. LoadRunner录制Web协议的脚本 (by网络)

    LoadRunner录制Web协议的脚本  http://itindex.net/detail/50530-loadrunner-web-脚本

  7. 在mvc中实现图片验证码的刷新

    首先,在项目模型(Model)层中建立一个生成图片验证码的类ValidationCodeHelper,代码如下: public class ValidationCodeHelper { //用户存取验 ...

  8. Webform 文件上传、 C#加图片水印 、 图片验证码

    文件上传:要使用控件 - FileUpload 1.如何判断是否选中文件? FileUpload.FileName - 选中文件的文件名,如果长度不大于0,那么说明没选中任何文件 js - f.val ...

  9. php 图片验证码生成 前后台验证

    自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一下,希望大家在用到相关问题的时候可以有一定的参考性. 首先,php验证码生成. 代码如下: 1.生成图像代 ...

随机推荐

  1. 初次使用 VUX

    1. 因为以前没用过vux ,所以还是比较不熟练: 2.项目部署是根据git上的源码改的: 开始:将git上的项目下载或者clone到本地: 001:安装nodejs--> 002:npm in ...

  2. Android Volley入门到精通:初识Volley的基本用法

    1. Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据.Android系统中主要提供了两种方式来进行H ...

  3. 【leetcode】Single Number (Medium) ☆

    题目: Given an array of integers, every element appears twice except for one. Find that single one. No ...

  4. 解决Odoo出现的Unable to send email, please configure the sender's email address or alias.

    这是由于当前登录用户的邮件地址信息缺失造成的,需要设置其邮件地址. 方法:使用创建该用户的管理员帐号登录系统,开启技术特性,在需要设置邮箱地址的用户界面点击相关的业务伙伴标签链接,如图所示:

  5. Could not find Developer Disk Image

    测试机系统版本 iOS9.3,而Xcode7.2不支持 iOS9.3的真机测试,由于升级 Xcode 版本太慢,又急着看效果,怎么办呢?没事儿,只要找得到原因的问题就不是问题,现附上解决办法: 1)c ...

  6. Swing开发之JComboBox篇

    http://blog.csdn.net/sjf0115/article/details/6991579

  7. JS打造的跟随鼠标移动的酷炫拓扑图案

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. PHP之MVC学习

    代码架构进货过程 one,混编 嵌入式脚本语言PHP html与php混编的编码方式 two,显示和逻辑相分离 最后,需要将显示和逻辑的结果放在一起! 需要在 php页面,将html代码 载入才可以! ...

  9. Python中format的用法

    自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱.语法 它通过{}和: ...

  10. JQ AJAX

    用AJAX方法不刷新网页使用下拉列表连接数据库 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...