簡體   English   中英

為什么從 JMeter OS Sampler 啟動的 BAT 文件沒有觸發 Maven 執行?

[英]Why the BAT file launched from JMeter OS Sampler is not triggering the Maven execution?

摘要:-我的性能測試需要大量動態數據,而無法從 Jmeter 本身生成這些測試數據。 因此,我編寫了一個 Java 代碼,它將生成這些動態測試數據並將這些數據放入 excel 文件中。 JMeter 腳本可以使用此 excel 文件進行性能測試。 JMeter 中的每次迭代都需要一組新的測試數據,這就是為什么我創建了一個 bat 文件,它將觸發 Maven 執行(它只是 mvn clean test)並在每次迭代之前生成一組新的測試數據。 到目前為止一切正常。 我只需要從 JMeter 運行 bat 文件以在每次迭代之前觸發測試數據創建,這就是我面臨的問題

問題:-如鏈接如何從 Jmeter 運行批處理文件(.bat)中所述以及用戶@Dmitry T 的建議,我已經添加了具有給定參數的操作系統采樣器(參見下面的屏幕截圖),但它沒有啟動Maven 執行。 它正在擊中 bat 文件(我放了一些 msg 命令來檢查)但不知何故它沒有開始執行。 我嘗試了同一用戶提供的有關使用 Beanshell 采樣器並運行命令的其他解決方案

 Runtime.getRuntime().exec("C:/Windows/System32/cmd.exe /c D:/XXXX/XXX/XXXX/GenerateTestData.bat"); 

這也行不通。 我在這里錯過了什么嗎? 請讓我知道是否有任何解決方案? 對此有任何幫助嗎?

在此處輸入圖片說明

  1. Command輸入中提供cmd.exe完整路徑
  2. Working directory更改為批處理文件所在的位置
  3. Command Parameters僅使用批處理文件名

就像是:

在此處輸入圖片說明

有關更多詳細信息,請參閱如何從 JMeter文章在本地和遠程運行外部命令和程序

或者,您可以在運行 JMeter 測試之前使用Maven Exec 插件運行您的自定義命令

批處理文件很可能沒有設計為在執行時的當前目錄與包含批處理文件的目錄不同的情況下正常工作。 當前目錄可以是任何目錄。 非常常見的是目錄%SystemRoot% (Windows 目錄)和%SystemRoot%\\System32%SystemRoot%\\SysWOW64 (Windows 系統目錄)作為當前目錄,任何目錄都可以作為運行批處理文件的當前目錄。

相對於批處理文件目錄引用其他文件或目錄的批處理文件應將當前目錄設置為批處理文件目錄或引用具有完整批處理文件路徑的所有目錄和文件。

批處理文件的參數 0 始終是批處理文件本身。 在命令提示符窗口中運行的幫助輸出call /? 解釋如何使用修飾符引用參數。 在這種情況下, %~dp0應該用於獲取批處理文件的完整路徑。

所以在批處理文件頂部可以使用:

@echo off
cd /D "%~dp0"

只要批處理文件存儲在帶有驅動器號的驅動器上,當前目錄就通過第二個命令行設置為包含批處理文件的目錄。

還有另一種方法可以使批處理文件的目錄成為當前目錄,即使批處理文件存儲在網絡資源上並且批處理文件是使用其 UNC 路徑執行的。

@echo off
setlocal EnableExtensions DisableDelayedExpansion
pushd "%~dp0" || exit /B

rem Other commands accessing files and directories in batch file directory
rem using no path or a path relative to current working directory.

popd
endlocal

在命令提示符窗口中運行的幫助輸出pushd /? 描述了為什么此代碼即使在啟用命令擴展的 UNC 路徑下也能工作,這由第二個命令行確保,該命令行與第一個命令行一起完全定義批處理文件的執行環境,而不依賴於批處理文件之外的配置。

另一種解決方案是使用完整路徑引用批處理文件目錄中的所有文件和目錄,這意味着使用%~dp0 ,例如"%~dp0ExcelFile.xlsx"

注意:%~dp0引用的路徑字符串總是以反斜杠結尾,它是 Windows 上的目錄分隔符,如 Microsoft 文檔中關於命名文件、路徑和命名空間的解釋 因此, %~dp0與另一個字符串(如文件/文件夾名稱或通配符模式)的連接應該始終完成,而無需使用額外的反斜杠來獲得 100% 正確的完整文件/文件夾/模式參數字符串。

暫無
暫無

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

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