【软件测试: 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提取器提取

相关推荐
好看资源平台2 分钟前
网络爬虫——综合实战项目:多平台房源信息采集与分析系统
爬虫·python
凡人的AI工具箱6 分钟前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang
chnming198722 分钟前
STL关联式容器之map
开发语言·c++
进击的六角龙24 分钟前
深入浅出:使用Python调用API实现智能天气预报
开发语言·python
檀越剑指大厂24 分钟前
【Python系列】浅析 Python 中的字典更新与应用场景
开发语言·python
湫ccc32 分钟前
Python简介以及解释器安装(保姆级教学)
开发语言·python
孤独且没人爱的纸鹤35 分钟前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
程序伍六七35 分钟前
day16
开发语言·c++
羊小猪~~38 分钟前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
wkj00140 分钟前
php操作redis
开发语言·redis·php