Níže uvedený skript uvádí, jak dosáhnete toho, co hledáte v ReadyAPI / SoapUI
. Všimněte si, že již víte, jak se připojit k gmongo
v Groovy, které musíte přidat tuto logiku do zástupného symbolu podle vloženého komentáře.
Níže je Setup Script
na úrovni testovací sady k vytvoření připojení db.
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
}
Níže je TearDown Script
na úrovni testovací sady pro ukončení připojení db. Vzhledem k tomu, že se jedná o skript ve strženém stavu, připojení se automaticky uzavře, jakmile se dokončí spuštění testovací sady .
testSuite.db?.closeConnection()
Nyní již není potřeba znovu a znovu vytvářet připojení db. Stačí použít níže uvedený skript v Groovy Script
testovací krok k získání stávajícího připojení db .
def conn = context.testCase.testSuite.db?.connection
Pomocí conn
proměnnou, měli byste být schopni provádět dotazy.
Poznámka: Protože připojení k databázi se provádí v Setup Script
testovací sady, pokud právě spustíte testovací případ (tj. testovací sada není vyvolána nebo spuštěna), nemusí se vám připojení podařit. V takových případech ručně spusťte Setup Script
testovací sady.
UPRAVIT: Na základě úprav otázky a úryvku kódu ze strany OP, zde je Setup Script
aktualizované testovací sady . To se stará o implementaci getConnection()
a closeConnection()
na základě úpravy OP. Přidejte/upravte prosím importní příkazy pro třídy Mongo, které se používají, protože si jich opravdu nejsem vědom.
Aktualizovaný skript nastavení testovací sady
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
}
Jak již bylo zmíněno dříve, k získání připojení použijte níže uvedený kód a vysvětlete jej.
context.testCase.testSuite.db?.connection
Groovy má skvělou funkci s názvem ExpandoMetaclass. db
je vložen do testSuite
class a db
je objekt DatabaseDetails
třídu, kterou jsme vytvořili a vytvořili v Setup Script
testovací sady.
A db
obsahuje getConnection()
tj. db.getConnection()
což může být stejné jako db.connection
. To je způsob připojení je k dispozici ve výše uvedeném prohlášení.