Jmeter—实现识别验证码登录

2023-11-07

在做自动化测试或压力测试时,验证码总是一个问题。在以往的压力测试经历中,测试一般在独立的测试环境中进行,可以放心禁用验证码或使用万能验证码,这个是最实用的。但是,这两天我尝试了一个使用第三方的图形图像识别工具来完成验证码识别并通过Jmeter完成登录的过程,识别工具的识别成功率有限,因此本篇估计仅能在理论范围内适用。

本篇内容大部分内容来自于该作者的文章:http://blog.csdn.net/xreztento/article/details/48682923

总体目的:给Jmeter写一个后置处理器,用来将上一个请求响应返回的验证码图片识别成文字,并将识别内容保存为Jmeter的一个参数,这个参数供登录post请求进行登录验证,从而完成登录的自动化过程。

 

工具

 (1)第三方图形图像识别工具:tesseract-ocr  下载地址:http://code.google.com/p/tesseract-ocr/downloads/list  基本无法下载,已上传到我的百度网盘

 安装后,可以在cmd下试一试是否安装成功:

 在cmd下输入命令:tesseract d:\123.jpg result -l eng   意思是将D盘下的123.jpg 识别后放在result.txt下

 

 (2)需要用到的jar包:

 Jmeter插件开发相关的jar包: ApacheJmeter_core.jar jorphon.jar logkit-2.0.jar  这些在Jmeter的lib中都有 直接导入工程项目即可

 图形处理相关的jar包:jai-imageio-1.1.jar  swingx-1.6.1.jar  从网上下的,已上传到百度云盘 jar 文件夹下

插件开发

用java IDE新建一个工程项目,实现两个部分,一个是识别图片,一个是Jmeter插件的UI部分。工程项目完成目录为:

ImageIOHelper.java

OCR.java

TestOCR.java

VodeExtractor.java

VcodeExtractorGUI.java

 

插件生成

插件开发完成后,在Eclipse中 export-Runnable jar file ,将必要的依赖库加进去,最后会生成一个 .jar 文件

注意:图形相关的jar包  直接使用时会报错(Jmeter会报一个错:java.lang.IllegalArgumentException: vendorName == null) 最终在网上找到了解决方案

生成jar包后,用解压工具打开,将 /META-INF 目录下的 MANIFEST.MF 文件用编辑器(我用的是sublime)打开,拷贝进去下面一段代码,保存压缩包:

复制代码

Specification-Title: Java Advanced Imaging Image I/O Tools
Specification-Version: 1.1
Specification-Vendor: Sun Microsystems, Inc.
Implementation-Title: com.sun.media.imageio
Implementation-Version: 1.1
Implementation-Vendor: Sun Microsystems, Inc.

复制代码

 

插件插入Jmeter

将 .jar 文件放入Jmeter 安装路径下 lib/ext/ 目录下,重启Jmeter

可以看到,我们新开发的后置处理器 VcodeExtractor 

再看下大致的登录过程测试计划:

 

登录的post请求参数中,可以使用Vcode,Vcode是我们开发的后置处理器 VcodeExtrator 返回的从图片验证码中识别出来的字符串

 

插件效果验证

把测试计划跑一次  根据察看结果树  看下效果

 

登录请求成功啦,但是图片识别也不是百分百成功,部分失败情况下,登录请求肯定会失败。Tesseract-OCR也有训练识别的功能,但是不再继续研究了。

 

关于Tesseract-OCR的延展性学习可参考:

(1)http://www.cnblogs.com/alex-blog/archive/2012/10/08/2714984.html

(2)http://blog.csdn.net/ycb1689/article/details/8520954

(3)http://www.52itstyle.com/thread-4803-1-1.html

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

Jmeter—实现识别验证码登录 的相关文章

  • UE4_c++ 设置Actor BeginPlay的顺序

    在项目开发中 涉及到数据初始化 一个类可能需要依赖另一个类的初始化 因此在某些时候 需要把一个类的初始化的优先级提高 针对不同Actor的BeginPlay在运行时的执行顺序 有兴趣的可以自行去测试 意义不大 下面提供一种方法 使一个Act
  • Python图像锐化及边缘检测(Roberts、Prewitt、Sobel、Lapllacian、Canny、LOG)

    目录 图像锐化概述 算法方法介绍 代码实现 效果展示 图像锐化概述 图像锐化 image sharpening 是补偿图像的轮廓 增强图像的边缘及灰度跳变的部分 使图像变得清晰 分为空间域处理和频域处理两类 图像锐化是为了突出图像上地物的边
  • 睿智的目标检测51——Tensorflow2搭建yolo3目标检测平台

    睿智的目标检测51 Tensorflow2搭建yolo3目标检测平台 学习前言 源码下载 YoloV3实现思路 一 整体结构解析 二 网络结构解析 1 主干网络Darknet53介绍 2 构建FPN特征金字塔进行加强特征提取 3 利用Yol
  • java try的用法_Java中try、catch的使用方法

    Java中有两种处理异常的方式 分别是用throws抛出异常 用try catch捕获异常 try catch 在Java try catch语句的语法格式 try 代码块 catch Exception1 e 抛出异常后所要进行的操作 当
  • ElasticSearch最佳入门实践(五十八)搜索相关参数梳理以及bouncing results问题解决方案

    1 preference 决定了哪些shard会被用来执行搜索操作 primary primary first local only node xyz prefer node xyz shards 2 3 bouncing results问
  • 如何在SQL查询中文列

    背景介绍 需求背景 第三方提供视图 查询该视图信息 列名采取中文形式 例如 视图名V Test 姓名 性别 工作年限 年 张三 男 4 李四 女 1 复现步骤 Navicat配置Sql Server 因为未接触过中文列名 所以简单查了下 可
  • 如何向icloud上传文件_怎么把文件放进苹果icloud

    展开全部 将文件放入苹果62616964757a686964616fe58685e5aeb931333365653932iCloud的方法很多 介绍以下三种方法供参考 方法一 手机 通过苹果手机直接存储到iCloud 1 在苹果应用商店 A
  • kali 远程登陆提示 拒绝访问(access denied)

    1 今天配置kali远程登陆 配置好后登陆发现输入密码对的 但是还是拒绝访问 access denied 2 后来发现是配置在 etc ssh sshd config 时候 配错了 把 PermitRootLogin without pas
  • ⛳ Class.forName()方法

    目录 Class forName 方法 特点 举例 Class forName 方法 Class forName 是Java中的一个反射方法 用于根据类的完整限定名 fully qualified name 加载类并返回对应的Class对象
  • 调整数组顺序使奇数位于偶数前面(java)

    一 问题描述 输入一个整数数组 实现一个函数来调整该数组中数字的顺序 使得所有的奇数位于数组的前半部分 所有的偶数位于位于数组的后半部分 并保证奇数和奇数 偶数和偶数之间的相对位置不变 二 算法分析 给定一个数组array 目标 调整数组中
  • java 枚举类使用反射

    目录 前言 一 枚举类 二 反射获取枚举 三 反射调用枚举方法 前言 跟普通类使用反射基本一样 一 枚举类 public enum OperateType add 添加 0 delete 删除 1 select 查询 2 update 修改
  • Python Pandas 对列/行 Column/Row 进行选择,增加,删除操作

    Pandas 的列 行操作 一 列操作 1 1 选择列 1 2 增加列 1 3 删除列 del 和 pop 函数 二 行操作 2 1 选择行 2 1 1 通过 label 选择行 loc 函数 2 1 2 通过序号选择行 iloc 函数 2
  • 华为云Classroom赋能--面向高校学生的Toolkit系列实践培训

    Classroom培训课程系列 ToolKit的专题培训 Classroom包含实验系列 Toolkit语音合成实验 Toolkit系列培训课程简介 什么是Toolkit Huawei Cloud Toolkit中文名是华为云开发者插件 是
  • 针对-128到127之间的数据,做了一个数据缓冲池

    package test import java util HashMap import java util HashSet import java util Map import java util Set import org apac
  • 模板类中友元函数的声明与定义

    cpp 全部在Test h这个头文件中 ifndef TEST H define TEST H template
  • 数据如何赋能?

    该问题已同步到小程序 全栈面试题 问题 大家经常动不动就提到数据赋能 那么数据是如何为业务赋能的呢 就此问题 各位大佬们展开了激烈的讨论 讨论 congrats 对于中大型企业 数据已经成为了业务展开工作的基本构成部分了 比如每天运营 产品
  • 10、MyBatis的自动生成代码、PageHelper分页插件

    文章目录 代码生成 方式一 官方jar 方式二 IDEA 插件及其应用 PageHelper 代码生成 方式一 官方jar 为了简化MyBatis的编写 官方推出了一个工具 mybatis generator Java编写的 通过这个工具可
  • log4j的介绍及使用

    一 Log4j简介 Log4j有三个主要的组件 Loggers 记录器 Appenders 输出源 和Layouts 布局 这里可简单理解为日志类别 日志要输出的地方和日志以何种形式输出 综合使用这三个组件可以轻松地记录信息的类型和级别 并
  • SingalR自托管(self-host)实例

    实例说明 Microsoft AspNet SignalR SelfHost 用于创建自托管服务器端 Microsoft AspNet SignalR JS 用于创建Web浏览器客户端 Microsoft AspNet SignalR Cl
  • 图解通信原理与案例分析-32:物流仓储、智能交通中的RFID通信技术详解

    前言 RFID射频身份识别 是一个非常成熟的通信技术 在仓储物流 交通运输等行业有广泛的应用 本文就将介绍RFID的通信原理 目录 第1章 RFID射频身份识别概述 第2章 RFID网络架构 2 1 RFID通信无线通信 2 2 RFID系

随机推荐

  • pcie总线协议入门基础知识

    1 PCIe基础知识 PCI Express是一种高速串行计算机扩展总线标准 它原来的名称为 3GIO 是由英特尔在2001年提出的 旨在替代旧的PCI PCI X和AGP总线标准 与大多数总线一样 PCIe总线也包括电气属性和协议组成两部
  • Docker 安装 Nginx

    方法一 通过 Dockerfile构建 创建Dockerfile 首先 创建目录nginx 用于存放后面的相关东西 edualiyun edualiyun mkdir p nginx www nginx logs nginx conf ww
  • 光纤收发器指示灯及常见问题详解

    一 光纤收发器6指示灯的含义 光纤收发器有6个LED指示灯 它们显示了收发器的工作状态 根据LED所示 就能判断出收发器是否工作正常和可能有什么问题 从而能帮助找出故障 它们的作用分别如下所述 PWR 灯亮表示DC5V电源工作正常 FX 1
  • VisualStudio2019配置OpenCV4.5.0

    目录 一 下载安装OpenCV4 5 0 二 配置环境变量 三 配置VS2019 四 测试代码 五 测试结果 一 下载安装OpenCV4 5 0 1 进入opencv官网 2 点击Release进入Release界面 选择Windows版本
  • unity3d的血量减少和增加的数字显示制作(NGUI)

    首先说明一下为什么要放在NGUI里面讲这节内容 因为即将要用到了一个插件HUD Text 这个插件必须是在已经安装了NGUI的前提下才能安装并使用 首先安装HUD text这个插件 这个插件里面最重要的就是HUD Text这脚本下图红色线标
  • freeswitch/conference分析

    member由conference function进入 1 查找会议 如果会议不存在 则 2 创建会议 创建会议画布 conference video parse layouts 根据conference layouts conf 配置创
  • CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection---CVPR 2020

    仅翻译了与目标识别相关的内容 论文地址 https arxiv org pdf 2003 09119 pdf 源码地址 https github com KiveeDong CentripetalNet 目录 Abstract 1 Intr
  • SM3密码杂凑算法和SM2数字签名算法的PDF签名方法

    支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法 其特征在于 包括以下步骤 1 发送端发送待签名的PDF文档 2 接收端存在签名者的数字证书 接收端获取PDF文档 对签名者的数字证书的有效性进行检查 3 用SM3密码杂凑算法对获取
  • JS Base64 内容,数字加密、解密

    加密 let message Hello World let encoded btoa message console log encoded SGVsbG8gV29ybGQh 解密 let decoded atob encoded con
  • java 判断电脑盘符是否存在

    public static void lkm FileSystemView fileSystemView FileSystemView getFileSystemView 获取FileSystemView对象 File roots File
  • 全套大数据平台个人开发环境手动搭建(CDH版本) 伪分布式

    文章目录 1 简介 2 准备 2 1 关闭防火墙 2 2 免密登陆 3 通用配置 3 1 安装包准备 3 2 统一环境变量配置 1 Hadoop配置 1 1 env文件 1 2 core site xml 1 3 hdfs site xml
  • C# 扫描识别图片中的文字(.NET Framework)

    环境配置 本文以C 及VB NET代码为例 介绍如何扫描并读取图片中的文字 本次程序环境如下 Visual Studio版本要求不低于2017 图片扫描工具 Spire OCR for NET 图片格式 png 这里的图片格式支持JPG P
  • LeetCode初级算法——数组:买卖股票的最佳时机 II

    122 买卖股票的最佳时机 II 给定一个数组 它的第 i 个元素是一支给定股票第 i 天的价格 设计一个算法来计算你所能获取的最大利润 你可以尽可能地完成更多的交易 多次买卖一支股票 注意 你不能同时参与多笔交易 你必须在再次购买前出售掉
  • ora-01536:超出表空间"XXXX"的空间限额的解决办法

    原因 当前使用的用户被数据库限制了在建表的表空间 解决方案 1 alter user 用户名quota 100M on 表空间名 为指定用户在指定表空间上增加100M限额 这个数字可以任意 2 alter user 用户名quota unl
  • 云服务器应用镜像和系统镜像选哪个好?

    很多的新手用户在咨询 云服务器应用镜像和系统镜像选哪个 一般推荐选择安装系统镜像 安装纯净的操作系统 这样的话操作系统是纯净的未安装过任何环境和程序的 方便我们操作 1 服务器的镜像和操作系统是可以直接更换的 我们在阿里云的服务器后台直接就
  • ES6---new Promise()讲解(尤其注意里面的参数resolve、reject)

    ES6 new Promise 讲解 尤其注意里面的参数resolve reject 直接打印出来看看吧 console dir Promise 这么一看就明白了 Promise是一个构造函数 自己身上有all reject resolve
  • CVE-2023-25194漏洞 Apache Kafka Connect JNDI注入漏洞

    Apache Kafka 的最新更新解决的一个漏洞是一个不安全的 Java 反序列化问题 可以利用该漏洞通过身份验证远程执行代码 Apache Kafka 是一个开源分布式事件流平台 被数千家公司用于高性能数据管道 流分析 数据集成和任务关
  • 【机器学习】9、最小二乘法和岭回归

    文章目录 一 最小二乘法 线性回归 1 1 公式 1 2 矩阵 1 3 代码实现 二 岭回归 一 最小二乘法 线性回归 1 1 公式 最小二乘法的本质 公式推导过程 1 2 矩阵 假设我们有n个样本数据 每个数据有p个特征值 然后p个特征值
  • 十大思维导图软件推荐

    1 GitMind GitMind是一款电脑上好用的免费在线思维导图软件 主要功能有大纲视图 一键自动布局 多人云协作 插入富文本 批量管理文件 格式刷 自定义主题 快速查看历史版本 插入关系线 添加概括 一键分享思维导图 多格式文本导出
  • Jmeter—实现识别验证码登录

    在做自动化测试或压力测试时 验证码总是一个问题 在以往的压力测试经历中 测试一般在独立的测试环境中进行 可以放心禁用验证码或使用万能验证码 这个是最实用的 但是 这两天我尝试了一个使用第三方的图形图像识别工具来完成验证码识别并通过Jmete