2010-09-30 148 views
32

我的團隊使用JM做了很多測試自動化。通常我們有一個屬性文件,它定義了一堆變量。這些映射又映射到「用戶定義的變量」,其中我們有許多不同的集合。jmeter - 顯示變量的值

這些都在jmx的其餘部分被引用 - 我覺得很難,因爲在這麼多不同的地方有太多的變量來知道是什麼。有什麼辦法讓jmeter顯示它的變量有什麼值 - 自定義採樣器是否正常?理想情況下,如果您只需將鼠標懸停在某個變體上並顯示其值,就可以使用它。

任何想法?

回答

37

Jmeter的最新版本有一個稱爲「調試採樣器」的奇妙採樣器,它將向您顯示以下值:Jmeter變量,Jmeter屬性或系統屬性。

您可以在腳本中的任何位置插入它們以在給定時間獲取值。您需要啓用「查看結果樹」來查看採樣器。

鑑於Jmeter從運行中的文件聲明變量,您將無法獲得理想的解決方案。

我很好奇......使用「CSV數據集配置」而不是從屬性文件填充「用戶定義的變量」會更清潔嗎?

編輯:增加了關於變量聲明和CSV問題的解釋。

+0

由於生病給這一個去BG。 – wmitchell 2010-10-05 10:45:10

2

這是我如何使用的權利,通過代碼(變種在JSR223 PostProcessor中的Java代碼),以獲得增值經銷商的設置:

  1. 通過右鍵添加「JSR223 PostProcessor中」點擊你需要的地方檢查JMeter的變量在你的項目中;

Adding JSR223 PostProcessor

  • 設置語言(在我的情況 - 到Java);
  • 添加以下代碼到腳本窗口:

    import java.util.Map; String jMeterVars; jMeterVars = "Quantity of variables: " + vars.entrySet().size() + ".\n\n"; jMeterVars += "[VARIABLE NAME] ==>> [VARIABLE VALUE]\n\n"; for (Map.Entry entry : vars.entrySet()) { jMeterVars += entry.getKey() + " ==>> " + entry.getValue().toString() + "\n"; } try { FileWriter fw = new FileWriter("D:\\jMeterVarsForStackOverflow.txt",true); fw.write(jMeterVars); fw.close(); } catch(IOException ioe) { System.err.println("IOException: " + ioe.getMessage()); }

  • 檢查,一切都在JSR223 PostProcessor中看起來像這樣: JSR223 PostProcessor ready to go
  • 在JMeter的啓動項目。
  • 上面的代碼將在d創建jMeterVarsForStackOverflow.txt文件:,並把所有的變量有:

    Sample of file with jMeter variables got by the code above