MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tạo kết nối mongo và làm cho nó tồn tại để thực thi Toàn bộ Bộ thử nghiệm trong Sẵn sàng! API

Tập lệnh dưới đây giải quyết cách bạn đạt được những gì bạn đang tìm kiếm trong ReadyAPI / SoapUI . Lưu ý rằng bạn đã biết cách kết nối với gmongo trong Groovy mà bạn cần thêm logic đó vào trình giữ chỗ bằng cách làm theo dòng nhận xét.

Dưới đây là cấp bộ thử nghiệm Setup Script để tạo kết nối 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 
}

Dưới đây là cấp bộ thử nghiệm TearDown Script để đóng kết nối db. Vì điều này nằm trong tập lệnh rút gọn, nên kết nối sẽ tự động đóng ngay khi hoàn tất quá trình thực thi bộ thử nghiệm .

testSuite.db?.closeConnection()

Giờ đây, bạn không cần phải thực hiện lại bước tạo kết nối db mà chỉ cần sử dụng tập lệnh dưới đây trong Groovy Script bước kiểm tra để lấy kết nối db hiện có .

def conn = context.testCase.testSuite.db?.connection

Sử dụng conn , bạn sẽ có thể thực thi các truy vấn.

Lưu ý: Vì kết nối db được thực hiện trong Setup Script của bộ thử nghiệm, nếu bạn chỉ chạy trường hợp thử nghiệm (tức là bộ thử nghiệm không được gọi hoặc thực thi), bạn có thể không nhận được kết nối. Trong những trường hợp như vậy, hãy thực thi thủ công Setup Script của bộ thử nghiệm.

CHỈNH SỬA: Dựa trên chỉnh sửa của OP đối với câu hỏi và đoạn mã của anh ấy, đây là Setup Script của bộ thử nghiệm được cập nhật . Điều này sẽ xử lý việc triển khai getConnection()closeConnection() dựa trên chỉnh sửa của OP. Vui lòng thêm / chỉnh sửa các câu lệnh nhập cho các lớp Mongo được sử dụng vì tôi không thực sự biết về các lớp đó.

Tập lệnh thiết lập của bộ thử nghiệm đã cập nhật

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 
}

Như đã đề cập trước đó, để có được kết nối, hãy sử dụng mã bên dưới và giải thích nó.

context.testCase.testSuite.db?.connection

Groovy có tính năng tuyệt vời được gọi là ExpandoMetaclass. db được đưa vào testSuite lớp và db là đối tượng của DatabaseDetails lớp mà chúng tôi đã tạo và khởi tạo trong Setup Script của bộ thử nghiệm.

db chứa getConnection() tức là db.getConnection() cũng có thể giống như db.connection . Đó là cách kết nối có sẵn trong câu lệnh trên.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy vấn Mongoose trong đó giá trị không rỗng

  2. Triển khai cho tất cả các lớp BsonIgnoreExtraElements

  3. tìm trong tài liệu BSON với trình điều khiển MongoDB C ++

  4. Làm thế nào để cài đặt php-mongo trên CentOS 5.3?

  5. MomentJS không chuyển đổi ngày chính xác