簡體   English   中英

JMeter 循環索引在循環控制器中始終返回 0

[英]JMeter loop index always return 0 in Loop Controller

當我在 JSR223 Sampler 中使用命令${__jm__myLoopControllerName__idx}時,它總是返回 0 作為索引。

采樣器位於循環控制器中。 但是我可以看到我正在循環的 CSV 文件是為每一行完成的,因為在偵聽器“查看結果樹”中,我可以在請求標頭中看到數據來自每一行。 我究竟做錯了什么 ? 謝謝你的幫助。 M。

在 JSR223 腳本中使用vars獲取變量:

String index = vars.get("__jm__myLoopControllerName__idx");

${}語法中的變量正在被緩存

確保腳本不使用任何使用 ${varName} 的變量,因為緩存將只使用 ${varName} 的第一個值。 而是使用: vars.get("varName")

根據JSR223 采樣器文檔

JSR223 測試元素具有可以顯着提高性能的特性(編譯)。 要從此功能中受益:

  • 使用腳本文件而不是內聯它們。 如果此功能在 ScriptEngine 上可用,這將使 JMeter 編譯它們並緩存它們。

  • 或使用腳本文本並檢查緩存編譯腳本(如果可用)。>

     When using this feature, ensure your script code does not use JMeter variables or JMeter function calls directly in script code as caching would only cache first replacement. Instead use script parameters.

因此,要么將您的${__jm__myLoopControllerName__idx}放在“Parameters”部分,並在您的腳本中將其稱為“Parameters”:

在此處輸入圖片說明

對 JMeterVariables 類實例使用vars簡寫,例如

vars.get('__jm__myLoopControllerName__idx')

在此處輸入圖片說明

暫無
暫無

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

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