簡體   English   中英

JMeter-Groovy腳本變量的串聯

[英]JMeter - Groovy script concatenation of variables

Groovy是JMeter中的首選腳本

我們建議使用Apache Groovy或任何支持JSR223的Compilable接口的語言。

JSR233 Sampler中的以下代碼在Java中可用,但在Groovy中不可用

String a= "0"+"1" +
"2" 
+"3";
log.info(a);

我發現+運算符無法按預期工作的原因

但是我想將幾個變量連接到一個腳本的解決方案是什么?

我未能使用使用三個引號的答案"""The row Id is: ${row.id}..."""

目前,盡管不建議使用Java作為腳本語言,並使用JMeter $ {variable}:

在這種情況下,請確保腳本不使用任何使用$ {varName}的變量,因為緩存將僅采用$ {varName}的第一個值

String text ="...<id>${id}</id><id2>${id2}</id2>...";

在這種情況下,使用常規的更好的方法是什么?

編輯

嘗試使用<<但在拆分到新行時出現其他錯誤

String text ="<id>" <<vars["id1"] << "<id><id2>" 
<< vars["id2"] << "<id2>";

收到錯誤:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script12.groovy: 2: unexpected token: << @ line 2, column 1.
   << vars["id2"] << "<id2>";

為什么不使用:

字符串文本=“ <id>” << vars [“ id1”] <<“ <id> <id2>” << vars [“ id2”] <<“ <id2>”;

這個對我有用

如果我有一個像您一樣的哈希圖,我可以嘗試:

def vars = ["id": "value", "id2": "value2", "id3": "value3"]

String text = ""
vars.each { k, v ->
    text += "<${k}>${v}</${k}>"
}

println text

Groovy使用換行符指示語句的結尾,除非它知道下一行必須擴展當前行。 在下一行的開始處支持許多二進制運算符。 “ +”和“-”運算符具有二進制和一元變量,當前(Groovy版本至少為2.5.x)在下一行的開頭不支持這些運算符。 您可以將運算符放在前一行的末尾(如您的第一行),也可以在前一行的末尾使用換行符:

String a = "0" + "1" +
"2" \
+ "3"
log.info(a)

暫無
暫無

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

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