【问题标题】:How to connect to MongoDB using SoapUI JDBC Test Step?如何使用 SoapUI JDBC 测试步骤连接到 MongoDB?
【发布时间】:2015-06-05 17:27:16
【问题描述】:

我正在使用 SoapUI 来测试 REST/SOAP 服务。有时我需要连接到 MongoDB 并从数据库中提取一些值。

我一直在初始化数据库。

以下错误片段:

com.eviware.soapui.support.SoapUIException: Failed to init connection for driver[com.mongodb.mongo], connectionString [mongodb://<userName>:<pwd>@<domain>:<port>/<collectionName>]

我无法调用连接。

我做了什么?

  1. 我已经安装了mongoDB驱动“mongodb-driver-3.0.0”@“C:\Program Files\SmartBear\SoapUI-5.1.2\bin\ext”
  2. 下面是我尝试实现它的截图

SoapUI 日志如下:

    Sun Jun 07 14:39:24 IST 2015:ERROR:An error occurred [No suitable driver], see error log for details

Sun Jun 07 14:39:24 IST 2015:ERROR:java.sql.SQLException: No suitable driver
   java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getDriver(Unknown Source)
    at com.eviware.soapui.support.jdbc.JdbcUtils.initConnection(JdbcUtils.java:51)
    at com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcRequestTestStepDesktopPanel$TestConnectionAction.actionPerformed(JdbcRequestTestStepDesktopPanel.java:616)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

我首先看到的是无法通过 mongoDB 的驱动程序类进行连接。

【问题讨论】:

  • 您是否安装了 JDBC 驱动程序?你是在属性里定义的吗?你是怎么连接的?
  • @SiKing 1. 我确实在“C:\Program Files\SmartBear\SoapUI-5.1.2\bin\ext”中安装了 JDBC 驱动程序“mongodb-driver-3.0.0”。 2. 我尝试将它添加到 SoapUI 中的 Flie > Preferences 但在那里找不到任何选项。 3. 我正在尝试通过 SoapUI 测试用例中提供的 JDBC 测试步骤连接 mongoDB。
  • 我已通过 JDBC 测试步骤成功连接到 mysql。我只需要驱动程序名称即可连接到 mongodb。

标签: mongodb jdbc driver soapui


【解决方案1】:

一个可能的选择是在您的 mongodb 上安装 sleepy mongoose,因此它可以响应 HTTP/REST 请求。然后,您可以使用 SOAPUI 中的 HTTP 请求测试步骤直接从 mongo 中提取您想要的任何信息。

如果这有帮助,请告诉我。

【讨论】:

  • 感谢@Dimitri,虽然我只能访问第三方安装的数据库中的一个集合。我还没有在本地安装 mongoDB。我正在提供要访问 db 并获取结果的域名。遇到的问题是无法创建与 mongoDB 的连接,我无法调用 mongodb 的驱动程序类。 :(
【解决方案2】:

您可以在测试用例的“Groovy 测试步骤”中轻松使用以下 groovy 代码并连接到 mongodb。在此之前,请确保 mongodb java 客户端 jar 文件和 gmongo 在您的 soapUI 安装的 {Installation Directory}\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

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多