簡體   English   中英

如何在生成某些HKSTD ID的JMeter中使用Java代碼? 此ID將在其他http請求采樣器中使用

[英]How to use Java Code in JMeter which generates some HKSTD id ? This id will be use in further http request sampler

我正在開發一個項目,該項目將生成hkstd id,並且此ID由進一步的HTTP Request Sampler使用。 此hkstd ID由開發人員提供的Java代碼生成。 我的情況是我必須先調用此Java代碼,該代碼將返回ID,然后在HTTP請求中使用它。 我試過在Beanshell Sampler和JSR223 Sampler中調用此Java代碼,但沒有結果,盡管此Sampler傳遞了結果而沒有任何錯誤。 當我嘗試放入log / System.out時,它什么也不打印。 我不確定我的代碼是否正在運行/調用?

提前致謝!

此Java代碼的JMeter Sampler

刪除類和主方法,然后輸入您的代碼,例如:

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);
}

您可以添加一個JMeter變量,以后可以使用vars.put來使用vars.put

vars.put("url", urlWithToken );

如果要按原樣運行此Java類:

  1. 編譯開發人員提供的源代碼,並將生成的.jar文件放在JMeter Classpath下
  2. 重新啟動JMeter以選擇.jar
  3. JSR223采樣器添加到您的測試計划
  4. 將以下代碼放入“腳本”區域:

     AppendHtstd.main() 
  5. 就是這樣,您的課程將由JMeter執行

    在此處輸入圖片說明

請參閱Apache Groovy-為什么和應該如何使用它,以了解有關JMeter測試中的自定義腳本的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM