在Jmeter中使用python对接口返回结果进行解密显示

由于公司的接口返回数据是加密的,而我们最近要使用Jmeter进行压测,因此首先要将Jmeter的返回结果进行解密处理;本文主要讲解的是使用Python语言来进行解密。
累累累,这个问题断断续续解决了一周

没有解决前,接口的响应结果是这样的
在这里插入图片描述
解决后,响应结果是这样展示的
在这里插入图片描述

解决步骤:

1、安装Jython

首先是由于Jmeter中使用的是Jython,因为Jython更适合集成到 Java 环境中,因此我们需要下载Jython。网址:https://www.jython.org/download
在这里插入图片描述
在这里插入图片描述

将jython-standalone-2.7.3.jar文件放至F:\app\apache-jmeter-5.6.3\lib位置下

2、在Jmeter中添加后置处理器

在线程组中添加后置处理器:JSR223 PostProcessor,
在这里插入图片描述
语言选择为:Jython
在这里插入图片描述

3、编写解密代码

最重要的来啦。我们使用python语言编写解密代码时会用到一些python的第三方库,但是Jmeter中使用的是Jython,而python中有的库,Jython中并不一定有,例如我使用的Crypto就没有,因此我们需要将python编写的解密代码转换为Jython的。
但是我并不了解Jython,因此我使用的方法就是使用ChatGPT将python代码转换为Jython的😅
虽然。。但是解决了问题
ChatGPT网址:https://chat.openai.com/ 3版本可以免费使用哦

你只需要这样告诉ChatGPT:
在这里插入图片描述

它就会帮你写出来:
在这里插入图片描述
我们只需要粘贴到这个地方就可以了
在这里插入图片描述
运行线程组,你就可以得到解密后的响应结果啦。
在这里插入图片描述

我的解密代码大概是这样的,解密函数根据加密规则而定,不了解可以问开发同志。

import json
import base64
import re
from javax.crypto import Cipher, SecretKey, SecretKeyFactory
from javax.crypto.spec import DESKeySpec
import java

# 解密类
class ChametDESCrypt:
    def __init__(self, key=""):
	  	......

    # 解密函数
    def decrypt(self, data):
		......
		
# 获取HTTP请求的加密的响应结果
encrypted_response = prev.getResponseDataAsString()

# 调用解密类,创建 ChametDESCrypt 实例
des = ChametDESCrypt()

# 将加密的响应结果解密为字符串
decrypted_response = des.decrypt(encrypted_response)

# 将解密后的字符串转换为 JSON 对象
decrypted_response_json = json.loads(decrypted_response)

# 将解密后的响应结果设置回查看结果数的响应数据中
prev.setResponseData(json.dumps(decrypted_response_json))

好了,问题到此就解决了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值