नीचे दिए गए स्क्रिप्ट में पता चलता है कि ReadyAPI / SoapUI
में आप जो खोज रहे हैं उसे कैसे हासिल करते हैं? . ध्यान दें कि आप पहले से ही जानते हैं कि gmongo
. से कैसे जुड़ना है ग्रूवी में आपको कमेंट इनलाइन का पालन करके प्लेसहोल्डर में उस तर्क को जोड़ना होगा।
नीचे परीक्षण सूट स्तर है Setup Script
डीबी कनेक्शन बनाने के लिए।
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
}
नीचे परीक्षण सूट स्तर है TearDown Script
डीबी कनेक्शन बंद करने के लिए। चूंकि यह टियर डाउन स्क्रिप्ट में है, टेस्ट सूट का निष्पादन पूरा होते ही कनेक्शन अपने आप बंद हो जाता है ।
testSuite.db?.closeConnection()
अब, बार-बार डीबी कनेक्शन बनाने के लिए कदम उठाने की आवश्यकता नहीं है। आपको बस Groovy Script
में नीचे दी गई स्क्रिप्ट का उपयोग करने की आवश्यकता है। मौजूदा डीबी कनेक्शन प्राप्त करने के लिए . परीक्षण चरण ।
def conn = context.testCase.testSuite.db?.connection
conn
का उपयोग करना चर, आप प्रश्नों को निष्पादित करने में सक्षम होना चाहिए।
नोट : चूंकि डीबी कनेक्शन Setup Script
में किया जाता है परीक्षण सूट का, यदि आप अभी परीक्षण केस चलाते हैं (यानी, परीक्षण सूट लागू या निष्पादित नहीं किया गया है), तो आप कनेक्शन प्राप्त करने में सक्षम नहीं हो सकते हैं। ऐसे मामलों में, Setup Script
को मैन्युअल रूप से निष्पादित करें परीक्षण सूट का।
संपादित करें: प्रश्न में ओपी के संपादन और उसके कोड स्निपेट के आधार पर, यहां अद्यतन परीक्षण सूट की Setup Script
है . यह getConnection()
. के क्रियान्वयन का ध्यान रखता है और closeConnection()
ओपी के संपादन के आधार पर। कृपया मोंगो कक्षाओं के लिए आयात विवरण जोड़ें / संपादित करें जिनका उपयोग किया जाता है क्योंकि मुझे वास्तव में उनके बारे में पता नहीं है।
अपडेट किया गया टेस्ट सूट की सेटअप स्क्रिप्ट
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
}
जैसा कि पहले उल्लेख किया गया है, कनेक्शन प्राप्त करने के लिए, नीचे दिए गए कोड का उपयोग करें और इसे नीचे समझाएं।
context.testCase.testSuite.db?.connection
Groovy में ExpandoMetaclass नामक एक बड़ी विशेषता है। db
testSuite
में इंजेक्ट किया जाता है क्लास और db
DatabaseDetails
का उद्देश्य है क्लास जिसे हमने Setup Script
. में बनाया और इंस्टेंट किया परीक्षण सूट का।
और db
इसमें getConnection()
शामिल है यानी, db.getConnection()
जो db.connection
. के समान भी हो सकता है . इस तरह कनेक्शन उपरोक्त कथन में उपलब्ध है।