【软件测试: jmeter工具】OS进程取样器调用python

ops/2024/10/22 3:20:52/

jmeter中有时候需要调用自定义函数进行加密、解密等拓展功能

本文通过识别验证码处理登录验证码为例,通过OS进程取样器,调用python函数实现

python_6">识别验证码的python函数源码

import base64
from io import BytesIO
from PIL import Image
import sys
import ddddocrdef Save_captcha_picture(b64_code):image_base64 = b64_code# 对base64字符串进行解码image_data = base64.b64decode(image_base64)# 使用BytesIO创建一个可读的字节流image_stream = BytesIO(image_data)# 使用PIL打开字节流中的图片image = Image.open(image_stream)# 保存图片到文件系统image.save("captcha.png", 'PNG')  # 保存为PNG格式,你也可以根据需要选择其他格式# 识别验证码
def captcha_code_recognition_func(img):"""识别验证码的函数:param img: 图片:return: 验证码字符串"""# 创建DdddOcr对象,show_ad=False可以关闭启动时的广告ocr = ddddocr.DdddOcr(show_ad=False)# 打开验证码图片文件并读取with open(img, 'rb') as f:img_bytes = f.read()  # 读取图片文件的字节数据# 使用classification方法进行验证码识别res = ocr.classification(img_bytes)# 打印识别结果print({"CaptchaValue": res})# return resif __name__ == '__main__':Save_captcha_picture(sys.argv[1])captcha_code_recognition_func("captcha.png")

举例的图片是通过base64编码返回的, 所以

  • 第一步通Save_captcha_picture()函数将Base64编码转换为图片,保存到本地

  • 通过captcha_code_recognition_func() 识别图片中的验证码, 通过ddddocr库进行识别

  • sys.argv[1]: 接收命令行调用时的参数

将上述代码写入python文件

python_69">直接调用python文件

在这里插入图片描述

  • 命令: 直接使用python, 本地已经安装了python环境

  • 工作目录: 配置python文件的文件目录,注意:此处可以包含中文路径

  • 命令行参数: 传递的第一个参数为python文件的名称, 传递的第二个参数为python文件执行时要传的参数,如果有第二个参数,继续增加参数

实际的执行命令效果是 python py文件 参数1

执行结果

在这里插入图片描述

识别出的验证码

在这里插入图片描述

结果可通过json提取器提取

在这里插入图片描述

通过.bat文件调用

第一步:创建一个 test.bat文件,指定执行py文件的命令

python C:\Users\74212\Desktop\temp\test\Base64_img.py %1 

配置OS进程取样器

在这里插入图片描述

  • 命令: 制定要运行的bat文件

  • 命令行参数: 传递参数, 替换bat 文件中的 %1

执行结果

在这里插入图片描述

通过正则表达式提取值

在这里插入图片描述

输出值的提取

在函数中,将最后的结果通过print()打印出来,可以在os提取器的响应界面进行展示

将展示的结果通过正则提取器或者json提取器,可以提取出变量

在这里插入图片描述

正则表达式提取

在这里插入图片描述

json提取器提取

在这里插入图片描述


http://www.ppmy.cn/ops/127462.html

相关文章

2.链表(代码随想录——python版本)

2.链表(代码随想录——python版本) 链表的概念: 链表是由指针串联在一起的线性结构,一个节点(node)由两部分组成: 数据域——用来存储数据;指针域——用来指向下一个节点&#xf…

网站分享 | 有用经验,干货满满!

这个网站涵盖了各个领域的经验分享。有用经验所提供的每一条经验均经过人工精心甄选,着重强调内容的质量以及实用性,以此来确保内容具有可靠性。 💼这里有各种职场攻略,从简历制作到面试技巧,再到职场人际关系处理&a…

携程线下一面,面试内容:

面试时间:2024/9/12 • 实例方法和静态方法有什么不一样? • Java中的异常有哪几类?分别怎么使用? • 常用的集合类有哪些?比如List如何排序? • ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和各自适应的场景是什么? • 内存溢出是怎么…

Qt获取磁盘信息+表格显示

效果展示 主要代码 获取磁盘相关数据 获取磁盘数据 Qt 没有提供相关的接口,需要使用 Windows API。接口解释如下: BOOL GetDiskFreeSpaceExW([in, optional] LPCWSTR lpDirectoryName,[out, optional] PULARGE_INTEGER lpFreeBytesAvailable…

大贤3D家谱-视图操作

在大贤家谱2025-3D中,您将体验到前所未有的家谱浏览方式。软件打破传统纸质家谱的局限,通过动态的三维展示,让信息更加直观且易于理解。 1. 自由浏览家谱​ 旋转、放大、缩小和平移:左键旋转,右键平移,滚…

知识点:代理设计模式

1.场景设定和问题复现 1 准备项目 pom.xml <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.3.1</version> <scope>test</scope></dependen…

医护人员排班|基于springBoot的医护人员排班系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书&#xff08;可指定任意题目&#xff09; 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息…

从 K8s 的 “临时容器” 看 K8s 设计的厉害之处

大家好&#xff0c;这里是G-LAB IT实验室。 ​ 从一个容器的不足说起 容器概念出现时&#xff0c;有个非常重要的理念&#xff1a;容器中极简。 即容器里面只保留需要运行的进程就可以&#xff0c;其他一律不要安装。这也是为什么 Docker 出现的那时&#xff0c;有一篇文章…