2017-10-20 293 views
1

在JMeter的我傳遞多個JSON輸入作爲主體,變量名稱被定義爲JSON_FILE和從CSV數據配置來jmeter.functions.FileToString沒有找到文件位置

${__FileToString(${__eval(${JSON_FILE})}.json,,)} 

CSV數據

designO1015643320 
. 
. 
designO1077673985 
designO1088516727 

從Jmeter運行負載測試UI工作正常,但作爲運行mvn項目提供有關FileNotFoundException錯誤,即使.csv文件和.json文件是我n的.jmx從.jmx.log文件

錯誤相同的文件夾:

WARN - jmeter.functions.FileToString:無法讀取文件:designO1015643320.json文件 'designO1015643320.json' 不存在java.io.FileNotFoundException:文件 'designO1015643320.json' 不存在在.jtl

響應:

httpSample t =「4」lt =「0」ts =「1508530091457」s =「false」lb =「CreateDesign_PUT」rc =「非HTTP響應代碼:org.apache.jorphan.util.JMeterStopThreadException」rm =「非HTTP響應消息:序列結束 「由= 」1822「 NG = 」1「 NA = 」1「/>

+1

由於您未指定文件的路徑,因此它正在當前目錄中查找它。當你在本地運行並使用Maven時,當前目錄很可能不同,因此它找不到該文件。 您必須以某種方式傳遞路徑,或者使其在兩種情況下都具有通用性(例如絕對路徑或PATH上的路徑) –

回答

0

JMeter的GUI默認的相對路徑是」 TN = 」Design_APIs 1-1「 DT =」 文本bin文件夾

相對路徑相對於當前工作目錄(默認爲bin /目錄)被解析。在不同的默認路徑

Maven的搜索文件src/test/jmeter目錄

guide

在src /測試/ JMeter的目錄

。運行項目時,JMeter Maven插件會搜索要在此目錄中運行的測試。

,你可以找到這個路徑dynamically

0

聽說Groovy is a new black所以我會建議與__groovy() function,相對於Maven的插件當前工作目錄的文件路徑動態獲取Groovy的等同替換您__FileToString()函數將如:

${__groovy(new File(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir() + System.getProperty('file.separator') + vars.get('JSON_FILE') + '.json').text,)} 

請參閱JavaDoc on FileServer class瞭解更多詳情。