java - 如何在 JMeter 中使用 Java 代码生成一些 HKSTD id ?该id将在进一步的http请求采样器中使用

标签 java jmeter

我正在开发一个项目,其中生成 hkstd id 并由进一步的 HTTP 请求采样器使用该 id。这个hkstd id是由开发者提供的java代码生成的。我的场景是,我必须首先调用这个 java 代码,它将返回 id,然后我将在我的 HTTP 请求中使用它。我尝试在 Beanshell Sampler 和 JSR223 Sampler 中调用此 Java 代码,但没有结果,尽管此采样器传递了结果而没有任何错误。当我尝试放入 log/System.out 时,它什么也不打印。我不确定我的代码是否正在运行/调用?

提前致谢!

JMeter Sampler for this java code

最佳答案

删除类和主方法并只需输入您的代码,例如:

import org.apache.commons.codec.digest.DigestUtils;

String contextRoot = "root";
String csrfToken = "a";
String url = "http://www.google.com/root?ta=b&_hkstd=1234c=d";

String urlWithQueryString = removeParamsAndHost(url, contextRoot);
String token = getHashValueOfUrl(urlWithQueryString, csrfToken);
String urlWithToken = findurlWithToken(url, token);

private static String findurlWithToken(String url, String token) {
    StringBuilder builder = new StringBuilder(removeParams(url));
    if (builder.indexOf("?") == -1) {
        builder.append("?");
    } else {
        builder.append("&");
    }
    builder.append("_hkstd").append("=").append(token);
    ;
    return builder.toString();

}

private static String removeParamsAndHost(String url, String contextRoot) {
    if (url.indexOf("_hkstd") != -1) {
        return url.substring(url.indexOf(contextRoot), url.indexOf("_hkstd") - 1);
    } else {
        return url.substring(url.indexOf(contextRoot));
    }
}

private static String removeParams(String url) {
    if (url.indexOf("_hkstd") != -1) {
        return url.substring(0, url.indexOf("_hkstd") - 1);
    } else {
        return url;
    }
}

public static String getHashValueOfUrl(String url, String csrfToken) {
    return DigestUtils.md5Hex(url + csrfToken);
}

您可以使用 vars.put 添加稍后可以使用的 JMeter 变量:

vars.put("url", urlWithToken );

关于java - 如何在 JMeter 中使用 Java 代码生成一些 HKSTD id ?该id将在进一步的http请求采样器中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54977079/

相关文章:

javax.validation 如何针对不同的语言环境?

java - VSCode 和 WSL2 - 将 Java 语言级别指定为 1.8

java - 使用 JMeter 正则表达式提取特定数字

testing - 就 vuser 而言,Jmeter 与 LoadRunner

testing - 如何测试 RTMP 流负载测试

java - Android Wear NullPointerException 无法在 TextView 上设置文本

java - JNI——多线程

Java:可视化 xml 编辑器和树可视化器 swing 组件我可以嵌入到我的应用程序中吗?

jmeter - 打开 Jmeter 插件管理器时出错

performance - JMeter : Generating the default html report not possible with Taurus