2017-01-08 86 views
0

我有一個簡單的Jmeter測試,我有一個屬性來設置URL。 Jmeter測試中的PATH設置如下。Jmeter動態URL屬性變量未替換

${__P(GET_URL,)} 

這適用於我一直在使用的所有URL,除了需要在URL組件中傳遞變量的URL之外。

例如,它適用於當http://server:port/getemployeelist我運行與-JGET_URL=/getemployeelist

然後創建了一個CSV config元素來填充該變量EMP_ID測試。

然後,如果我用-JGET_URL=/getemployee/${EMP_ID}運行測試,則EMP_ID變量不會被替換。 JMeter測試給我一個錯誤如下:

java.net.URISyntaxException:路徑中具有非法字符在指數XX:https://開頭:// getEmployee的/ $ {} EMP_ID

任何欣賞幫助/指針。

回答

0

它不會以這種方式工作,JMeter的不知道它正在啓動時間任何關於${EMP_ID},你需要在運行時

  1. 開始追加這${EMP_ID}HTTP Request採樣「路徑」 JMeter的是:

    jmeter -JGET_URL=/getemployee/ 
    
  2. 使用CSV Data Set Config來讀取的CSV文件EMP_ID

    JMeter CSV EMP ID

  3. 在HTTP請求採樣器使用施工等/${__P(GET_URL,)}/${EMP_ID}到JMeter的屬性結合通過從CSV文件-J命令行參數和變量的JMeter始髮指定。

    JMeter properties and variables concatenation

如果出現問題首先是檢查jmeter.log文件 - 它通常包含足夠的故障診斷信息。如果沒有任何可疑 - 請使用Debug Sampler and View Results Tree listener combination檢查請求和響應詳細信息,變量和屬性名稱和值等。

+0

謝謝。我想要做的是使用單個jmx通過調用jmeter -JGET_URL = url1,-JGET_URL = url2等來測試一堆REST API。 _url1_需要$ {EMP_ID},如上例所示,但_url2_不能在URL中包含$ {EMP_ID}。由於EMP_ID的CSV數據配置是jmx的一部分,因此我在-JGET_URL中傳遞的每個URL都會得到此EMP_ID,並且不起作用。因此麻煩。 –

+0

使用[__evalVar()](https://jmeter.apache.org/usermanual/functions.html#__evalVar)函數代替'/ $ {__ P(GET_URL,)}/$ {__ evalVar(EMP_ID)}'。如果你的EMP_ID變量不會被初始化 - 那麼這個值將是空白的,如果這個變量將會有這個值 - 你將在路徑中看到這個值。請參見[函數和變量](https://jmeter.apache.org/usermanual/functions。html)JMeter用戶手冊章節和[如何使用JMeter函數](https://www.blazemeter.com/blog/how-use-jmeter-functions-part-iii)帖子系列來熟悉JMeter函數。 –