Loadrunner通过验证码并实现成功登录的方法

2023-11-04

需要安装的软件

1、安装ImageMagick安装完成后,将其安装路径添加到环境变量path

2、安装Tesseract-OCR



  #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=/p_w_picpaths/login_screenbg.jpg", ENDITEM,
       "Url=/p_w_picpaths/login_midbg.jpg",ENDITEM,
      "Url=/p_w_picpaths/login_contentbg.jpg", ENDITEM,
       "Url=/p_w_picpaths/login_btn.png", ENDITEM,
       "Url=/p_w_picpaths/login_input1.png",ENDITEM,
       "Url=/p_w_picpaths/login_input2.png",ENDITEM,
       "Url=/p_w_picpaths/reset_btn.png",ENDITEM,
       LAST);

   flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
   //
获得下载图片的文件大小

   if(flen > 0)
   {
       if((filedes = fopen(file,"wb")) == NULL)
       {
             lr_output_message("oh cloud your Open File Failed!");
             return -1;
       }
       fwrite( lr_eval_string("{pic}"),flen,1, filedes );
       fclose( filedes );
   }

   system( "c:\\test1.bat" );    //
CMD命令行中运行OCR命令

/*

C盘根目录下创建批处理文件test1.bat:

#进入到含有验证码图片的目录

c:

cd\

#转换下载的JPG文件为TIF

convert.exe -compress none -depth 8 -alpha offtest1.jpg test1.tif

#调用tesseract转换图片中的文件并保存到test1.txt文件中

tesseract.exe test1.tif test1

#执行完成后,自动退出命令行

exit

*/

   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);

转载于:https://blog.51cto.com/113754/1204627

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Loadrunner通过验证码并实现成功登录的方法 的相关文章

  • Vue中页面生成二维码以及二维码图片下载

    有的场景中需要通过接口数据将内容生成二维码实现步骤如下 一 安装 qrcodejs2 包 二 import QRCode from qrcodejs2 页面中引入 QRCode 三 二维码创建 二维码占位 div div 代码生成 var
  • python中获取当前日期

    datetime 日期时间模块 提供多种方法操作日期和时间 strftime 对日期时间格式化 获取今天的日期 昨天的日期 格式化的日期 gt gt gt import datetime gt gt gt today datetime da
  • 遇到了 “遇到以零作除数错误” 的问题

    开发的时候 写了个很简单的Sql 大概就是 总数除以数量 得出的平均值 看起来很平常是不是 简单来说就是 Total Count 嘛 最多转个2位小数用Convert就完事了对不对 但是呢 有些数据的Count值本身是就是0的 然后就会报遇
  • docker gpu 创建 训练环境_基于虚拟化的模型训练平台实践

    写在前面 近几年 人工智能快速发展 与各行各业的结合也成为业界不断探索的方向 在金融科技领域 风控逐步从传统风控转向大数据风控以及智能风控 主要通过人工智能核心技术 知识图谱 机器学习 深度学习 作为主要驱动力 为金融业的各参与主体 各业务
  • 金山卫士开源软件之旅(四) netmon下FwProxy工程的解析---接口实现及接口使用方法

    转载请标明是引用于 http blog csdn net chenyujing1234 上一篇文章 lt lt 金山卫士开源软件之旅 三 netmon下FwProxy工程的解析 COM组件的管理模式 gt gt 中讲到如何去实现CFwPro
  • 中小企业数字化转型难?为什么不试试“企业级”无代码平台

    首先 让我们思考一下 中小企业为什么要进行数字化转型 随着全球经济的数字化趋势日益明显 中小企业作为经济的重要组成部分 其数字化转型已成为推动经济高质量发展的关键 数字技术可以帮助中小企业提高生产效率 降低成本 提升产品质量和创新能力 从而
  • 基于matlab实现的水果识别系统设计

    水果识别 摘要 本项目针对多种常见水果混合的图像 利用 Matlab 软件 对水果的识别进行研究 根据水果和背景的差别选取阈值 对去噪增强对比度后的图像进行二值化处理 再对图像进行边缘检测 选定连通区域 标记后再对不同种水果的颜色 形状 大
  • 【机器学习】机器学习实验二:支持向量机(详细代码展示)

    文章目录 一 项目地址 二 实验二的详细代码 一 项目地址 https mbd pub o bread ZJWampxx 二 实验二的详细代码 手动调参
  • Mysql递归查询子级(父子级结构)&从子级ID查询所有父级(及扩展知识)

    文章目录 1 建表及插入数据 2 递归查询子级 包括or不包括自己 递归查询子级sql 可能存在的问题 处理这个存在的问题 可借鉴的扩展参考 重要 mysql根据父节点递归查询所有子节点 根据一个父节点查询所有子节点 包含自身 根据多个父节
  • React 项目怎么引入自定义组件、传递参数到组件

    1 首先需要在使用组件的页面引入自定义组件 src index js 是一个入口文件 我们也可以在这里引用 import React Suspense Component from react 引入自定义组件 import ReactDOM
  • Python番外篇:用Pygame制作一场漂亮的流星雨

    hello 大家好 我是wangzirui32 今天我们来学习如何用Pygame制作一场漂亮的流星雨 开始学习吧 文章目录 前言 1 素材图片 2 项目结构 3 编写代码 3 1 Star类 3 2 主项目demo py 4 效果展示 写在
  • 详解linux下的串口通讯开发

    串行口是计算机一种常用的接口 具有连接线少 通讯简单 得到广泛的使用 常用的串口是RS 232 C接口 又称EIA RS 232 C 它是在1970年由美国电子工业协会 EIA 联合贝尔系统 调制解调器厂家及计算机终端生产厂家共同制定的用于
  • 【UE4】纯蓝图实现数据表(DataTable)的写入存储

    前言 UE4可以方便的实现表格的读取 通常是将csv表格文件按对应表头结构体导入后 作为引擎内的DataTable类型文件再进行使用 读取DataTable的操作 可以通过GetDataTableRowNames和GetDataTableR
  • 简单介绍使用图片 base64 编码的优点和缺点。

    base64 编码是一种图片处理格式 通过特定的算法将图片编码成一长串字符串 在页面上 显示的时候 可以用该字符串来代替图片的 url 属性 使用 base64 的优点是 1 减少一个图片的 HTTP 请求 使用 base64 的缺点是 1
  • 采用定时器指令和比较指令控制多台电动机顺序起动、逆序停止

    实验要求 在一些机械的生产过程中 经常需要到要求多台电动机的起动和停止按照一定的顺序进行 例如 要求三台电动机M1 M2 M3在按下起动开关时电动机顺序启动 起动的顺序为M1 M2 M3 顺序起动时时间的间隔为60秒 启动完毕后电动机正常工
  • Python练习之选择与循环

    目录 1 编写程序 运行后用户输入4位整数作为年份 判断其是否为闰年 提示 如果年份能被400整除 则为闰年 如果年份能被4整除但不能被100整除也为闰年 2 编写程序 用户从键盘输入小于 1000 的整数 对其进行因式分解 例如 10 2
  • 你好,语义分割(二)

    在 你好 语义分割 一 中 我们介绍了语义分割的概念 数据的准备过程和模型设计 并且使用数据加载器对数据进行训练集 验证集和测试集的拆分 接下来 我们使用训练集对模型进行训练 用来学习理想的参数 2 3 训练 Train 2 3 1 学习准
  • 2019中科实数杯( Q1内存镜像取证分析、Q4加密磁盘分析)

    文章目录 题目 Q1 内存取证 Q4 加密容器 题目 Q1 内存取证 Q4 加密容器
  • pppoe路由桥混合模式_为什么宽带账号分路由模式和桥接模式?

    我看了下他人的回答都是说的 猫 是怎么回事 宽带连接相关的和这个问题根本不沾边的 都在说光猫设备与宽带账号的设置 根据我所知道的回答一下这个问题 家庭的光猫大部分由路由模式和桥接模式 无线路由器的WAN接口的连接方式由桥接模式 PPPOE拨
  • Spark原理-SparkSql框架优化策略

    有了SparkCore为什么还要有SparkSql呢 有两大原因 一是SparkCore只能用Api 这就把很多SqlBoy拒之门外 Spark就无法发扬光大了 二是使用Api时用户编写的函数作为一个个闭包被序列化后分发到Executor执

随机推荐