2012-08-07 59 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 

    }