2012-08-07 64 views
2

我打算使用soapUI來測試REST API框架。Soap UI,REST API,更新數據庫

有沒有辦法通過我可以通過使用soapUI工具插入/更新MongoDB內的數據與文件類型(csv,txt等)中的記錄?

我想要做的是驗證API調用並從數據文件更新數據庫。

+0

什麼是一個soapUI工具? – Paparazzi 2012-08-07 19:31:14

+0

http://www.soapui.org/?utm_expid=56905-6&utm_referrer=http%3A%2F%2Fwww.google.com%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source% 3Dweb%26cd%3D1%26ved%3D0CGwQFjAA%26url%3Dhttp%253A%252F%252Fwww.soapui.org%252F%26ei%3Dim0hUNDcH9LC6gHR3IGwCw%26usg%3DAFQjCNE0DhyxZHa40M-2y2xo7zFzQJHB0A%26sig2%3DaoMucKIAgBOIuFTPYZ_nZA – Sanket 2012-08-07 19:33:50

+0

我會考慮使用mongoexport得到一些data out:http://www.mongodb.org/display/DOCS/mongoexport – ranman 2012-08-07 20:17:20

回答

0

如果你願意使用Groovy腳本,那麼你可以很容易地做到這一點。

把你的jdbc驅動放在SoapUI的bin \ ext目錄下。

https://github.com/mongodb/mongo-java-driver/downloads (可能是在那裏,您可以在MongoDB的)

然後,你需要大概這些東西在你的腳本:

import groovy.sql.Sql 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 
groovyUtils.registerJdbcDriver("org.postgresql.Driver") // NOT SURE WHAT STRING FOR MONGODB 

def connectString = "....." 
sql = Sql.newInstance(connectString) // TEST YOUR CONNECT STRING IN A SQL BROWSER 
def misc = sql.firstRow("SELECT * from table") 

groovy.sql.Sql是非常好的!

http://groovy.codehaus.org/api/groovy/sql/Sql.html

+0

所以我需要的是SoapUI專業版,使用SoapUI配置我的API設置,然後導入jdbc驅動程序,編寫腳本並將標識符與API帖子進行匹配? – Sanket 2012-08-13 16:17:00

+0

你不需要SoapUI pro。你只需要加載JDBC驅動程序,並確保你的連接字符串是好的。然後使用Groovy腳本來執行你的SQL。您可以根據數據匹配在Groovy腳本中進行斷言。 – chrismead 2012-08-13 16:44:07

+0

謝謝克里斯。這很有幫助。那麼這是我的解決方案,如果我需要只是想象 - > http://www.soapui.org/Data-Driven-Testing/storing-data/All-Pages.html – Sanket 2012-08-13 16:59:39

0

您可以輕鬆地使用下面Groovy代碼在你的測試用例「Groovy的測試步驟」,並連接到MongoDB的。在此之前,請確保MongoDB的Java客戶端jar文件和gmongo在你的soapUI安裝{安裝目錄} \ bin \ ext目錄

Gmongo:http://mvnrepository.com/artifact/com.gmongo/gmongo/1.5

MongoDB的Java客戶端:http://mvnrepository.com/artifact/org.mongodb/mongo-java-driver/3.2.2

import com.gmongo.GMongoClient 
import com.gmongo.GMongo 
import com.mongodb.MongoCredential 
import com.mongodb.ServerAddress 

//def credentials = MongoCredential.createMongoCRCredential('admin', 'students', 'admin' as char[]) 

//def client = new GMongoClient(new ServerAddress("127.0.0.1:27017")) 

context.gmongo=new GMongo() 
def db=context.gmongo.getDB("test") 
log.info db.fruit.find().count() 

db.fruit.find().each{ 

    doc->log.info doc 

    }