O script abaixo aborda como você consegue o que está procurando em
ReadyAPI / SoapUI
. Observe que você já sabe como se conectar ao gmongo
no Groovy que você precisa adicionar essa lógica no espaço reservado seguindo o comentário inline. Abaixo está o nível do conjunto de testes
Setup Script
para criar a conexão 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
}
Abaixo está o nível do conjunto de testes
TearDown Script
para fechar a conexão db. Como isso está no script de desmontagem, a conexão é fechada automaticamente assim que a execução do conjunto de testes é concluída . testSuite.db?.closeConnection()
Agora, não há necessidade de ter passo para criar a conexão db novamente. Você só precisa usar o script abaixo em
Groovy Script
etapa de teste para obter a conexão db existente . def conn = context.testCase.testSuite.db?.connection
Usando
conn
variável, você deve ser capaz de executar as consultas. Observação: Como a conexão db é feita em
Setup Script
do conjunto de testes, se você acabou de executar o caso de teste (ou seja, o conjunto de testes não é invocado ou executado), talvez você não consiga obter a conexão. Nesses casos, execute manualmente o Setup Script
da suíte de testes. EDITAR: Com base na edição do OP para a pergunta e seu snippet de código, aqui está o
Setup Script
do conjunto de testes atualizado . Isso cuida da implementação de getConnection()
e closeConnection()
baseado na edição do OP. Por favor, adicione / edite instruções de importação para as classes Mongo que são usadas, pois não estou realmente ciente delas. Script de configuração do Test Suite atualizado
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
}
Como mencionado anteriormente, para obter a conexão, use o código abaixo e explique-o.
context.testCase.testSuite.db?.connection
Groovy tem um ótimo recurso chamado ExpandoMetaclass.
db
é injetado no testSuite
classe e db
é objeto de DatabaseDetails
classe que criamos e instanciamos em Setup Script
do conjunto de testes. E
db
contém getConnection()
ou seja, db.getConnection()
que também pode ser igual a db.connection
. É assim que a conexão está disponível na declaração acima.