Le script ci-dessous explique comment vous obtenez ce que vous recherchez dans ReadyAPI / SoapUI
. Notez que vous savez déjà comment vous connecter à gmongo
dans Groovy dont vous avez besoin pour ajouter cette logique dans l'espace réservé en suivant le commentaire en ligne.
Ci-dessous le niveau de la suite de tests Setup Script
pour créer la connexion à la base de données.
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
}
Ci-dessous le niveau de la suite de tests TearDown Script
pour fermer la connexion db. Comme il s'agit d'un script de démontage, la connexion se ferme automatiquement dès que l'exécution de la suite de tests est terminée .
testSuite.db?.closeConnection()
Maintenant, il n'est plus nécessaire d'avoir une étape pour créer la connexion db encore et encore. Il vous suffit d'utiliser le script ci-dessous dans Groovy Script
étape de test pour obtenir la connexion à la base de données existante .
def conn = context.testCase.testSuite.db?.connection
Utiliser conn
variable, vous devriez pouvoir exécuter les requêtes.
Remarque : Étant donné que la connexion à la base de données est effectuée dans Setup Script
de la suite de tests, si vous exécutez simplement le cas de test (c'est-à-dire que la suite de tests n'est pas invoquée ou exécutée), vous ne pourrez peut-être pas obtenir la connexion. Dans ce cas, exécutez manuellement le Setup Script
de la suite de tests.
MODIF : Sur la base de la modification de la question par OP et de son extrait de code, voici le Setup Script
de la suite de tests mise à jour . Cela prend en charge l'implémentation de getConnection()
et closeConnection()
basé sur l'édition d'OP. Veuillez ajouter/modifier les déclarations d'importation pour les classes Mongo qui sont utilisées car je ne suis pas vraiment au courant de celles-ci.
Script de configuration de la suite de tests mis à jour
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
}
Comme mentionné précédemment, pour obtenir la connexion, utilisez le code ci-dessous et expliquez-le.
context.testCase.testSuite.db?.connection
Groovy a une grande fonctionnalité appelée ExpandoMetaclass. db
est injecté dans testSuite
classe et db
est l'objet de DatabaseDetails
classe que nous avons créée et instanciée dans Setup Script
de la suite de tests.
Et db
contient getConnection()
c'est-à-dire db.getConnection()
qui peut également être identique à db.connection
. C'est ainsi que la connexion est disponible dans la déclaration ci-dessus.