2017-08-01 18 views
2

要繼續進行數據庫驗證,我需要比較DB中的記錄以及在先前的REST響應中動態生成的數據,使用SoapUI從自定義屬性參數化SOAP UI中的JDBC SQL查詢

我已經抓獲使用Property Transfer步屬性值,並存儲在一個自定義屬性的測試用例成功即使用屬性擴展所需要的價值,說${TestCase#customerId}

我的目的是使用存儲在特定值在自定義屬性中查詢我期待的結果,在JDBC Request測試步驟中。

我所用參數草擬的查詢是如下:

Select * 
From ABC.SEC_CUST 
Where ABC.SEC_CUST.CUSTOMER_ID = ${TestCase#customerId} 

我執行後接收所述的響應如下所示。

獲取響應時出錯; java.sql.SQLSyntaxErrorException:ORA-00911:無效的字符。

但是,當我運行沒有參數化值的查詢時,它執行完美。在那裏,我傾向於結論,因爲在我提到查詢中的參數的方式中存在語法問題。

但是,我無法找到在SoapUI查詢中提及參數的正確方法。

任何有經驗的人都可以在SoapUI上協助我嗎?

+0

請檢查該解決方案,看看是否能解決問題。 – Rao

+0

hirosht,你有機會嘗試答案嗎? – Rao

+0

@Rao,是的,你的解決方案完美無缺! – hirosht

回答

2

這是行不通的,因爲使用屬性擴展其只被SoapUI的,而不是爲SQL query

爲了得到它同樣的工作,你需要定義在頂部的變量爲所有打算在SQL查詢要使用的參數。

這裏的屏幕截圖,在解釋如何使用相同的:

enter image description here

0

試試這個。

Select * From ABC.SEC_CUST 
Where ABC.SEC_CUST.CUSTOMER_ID = :customerId 
0

你忘了「#」

Select * 
From ABC.SEC_CUST 
Where ABC.SEC_CUST.CUSTOMER_ID = ${#TestCase#customerId} 
+0

另外,如果customer_id不是數據庫中的數字值(糟糕的設計發生),則必須添加簡單的引號:Where ABC.SEC_CUST.CUSTOMER_ID ='$ {#TestCase#customerId}' – Tom