gpt4 book ai didi

scripting - 在与请求一起发送之前对变量进行哈希和编码

转载 作者:行者123 更新时间:2023-12-02 23:31:57 25 4
gpt4 key购买 nike

我正在尝试设置 JMeter 以连接到一个服务,该服务需要在开始之前和请求之间对某些变量进行一些哈希处理。

我创建了一个用户定义变量,其中包含纯文本身份验证信息。
在调用第一个 HTTP 请求之前,我需要使用 SHA256 对密码进行哈希处理,使用 base64 对其进行编码,然后转换为大写。

我将在 JSON 格式的响应正文中收到 auth_token。然后我需要对 auth_token 执行相同的 SHA256 -> base64 -> uppercase 链,从那时起它将在请求 header 中使用。

最佳答案

  1. 如果您不实现资源关键场景(负载测试),您可以使用例如JSR223 Sampler/JSR223 PostProcessor/JSR223 PreProcessor带有一些代码。

    例如

    • 通过以下 [groovy] 代码使用 JSR223 采样器/后处理器/预处理器:
    import java.security.MessageDigest;import org.apache.commons.codec.binary.Base64;import org.testng.annotations.Test;String [] params = Parameters.split(",");String text = params[0];MessageDigest md = MessageDigest.getInstance("SHA-256");md.update(text.getBytes("UTF-8"));byte[] digest = md.digest();byte[] encoded = Base64.encodeBase64(digest);String encText = (new String(encoded)).toUpperCase();vars.put("encodedValue",encText);
    • 您可以重复使用此采样器来哈希密码和 auth_token - 通过 JSR223 采样器配置中的“参数”字段:使用例如第一种情况是 ${password} 变量,第二种情况是 auth_token

    • 哈希值可以作为 ${encodedValue} 变量引用。

  2. __groovy一起使用的类似groovy代码功能。

  3. jmeter-plugins集合包含 ${__MD5(...)}${__base64Encode(...)}${__uppercase(...)} functions但这对于您的情况来说还不够(没有 SHA256 摘要)。

  4. 您还可以查看OS Process Sampler使用您的操作系统(如果是 Linux 则更好)功能来实现相同的功能。

关于scripting - 在与请求一起发送之前对变量进行哈希和编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14733065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com