LoadRunner通过验证码并实现成功登录的方法
方法 实现 通过 登录 成功 验证码 loadrunner
2023-09-11 14:20:35 时间
#define MAX_NAME_LEN 4 //定义验证码字符串的长度,这里是4位
int flen; //定义一个整型变量保存获得文件的大小
long filedes;
long filedess; //保存文件句柄
char file[256]="c:\\test1.jpg"; //保存文件路径及文件名
char result[4];//定义用于从文件中读取验证码的数组
web_set_max_html_param_len("2000000");
//设置页面接收最大的字节数,该设置应大于下载文件的大小
//下载含有验证码的网页元素,并将其保存到参数中
web_reg_save_param_ex(
"ParamName=pic",
"LB=",
"RB=",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/action/ValidateCodeServlet*",
LAST);
//关联登录时与服务器产生的会话ID
web_reg_save_param_ex(
"ParamName=CorrelationParameter_1",
"LB=Set-Cookie: JSESSIONID=",
"RB=; Path",
SEARCH_FILTERS,
"Scope=All",
"RequestUrl=*/192.168.12.1:8080/*",
LAST);
//访问测试网站
web_url("192.168.12.1:8080",
"URL=http://192.168.12.1:8080/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
EXTRARES,
"Url=/images/login_screenbg.jpg", ENDITEM,
"Url=/images/login_midbg.jpg",ENDITEM,
"Url=/images/login_contentbg.jpg", ENDITEM,
"Url=/images/login_btn.png", ENDITEM,
"Url=/images/login_input1.png",ENDITEM,
"Url=/images/login_input2.png",ENDITEM,
"Url=/images/reset_btn.png",ENDITEM,
LAST);
flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
#转换下载的JPG文件为TIF convert.exe -compress none -depth 8 -alpha offtest1.jpg test1.tif #调用tesseract转换图片中的文件并保存到test1.txt文件中 tesseract.exe test1.tif test1 #执行完成后,自动退出命令行 if((filedess = fopen("c:\\test1.txt","rt")) == NULL) lr_output_message("oh,cloud your Open File Failed!"); return -1; fread( result,4,1,filedess );//从文件中读取验证码 fclose( filedess ); lr_output_message("result: %s", result); //打印出读取后的数据 lr_save_var(result,MAX_NAME_LEN,0,"VC" ); //保存指定位数的数据到变量中 web_submit_data("UserAction", "Action=http://192.168.12.1:8080/action/UserAction", "Method=POST", "RecContentType=text/html", "Referer=http://192.168.12.1:8080/", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=method","Value=login", ENDITEM, "Name=goPage","Value=/index.html", ENDITEM, "Name=currentPage","Value=/", ENDITEM, "Name=username","Value=admin", ENDITEM, "Name=password","Value=123456", ENDITEM, "Name=ValidateCode","Value={VC}", ENDITEM, //输入获取的验证码 "Name=loginSubmit", "Value=登录", ENDITEM, EXTRARES, LAST); 最新内容请见作者的GitHub页:http://qaseven.github.io/
手把手教你验证码检验的登录 在网站实际应用过程中,为了防止网站登录接口被机器人轻易地使用,产生一些没有意义的用户数据,所以,采用验证码进行一定程度上的拦截,当然,我们采用的还是一个数字与字母结合的图片验证码形式,后续会讲到更加复杂的数字计算类型的图片验证码,请持续关注我的博客。
你会测试 登录吗? 大家好,我是阿萨。今天我们来测试一个非常常见的模块:登录模块。你肯定会说,这有啥测试的,谁不会测试呀。不就是等价类和边界值设计测试用例,然后验证吗?
学会这个工具的使用,让你快速生成验证码 验证码是我们做人机验证最常用的方式,常用于敏感操作的验证,比如:登录、注册、修改等。 验证码的原理:不同的客户端拥有不同的 session 对象,在看到验证码图片的时刻,服务器后端代码生成图片并将随机字符存储到 session 中。
#转换下载的JPG文件为TIF convert.exe -compress none -depth 8 -alpha offtest1.jpg test1.tif #调用tesseract转换图片中的文件并保存到test1.txt文件中 tesseract.exe test1.tif test1 #执行完成后,自动退出命令行 if((filedess = fopen("c:\\test1.txt","rt")) == NULL) lr_output_message("oh,cloud your Open File Failed!"); return -1; fread( result,4,1,filedess );//从文件中读取验证码 fclose( filedess ); lr_output_message("result: %s", result); //打印出读取后的数据 lr_save_var(result,MAX_NAME_LEN,0,"VC" ); //保存指定位数的数据到变量中 web_submit_data("UserAction", "Action=http://192.168.12.1:8080/action/UserAction", "Method=POST", "RecContentType=text/html", "Referer=http://192.168.12.1:8080/", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=method","Value=login", ENDITEM, "Name=goPage","Value=/index.html", ENDITEM, "Name=currentPage","Value=/", ENDITEM, "Name=username","Value=admin", ENDITEM, "Name=password","Value=123456", ENDITEM, "Name=ValidateCode","Value={VC}", ENDITEM, //输入获取的验证码 "Name=loginSubmit", "Value=登录", ENDITEM, EXTRARES, LAST); 最新内容请见作者的GitHub页:http://qaseven.github.io/
手把手教你验证码检验的登录 在网站实际应用过程中,为了防止网站登录接口被机器人轻易地使用,产生一些没有意义的用户数据,所以,采用验证码进行一定程度上的拦截,当然,我们采用的还是一个数字与字母结合的图片验证码形式,后续会讲到更加复杂的数字计算类型的图片验证码,请持续关注我的博客。
你会测试 登录吗? 大家好,我是阿萨。今天我们来测试一个非常常见的模块:登录模块。你肯定会说,这有啥测试的,谁不会测试呀。不就是等价类和边界值设计测试用例,然后验证吗?
学会这个工具的使用,让你快速生成验证码 验证码是我们做人机验证最常用的方式,常用于敏感操作的验证,比如:登录、注册、修改等。 验证码的原理:不同的客户端拥有不同的 session 对象,在看到验证码图片的时刻,服务器后端代码生成图片并将随机字符存储到 session 中。
相关文章
- Gradle实现的两种简单的多渠道打包方法
- Java 实现模板方法(TemplateMethod)模式
- 【JS】怎样用原生JS实现jQuery的ready方法
- 【Vue】通过watchmethodscomputed三种方法实现列表的筛选查找(图文+完整代码)
- 【小程序】微信小程序button组件无法调整宽度的解决方法(已解决)
- Android Button响应事件两种实现方法及优劣比较
- python内置函数next()方法用法详解
- Python-OpenCV中不用函数split()的实现图像多通道分离的方法——ndraary对象切片实现
- 15-Hadoop解决数据倾斜方法
- js 手动实现bind方法,超详细思路分析!
- 水星Mercury路由器端口映射设置图文方法
- 《Python面向对象编程指南》——2.7 __del__()方法
- 基于C++实现的记分板调度方法仿真【100010674】
- Android实现计时与倒计时(限时抢购)的几种方法
- 用DBContext (EF) 实现通用增删改查的REST方法
- springmvc跳转到自定义错误页面的三种方法
- js实现页面a向页面b传参的方法
- Java之StringBuffer使用方法
- symonfy 项目根目录下没有 bin/console 文件的解决方法
- Unity 基础 之 简单实现鼠标点击(手机触屏)非 UI 处监听双击事件/长按事件的功能(内附判断点击在UI上还是非UI上的方法)
- Three 之 three.js (webgl) 中实现简单热力图的方法简单整理
- iOS开发-本地推送实现方法和数据处理方案(一)
- 解决:Vue调试工具vue-devtools安装方法——解决下载速度缓慢,安装报错问题
- C#标记 [已弃用] 的方法