首页 > 其他分享 >Jmeter接口测试 —— jmeter对图片验证码的处理

Jmeter接口测试 —— jmeter对图片验证码的处理

时间:2023-11-24 20:56:12浏览次数:22  
标签:Jmeter base64 验证码 接口 如下 jmeter 图片

​jmeter对图片验证码的处理

在web端的登录接口经常会有图片验证码的输入,而且每次登录时图片验证码都是随机的;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段,然后再登录接口中使用;

通过jmeter对图片验证码的识别方法

1、通过ocrserver工具识别图片验证码;

如下图:解压后双击OcrServer.exe;然后电脑的右下角会显示该服务的IP和端口

2、在jmeter中发送获取该验证码图片的接口;如下图

3、在获取验证码图片的接口下面添加监听器》保存响应到文件;如下图:

4、再取样器中再添加JSR223 Sampler;注释一下该取样器是把图片转换成base64格式;并编写代码;如下图:

SampleResult.setIgnore();

import java.io.*;
import org.apache.commons.codec.binary.Base64;

String image=vars.get("png");

byte[] data = null;

try {
    InputStream in = new FileInputStream(image);
    data = new byte[in.available()];
    in.read(data);
    in.close();

} catch (IOException e) {
    e.printStackTrace();
}

Base64 base64=new Base64();
vars.put("base64",base64.encodeToString(data));
//return image;

5、在添加一个HTTP请求,用来调用OcrServer工具,IP地址为127.0.0.1,端口为12349,post请求,在body中引用base64;如下图:

6、在验证码识别请求下再添加一个json提取器;把识别到的图片验证码的字段提取出来;如下图:

识别图片验证码的字段为json格式;如下图

在json提取器中通过jsonpath方法提取出code的值

7、验证提取的字段是否和图片验证码上的字段一致;如下图:

8、通过第7步可以看到正确的提取出了验证码字段,然后在登录的接口调用image_code即可;

最后如果你想学习软件测试和需要软件测试资料,欢迎加入笔者的交流群:320231853,里面可以免费领取软件测试+自动化测试资料+软件测试面试宝典+简历模版+实战项目+面试刷题工具和大佬答疑解惑,我们一起交流一起学习!

搜索

复制

标签:Jmeter,base64,验证码,接口,如下,jmeter,图片
From: https://www.cnblogs.com/nhb1234/p/17854739.html

相关文章

  • Ubuntu 安装 JMeter:快速搭建高效性能测试环境
    ApacheJMeter是一个开源的负载测试工具,可以用于测试静态和动态资源,确定服务器的性能和稳定性。在本文中,我们将讨论如何下载和安装 JMeter。安装Java(已安装Java的此步骤可跳过)要下载Java,请遵循以下步骤:输入命令 `sudoaptinstallopenjdk-11-jre-headless` 进行安装。输入......
  • jmeter访问opengauss
    安装opengauss修改配置文件vi/opt/huawei/install/data/dn/pg_hba.confopenGauss=#showpassword_encryption_type;password_encryption_type--------------------------2(1row)openGauss=#altersystemsetpassword_encryption_type=1;ALTERSYSTEMSETopenGauss=......
  • 【不靠谱程序员】登录页,用户输了短信验证码却提示:用户不存在
    【preface】用户输入手机号获取验证码时,是先校验手机号是否存在,还是先发验证码?靠谱的程序员一定有答案。  用户在我们小程序端用短验(手机短信验证码)的方式登录。登录的逻辑实现,我用下面的时序图表示给你看。  结果呢,领导review后,说在页面请求后端API获取手机验证码的......
  • (零)安装 jdk8 和 jmeter5.5(Windows11 x64)
    1、安装jdk8下载jdk8:https://www.azul.com/downloads/?version=java-8-lts&os=windows&package=jdk#zulu安装jdk8:双击下载jmeter5.5:https://dlcdn.apache.org//jmeter/binaries/......
  • 利用 docker 实现JMeter分布式压测
    为什么需要分布式?在工作中经常需要对一些关键接口做高QPS的压测,JMeter是由Java语言开发,没创建一个线程(虚拟用户),JVM默认会为每个线程分配1M的堆栈内存空间。受限于单台试压机的配置很难实现太高的并发。所以,通过JMeter实现分布式,可以整合多台主机的硬件资源,实现同时对被测试接口......
  • jmeter中断言失败后不继续执行后续的取样器,以及失败事务个数的统计
    需要实现的场景:N款产品自动投保,需要统计成功投保的有多少款,失败投保的有多少款?遇到的问题处理:问题一、某款产品投保时,若其中一个接口断言失败,如何让后续接口不继续执行?答:通过if控制器进行处理,  问题二:如何解决统计失败或成功执行的产品数?答:通过事务处理器+BeanShell......
  • jmeter beanshell常见问题:"BeanShellInterpreter: Error invoking bsh method: eval
    jmeter使用beanshell文件经常会遇到这个问题:BeanShellInterpreter:Errorinvokingbshmethod:evalInfile:inlineevaluationof.... 原因可能有:1.jar包没有放入对应位置解决:放到lib/ext目录下,并且重启jmeter2.beanshell不支持java泛型,如List<String>list=newAr......
  • 一个我个人的jmeter测试流程和命令
    1,准备首先是下载jmeter和插件,包含CustomThreadGroups(多样化的线程组,之后细说),PerfMon(监控服务器信息)接下来部署测试应用,数据库和jmeter到不同的三个服务器上,启动测试应用和数据库,确保功能正常 2,perfmon使用perfmon需要下载两个部分,一个是jmeter的插件,直接从jmeter的Plu......
  • jmeter基本使用实践1
    1、录制脚本打开开发者工具,选中要录制的接口,右键copy>copyascurlbash2、线程数(即并发数):一个用户占一个线程,200个线程就是模拟200个用户;Ramp-Up时间(秒):设置线程需要多长时间全部启动;如果线程数为200,准备时长为10,那么需要1秒钟启动20个线程;也就是每秒钟启动20个线程;循环......
  • 网站/软件注册邮件发送?验证码邮件发信?
    在当今数字化时代,网站和软件的注册过程成为用户踏入数字世界的第一步。为了确保安全性和用户身份验证,验证码邮件发信成为一种常见的做法。蜂邮EDM将探讨网站/软件注册邮件发送的重要性以及验证码邮件发信的实际效果。1.注册流程关键性:在用户注册过程中,网站/软件注册邮件发送起着至......