2016-06-15 22 views
0

我打算使用存儲過程可調用語句加載數據庫。測試計劃,我創造了JMeter的樣子如下:如何使用JDBC請求在JMeter中設置存儲過程的參數

- Test plan 
    - Thread Group 
    - JDBC Connection Configuration 
    - JDBC Request 
    - View results tree 
    - Summary Report 
  • JDBC連接配置是基於已經工作的測試。 問題是我的JDBC請求:
  • 變量名:是數據庫名稱相同的JDBC連接配置
  • 查詢類型Callable Statement
  • 查詢:{call schema.dbpk_utilities.get_user_id(?,?,?,?,?,?,?)}
  • 參數值:S12345, HR, OUT, NULL,NULL,NULL, NULL
  • 參數類型VARCHAR, VARCHAR, INTEGER, VARCHAR, VARCHAR, VARCHAR, VARCHAR
  • 變量名username,hr, id, four, five, six, seven

我得到的錯誤是:

誰能告訴我,爲什麼響應消息?有沒有可能在JMeter中調用存儲過程?我很努力地確定這個請求!

回答

0

無論何時我必須爲JMeter提供一個逗號分隔的列表,我確保在逗號前/後沒有空格。我稱之爲'無空格'規則。

的海報sqeeky也發現這一招here,其中sqeeky說:

沒有逗號分隔PARM名稱,以便代替後的任何空白 '$ {appid_1} $ {appid_2}' (在這裏你可以看到有一個空格分隔ParameterName的值,請指定$ {appid_1},$ {appid_2}作爲ParameterName列表中的值 - 否則將不包含此示例中的$ {appid_2}。

所有三個逗號分隔的列表(參數值,參數類型,變量名稱)違反'沒有空間'的規則。嘗試取出所有三個列表中的所有空格,然後重試。

我結帳the doc不幸的是,我沒有看到「無空格」規則的引用,或者措辭沒有伸手去拿我。

+0

嘿謝謝您的回覆。我嘗試了'無空格規則',但它並沒有解決我的問題。雖然我從現在開始一定會遵循無空間規則!感謝您提供的有趣鏈接和信息 –

0

繼上一篇文章中的'no space rule'後,我發現爲什麼請求使用java.lang.NumberFormatException響應:對於輸入字符串:「OUT」消息。見下面

變量名:甲骨文

SQL查詢:贖回Statament

查詢:????? {通話nspishr.dbpk_user_utilities.get_user_details(,,,,,? ,?)}

參數值: S12345,DMS,OUT,NULL,NULL,NULL,NULL

面值類型: VARCHAR,VARCHAR,OUT INTEGER,VARCHAR,VARCHAR,VARCHAR,VARCHAR

變量名:用戶名,DMS,ID,四,五,六,七隻

注意如何參數在這個調用中被註冊。在我的程序中,參數1和參數2是IN參數。在我的情況下,通過給它們一個參數值S12345和HR,隱含地使這些參數成爲IN參數。

從參數3到參數7都是OUT參數。參數4,5,6和7具有NULL值。因此不需要將它們註冊爲OUT參數。然而,參數3(id)是OUT參數,必須通過在參數值中明確指出OUT,然後在參數類型部分中說出OUT INTEGER來註冊。需要記住的是,您需要在參數值和參數類型中指定OUT。不要忘記參數類型字段中參數的數據類型。即OUT INTEGER,OUT VARCHAR ...

希望這會有所幫助

相關問題