Skrip di bawah ini membahas bagaimana Anda mencapai apa yang Anda cari di ReadyAPI / SoapUI
. Perhatikan bahwa Anda sudah tahu cara terhubung ke gmongo
di Groovy yang perlu Anda tambahkan logika itu di placeholder dengan mengikuti komentar sebaris.
Di bawah ini adalah Setup Script
tingkat suite pengujian untuk membuat koneksi 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
}
Di bawah ini adalah TearDown Script
tingkat suite pengujian untuk menutup koneksi db. Karena ini dalam skrip pembongkaran, koneksi ditutup secara otomatis segera setelah eksekusi rangkaian pengujian selesai .
testSuite.db?.closeConnection()
Sekarang tidak perlu lagi langkah untuk membuat koneksi db lagi dan lagi. Anda hanya perlu menggunakan script di bawah ini di Groovy Script
langkah uji untuk mendapatkan koneksi db yang ada .
def conn = context.testCase.testSuite.db?.connection
Menggunakan conn
variabel, Anda harus dapat menjalankan kueri.
Catatan : Karena koneksi db dilakukan di Setup Script
dari test suite, jika Anda hanya menjalankan test case (yaitu, test suite tidak dipanggil atau dieksekusi), Anda mungkin tidak bisa mendapatkan koneksi. Dalam kasus seperti itu, jalankan Setup Script
secara manual dari rangkaian pengujian.
EDIT: Berdasarkan editan OP untuk pertanyaan dan cuplikan kodenya, berikut adalah Setup Script
suite pengujian yang diperbarui . Ini menangani implementasi getConnection()
dan closeConnection()
berdasarkan editan OP. Harap tambahkan / edit pernyataan impor untuk kelas Mongo yang digunakan karena saya tidak begitu mengetahuinya.
Skrip Pengaturan Test Suite yang Diperbarui
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
}
Seperti yang disebutkan sebelumnya, untuk mendapatkan koneksi, gunakan kode di bawah ini dan jelaskan.
context.testCase.testSuite.db?.connection
Groovy memiliki fitur hebat yang disebut ExpandoMetaclass. db
disuntikkan ke testSuite
kelas dan db
adalah objek dari DatabaseDetails
class yang kita buat dan instantiated di Setup Script
dari rangkaian tes.
Dan db
berisi getConnection()
yaitu, db.getConnection()
yang juga bisa sama dengan db.connection
. Begitulah cara koneksi tersedia dalam pernyataan di atas.