MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Buat koneksi mongo dan hidupkan untuk eksekusi Seluruh Test Suite di Ready!API

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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Luwak, indeks lokasi array

  2. mongodb tidak dapat melakukan transaksi di Go dan selalu mendapatkan Tidak dapat membuat namespace dalam transaksi multi-dokumen

  3. Scotty Menggunakan MongoDB

  4. Mongo DB $atau kueri dalam PHP

  5. Apakah kursor MongoDB tumbuh secara otomatis ketika saya menambahkan dokumen?