Das folgende Skript beschreibt, wie Sie in ReadyAPI / SoapUI
erreichen, wonach Sie suchen . Beachten Sie, dass Sie bereits wissen, wie Sie sich mit gmongo
verbinden In Groovy müssen Sie diese Logik in den Platzhalter einfügen, indem Sie dem Kommentar inline folgen.
Unten ist das Setup Script
auf Ebene der Testsuite um die DB-Verbindung herzustellen.
class DatabaseDetails {
def server
def user
def password
def log
def getConnection() {
log.info 'connection created'
//Write logic to create connection
}
def closeConnection() {
log.info 'Closing connection'
//Write logic to close connection
}
}
//Change server, user, password values according to your environment
def db = [ server:'localhost', user:'dbuser', password: 'dbuserpasswd', log: log] as DatabaseDetails
if (!db.connection) {
db.connection
testSuite.metaClass.db = db
}
Unten ist das TearDown Script
auf Ebene der Testsuite um die DB-Verbindung zu schließen. Da es sich um ein Teardown-Skript handelt, wird die Verbindung automatisch geschlossen, sobald die Ausführung der Testsuite abgeschlossen ist .
testSuite.db?.closeConnection()
Jetzt ist es nicht mehr nötig, die DB-Verbindung immer wieder neu zu erstellen. Sie müssen nur das folgende Skript in Groovy Script
verwenden Testschritt, um die vorhandene DB-Verbindung abzurufen .
def conn = context.testCase.testSuite.db?.connection
Mit conn
Variable, sollten Sie in der Lage sein, die Abfragen auszuführen.
Hinweis: Da die DB-Verbindung im Setup Script
erfolgt der Testsuite, wenn Sie nur den Testfall ausführen (d. h. die Testsuite wird nicht aufgerufen oder ausgeführt), können Sie möglicherweise keine Verbindung herstellen. Führen Sie in solchen Fällen das Setup Script
manuell aus der Testsuite.
BEARBEITEN: Basierend auf der Bearbeitung der Frage durch OP und seinem Codeausschnitt ist hier das Setup Script
der aktualisierten Testsuite . Dies kümmert sich um die Implementierung von getConnection()
und closeConnection()
basierend auf der Bearbeitung von OP. Bitte fügen Sie Importanweisungen für verwendete Mongo-Klassen hinzu / bearbeiten Sie sie, da mir diese nicht wirklich bekannt sind.
Aktualisiertes Setup-Skript der Test Suite
import com.gmongo.*
import com.mongodb.*
class DatabaseDetails {
def context
def log
def mongoClient
def mongoDB
def getConnection() {
log.info 'Creating connection.'
//Write logic to create connection
if (!mongoDB){
def credentials = MongoCredential.createCredential(
context.expand('${#Project#MongoUser}'),
context.expand('${#Project#MongoDatabase}'),
context.expand('${#Project#MongoPassword}') as char[])
mongoClient = new MongoClient( new ServerAddress(context.expand('${#Project#MongoServer}')),Arrays.asList(credentials) )
mongoDB = new GMongo( mongoClient ).getDB(context.expand('${#Project#MongoDatabase}'))
}
mongoDB
}
def closeConnection() {
log.info 'Closing connection'
//Write logic to close connection
mongoClient.close()
}
}
def db = [ context: context, log: log] as DatabaseDetails
if (!db.connection) {
db.connection
testSuite.metaClass.db = db
}
Wie bereits erwähnt, verwenden Sie zum Herstellen der Verbindung den folgenden Code und erklären ihn unten.
context.testCase.testSuite.db?.connection
Groovy hat ein großartiges Feature namens ExpandoMetaclass. db
wird in testSuite
eingefügt Klasse und db
ist Objekt von DatabaseDetails
Klasse, die wir im Setup Script
erstellt und instanziiert haben der Testsuite.
Und db
enthält getConnection()
d.h. db.getConnection()
was auch dasselbe sein kann wie db.connection
. So entsteht Verbindung ist in der obigen Anweisung verfügbar.