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

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

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

识别验证码的python函数源码

Python 复制代码
import base64
from io import BytesIO
from PIL import Image
import sys
import ddddocr

def 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 res

if __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文件

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

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

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

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

执行结果

识别出的验证码

结果可通过json提取器提取

通过.bat文件调用

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

Python 复制代码
python C:\Users\74212\Desktop\temp\test\Base64_img.py %1 

配置OS进程取样器

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

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

执行结果

通过正则表达式提取值

输出值的提取

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

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

正则表达式提取

json提取器提取

相关推荐
qq_529025296 分钟前
Torch.gather
python·深度学习·机器学习
数据小爬虫@6 分钟前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python
ZJ_.8 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
Narutolxy13 分钟前
深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223
开发语言·golang·gin
Hello.Reader21 分钟前
全面解析 Golang Gin 框架
开发语言·golang·gin
禁默32 分钟前
深入浅出:AWT的基本组件及其应用
java·开发语言·界面编程
Cachel wood38 分钟前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Code哈哈笑41 分钟前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
終不似少年遊*44 分钟前
pyecharts
python·信息可视化·数据分析·学习笔记·pyecharts·使用技巧
程序猿进阶44 分钟前
深入解析 Spring WebFlux:原理与应用
java·开发语言·后端·spring·面试·架构·springboot