2013-05-02 42 views
3

我在使用包含正則表達式捕獲的變量作爲'保存對文件的響應'偵聽器中文件名的一部分時遇到了一些困難。我能夠在if控制器中成功使用捕獲的變量。但是,當我在「保存對文件的響應」偵聽器的文件前綴部分中使用它時,它並不開心。在Jmeter中如何使用捕獲的正則表達式變量作爲​​文件名的一部分?

這是

"command":"ARCHIVE_FILE" 

我執行正則表達式的JSON這是正則表達式

Reference Name:  command 
Regular Expression: "command":"(.+?)" 
Template:   $1$ 
Match No.   1 
Default Value:  COMMAND_NOT_FOUND 

我可以成功地使用所捕獲的變量以「如果控制器」。雖然我必須承認,但我對所需的雙引號有點困惑。所以,就像我說的(我曾經嘗試沒有任何雙引號,但如果條件不觸發)

If Controller 
Condition:  "${command}"=="ARCHIVE_FILE" 

,我已經驗證了上述作品。但是,當我嘗試使用捕獲的變量作爲「保存對文件的響應」中文件名前綴的一部分時,它將文件字面上保存爲'$ {command}'。不是存儲在變量中的值。

Filename prefix: d:\tmp\${command} 

懷疑我的問題與這個引用有關,然後我嘗試了這個作爲一個實驗。

Filename prefix: d:\tmp\"${command}" 

這確實給了我在變量中捕獲的值,但它是用雙引號結尾的,jmeter對此並不滿意。

jmeter.reporters.ResultSaver:錯誤的客戶端下載 開始java.io.FileNotFoundException創建示例文件: d:\ Apache的JMeter的-2.9 \ tmp目錄\客戶端\ 「ARCHIVE_FILE」(文件名, 目錄名稱或卷標語法不正確)

此處有任何幫助。

回答

1

您可以:

雙回斜線在文件名前綴字段:

d:\\tmp\\${command} 

,因爲在這種情況下,一個反斜槓會被視爲「逃離」字符和變量沒有擴大到它的價值;

或:

2.在腳本別處定義d:\tmp\部分作爲單獨的變量例如${responsePath}和與此變量替換的文件名前綴場d:\tmp\

${responsePath}${command} 

兩種變體將正常工作,但第2人似乎更普遍一點。

+0

謝謝。工作很好。 – agranum 2013-05-03 13:57:20

相關問題