Jmeter接口测试-图片验证码的识别

news/2024/12/15 13:14:33/文章来源:https://www.cnblogs.com/shynote/p/18607882

Jmeter接口测试-对图片验证码的识别Jmeter接口测试-对验证码的识别

## 大概说一下思路,以及方法,我的接口接口的返回值是img/base64编码的,我采用的是OCR Server识别,获取返回值,图片保存到本地,再图片转码base64,之后携带数据请求OCR识别。(网上的办法是接口这种base64位的编码,可以直接请求OCR服务,我也试了试这个办法,请求时候,图片识别错误,就多了一步保存到本地)

1.获取接口数据(创建线程组- HTTP请求-输入IP地址、端口号、请求方式、路径、编码)
image
2.在HTTP请求下添加JSON提取器,提取imgUid、imgCode
image
中间采用“;”分号连接
3.接下来处理验证码,保存到本地,采用BeanShell后置处理
添加如下代码

点击查看代码
// 获取 Base64 编码字符串
String imageData = vars.get("imgcode");
// 判断并去掉前缀
if (imageData.startsWith("data:image/jpeg;base64,")) {imageData = imageData.substring("data:image/jpeg;base64,".length());
} else if (imageData.startsWith("data:image/jpg;base64,")) {imageData = imageData.substring("data:image/jpg;base64,".length());
}
// 现在 imageData 就是没有前缀的 Base64 字符串
// 继续进行解码等操作
import java.util.Base64;
import java.io.*;
byte[] data = Base64.getDecoder().decode(imageData);
// 保存文件
String fileName = "D://imgcode/code.jpg";
//保存的文件路径,可以自定义,换成你自己的
FileOutputStream out = new FileOutputStream(fileName);
out.write(data);
out.close();
// 设置文件路径变量
vars.put("file_name", fileName);
4.成功保存到本地后,进行下一步操作,读取图片,再次转码为base64
点击查看代码
import java.nio.file.Files
import java.nio.file.Paths
import java.util.Base64// 设置图片文件路径
String filePath = "D://imgcode/code.jpg"  // 替换为你本地图片的路径
// 读取图片文件的字节数组
byte[] imageBytes = Files.readAllBytes(Paths.get(filePath))
// 将字节数组转换为 Base64 编码
String encodedImage = Base64.getEncoder().encodeToString(imageBytes)
// 输出 Base64 编码结果到 JMeter 变量
vars.put("encodedImage", encodedImage)
// 可选:打印 Base64 编码到 JMeter 日志
log.info("Encoded Image: " + encodedImage)
5.最后一步,是使用HTTP请求,请求下载好的OCR Server服务(IP为:127.0.0.1,端口默认为:12349,请求方式为POST)携带上一步骤中的encodedImage变量,使用${encodedImage}引用 6.添加查看结果树,执行后查看接口,验证码获取成功 {"code": "I7EX" }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/853212.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

yolo导出,动态batch,固定图片尺寸

当使用export,dynamic=True时,batch和尺寸都是动态的。若想只有batch动态

如何在PbootCMS中实现自动清理runtime缓存?

要在PbootCMS中实现自动清理runtime缓存,可以按照以下步骤操作:编辑控制器文件:打开文件 /apps/home/controller/ExtLabelController.php。 找到以下代码:php// 测试扩展单个标签 private function test() {$this->content = str_replace({pboot:userip}, get_user_ip()…

如何修改自动清理脚本的清理间隔时间?

如果你想修改自动清理脚本的清理间隔时间,可以在控制器文件中调整 expire_time 的计算方式。以下是具体步骤:编辑控制器文件:打开文件 /apps/home/controller/ExtLabelController.php。 找到以下代码:php// 自动会话清理脚本 public function clean_session() {check_dir(R…

如果修改权限后仍然提示“会话目录写入权限不足”,应该如何处理?

如果您已经按照建议修改了PbootCMS相关目录的权限,但仍然收到“会话目录写入权限不足”的提示,可能是由于以下几个原因导致的:服务器配置问题:某些服务器可能有特殊的权限管理机制,例如SELinux或AppArmor。这些机制可能会限制Web服务器对某些目录的写入权限,即使您已经设…

帝国CMS灵动标签调用栏目内容排除某些栏目方法

使用灵动标签中的条件来排除特定栏目内容 示例代码:[e:loop={0,20,5,1,id not in(7,9,15,16),newstime DESC}] <a href="<?=$bqsr[titleurl]?>"><?=$bqr[title]?></a> [/e:loop]通过 id not in(7,9,15,16) 条件排除指定的栏目ID【遇到问…

zblog函数GetCategoryByID:通过分类ID获取分类对象数据

函数位置:zblogphp.php文件,大约3300行。函数参数:$id:整数类型,要获取数据的分类ID。函数输出:返回一个对象,包含指定分类的所有值。示例:if ($zbp->GetCategoryByID(1)->ID != 0) {// 存在ID是1的分类echo $zbp->GetCategoryByID(1)->Name; }其他数据值:…

为什么在PbootCMS后台上传的缩略图会变得模糊?

在使用PbootCMS后台发布内容时,如果上传的缩略图变得模糊,这通常是由于PbootCMS默认的图片尺寸限制所致。PbootCMS为了保证网站的加载速度和性能,默认设置了缩略图的最大宽度和高度。当上传的图片超过这些限制时,系统会自动压缩图片,导致图片质量下降,从而显得模糊。以下…

Z-BlogPHP免输入密码登陆工具(重置密码为12345678)

代码仅供参考, 上传网站根目录, 可以将密码重置为12345678。 使用重置的简易密码登录后台, 可以在用户管理栏目重置相设置的密码 <?php require ./zb_system/function/c_system_base.php; //$zbp->Load();if (isset($_GET[uid]) && isset($_GET[resetpw])) …

如何提前配置 c_option.php 文件以便在安装过程中自动跳转到安装页面?

提前配置 c_option.php 文件可以确保在安装 Z-BlogPHP 时自动跳转到安装页面,而无需手动进行数据库配置。以下是详细的步骤和注意事项:创建 c_option.php 文件:在 Z-BlogPHP 安装目录下的 zb_users 文件夹中创建一个新的文件,命名为 c_option.php。 确保文件具有正确的权限…

如何修改网站的错误信息,如何自定义网站的错误页面

自定义网站的错误页面可以提升用户体验,提供更友好的提示信息。以下是具体步骤:创建错误页面:创建一个新的HTML文件,命名为 404.html、500.html 等,根据需要创建不同的错误页面。 在错误页面中,编写友好的提示信息和导航链接,帮助用户返回网站的其他部分。配置Web服务器…

网站的标题怎么修改,如何在网站后台管理系统中修改网站标题

在网站后台管理系统中修改网站标题是一个常见的维护任务。以下是具体步骤:登录后台:使用管理员账号登录网站的后台管理系统。导航到基本设置:在后台菜单中,找到“系统设置”或“基本设置”模块。修改网站标题:找到“网站标题”字段,输入新的标题。 确保标题简洁、易记,符…

织梦模板修改网站地图,织梦模板网站地图修改指南

修改织梦模板中的网站地图可以帮助搜索引擎更好地抓取网站内容,提高SEO效果。以下是详细的步骤:登录后台管理系统:使用管理员账号登录织梦CMS的后台管理系统。进入模板管理:导航到“模板管理” -> “默认模板管理”。编辑网站地图模板:找到网站地图的模板文件,通常是s…