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

时间: 2024-08-03 23:46:13

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

水印、图片验证码

(貌似这个验证码不能获取,假设设置一个隐藏的label来记录又失去了他的意义) 一.水印 1.画布 System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); 2.创建绘制对象,告诉它往哪张图片上绘制 Graphics g = Graphics.FromImage(img); 3.绘制的内容 string s = "www.itnba.com"; 4.绘制的字体 Font f

水印,图片验证码

加水印: 1.画布 2.笔.颜色.从那开始画.画的内容 获取新的路径 保存新的图片 设置新图片为背景 图片验证码: 例如画一个abcd 100*5o大小.黑体30像素.红色的 为了防止被抓去,跳转到另一个页面执行,需要把照片用流输出回去 完整验证码 验证:

图片验证码

1.首先创建一个web窗体,只使用后台部分,生成验证码,并输出图片流跟图片验证码的字符,在使用验证码的窗体中图片控件直接指向这个窗体 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; public partial class Y

java web中图片验证码功能实现

用户在注册网站信息的时候基本上都要数据验证码验证.那么图片验证码功能该如何实现呢? 大概步骤是: 1.在内存中创建缓存图片 2.设置背景色 3.画边框 4.写字母 5.绘制干扰信息 6.图片输出 废话不多说,直接上代码 package com.lsgjzhuwei.servlet.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffer

基于spring mvc的图片验证码实现

基于spring mvc的图片验证码实现 标签: springmvcspring mvc验证码验证码验证 2016-01-28 10:49 8015人阅读 评论(4) 收藏 举报  分类: 表单处理 版权声明:本文为博主原创文章,未经博主允许不得转载. 本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) public void getAuthCode(HttpServ

【Nodejs项目手记】Nodejs中使用图片验证码,captchapng模块可以解决Nodejs图片验证码

Nodejs项目,在做图片验证码的时候遇到了难题.Nodejs没有图片库,以后会有,但是现在没有. 网络上搜索一圈,有几个解决方案: 1.采用第三方验证码程序,有的时候,项目可能不允许: 2.使用Java或者PHP生成图片,Nodejs调用,中间采用Redies共享: 这两种方式都不太理想,好在终于找到了可以支持Nodejs图片验证码的一个库,虽然只支持数字,但是也还不错.原理是使用Base64的图片编码方式. 这个库的Gighub地址是:https://github.com/GeorgeCha

【问题】做图片验证码时乱码了,在header前加上ob_clean()就能神奇的显示?!

源代码如下: 1 <?php 2 //图片验证码 3 // 该方法必须处于脚本最顶部 4 session_start(); 5 // 验证码图片和对应的验证值的对应关系 6 $table = array( 7 'pic0' => '博美', 8 'pic1' => '仓鼠', 9 'pic2' => '萨摩', 10 'pic3' => '泰迪', 11 ); 12 13 $index = rand(0,3); 14 15 $value = $table['pic'.$ind

LoadRunner 录制IE 8卡死

LoadRunner 录制IE 8卡死 LoadRunner11录制脚本,对IE的版本是有所限制的,它只是支持IE 8 以下版本,其中包括IE 8,高出IE 8版本Loadrunner是不支持的. 我遇到LoadRunner录制脚本时IE8卡死,解决的方案: 首先查看一下在不录制脚本的情况下,手写一些代码,例如:输出一些字符: lr_out_message("aaaa") 看能否回放时在Replay log中有aaaa的出现,如果有的话,说明安装没有问题,这时就按着下面的步骤去检查.如

WebSite---前台系统图片验证码心得

背景: 因为移动端APP和Msite手机注册发送短信验证码没有添加图片验证码功能.公司的短信接口被恶意刷取.所以我们就觉得在移动端添加一个图片验证码功能.分享一下大体实现方式思路.PS demo是自己写的.跟公司代码还是有很大差距的.    一. 图片验证码第一版       1. 建立图片验证码 ValidationCodeHelper 1.1 填写方法生成对应的.验证码: 默认是4位数字 1 private static char[] _constant = { 2 '0','1','2',