Forum Discussion

elenal's avatar
elenal
Occasional Contributor
7 years ago

MongoDB connection fails in ReadyAPI 2.2.0

Hi!

I have a following script to connect to Mongo which I am using in SoapUI Free version and it's working fine:

@Grab(group='com.gmongo', module='gmongo', version='1.5')

import com.gmongo.GMongo
import com.mongodb.MongoCredential
import com.mongodb.*
import com.mongodb.ServerAddress
import com.gmongo.*
import com.mongodb.MongoURI
import com.mongodb.DBCursor;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBList

def mongoendpoint = context.expand( '${#Project#mongoendpoint}' )
def mongocollection=context.expand( '${#Project#mongocollection_ignition}' )
def mongo= new GMongo (new MongoURI(mongoendpoint))
def clientId = context.expand( '${#Project#clientId}' )
def db = mongo.getDB(mongocollection)
def collection = db.getCollection("Collection")
def test=collection.findOne(_id:clientId).toString()

log.info ("Mongodb parsing finished")

We recently upgraded to paid version (ReadyAPI 2.2.0) and I'm getting errors when executing the same script:

Username/password are supplied as part of mongoendpoint variable.

 

Is ReadyAPI using a different approach? Was trying using mongoClient authentification instead. Connection is set up, but I'm getting timeouts when it actually fetches data

def credential = MongoCredential.createMongoCRCredential('s**','admin', '**'.toCharArray())

def mongoClient = new MongoClient( new ServerAddress("**", **), [ credential ] )
 
def db = mongoClient.getDB(mongocollection)
def collection = db.getCollection("**")
assert collection instanceof com.mongodb.DBCollection

// get timeout if try to execute findOne
collection.findOne(**).config

1 Reply

  • elenal's avatar
    elenal
    Occasional Contributor

    Seems like it's a problem with ReadyAPI 2.2.0

    Rolled back to ReadyAPI 2.1.0 and everything works perfectly. Raised a support ticket with SmartBear