gpt4 book ai didi

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

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

我正在开发一个项目,其中生成 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/

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