2015-12-07 61 views
2

我在JMeter 2.13中使用JDBC採樣器。如何通過JMeter中的JDBC採樣器運行多個MySQL語句

我有我的JMeter取樣約100 delete語句象下面這樣:

delete from abc where id >= ${Variable_Name}; 
delete from qwe where id >= ${Variable_Name}; 
delete from xyz where id >= ${Variable_Name}; 

問題是,當我運行在JDBC採樣單個語句,它工作正常。但是當我嘗試從我的JDBC採樣器運行2或2個以上的語句時。它總是拋出錯誤。

您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以找到正確的語法,用於'從qwe刪除其中id> = 1;

有人可以提一個解決方法嗎?以及我如何克服這個問題。

回答

4

看來你不能在一個單一的JDBC Request元素中執行多個語句。

我有一個類似的情況,在繼續進行其餘的測試之前,我需要在數據庫上執行一些清理語句。我能夠從外部文件中讀取SQL語句來達到這個目的,使用CSV Data Set Config嵌套在Loop Controller,在一個單獨的setUp Thread Group

元素置於這樣的:

setup database before test example

我使用以下配置:

迴路控制器

  • 循環計數:Forever

CSV數據集配置

  • 文件名:/path/to/multiple-statements.sql
  • 變量名:STMT
  • 上EOF回收:False
  • 停止線程EOF:True

JDBC要求

  • 查詢:${STMT}

Loop Controller設置爲一直運行下去,爲停止條件設置上CSV Data Set Config。每次迭代將讀取文件的一行,設置變量STMT,然後JDBC Request將執行查詢${STMT}

當文件結束時,setUp Thread Group將停止並且核心測試Thread Group將繼續。

+1

我認爲這可以在沒有創建循環控制器的情況下完成。在測試計劃中,您可以選擇循環計數。只要永遠做到這一點,它將以同樣的方式工作。 – Darshan

相關問題