சோதனை தொகுப்பை ஒழுங்கமைத்தல்
திட்டங்கள் வளர்ச்சியடையும்போது, தவிர்க்க முடியாத வகையில் அதிகமான ஒருங்கிணைப்பு சோதனைகள் சேர்க்கப்படுகின்றன. இது கட்டிய நேரத்தை அதிகரித்து, உற்பத்தித்திறனை குறைக்கிறது.
இதைத் தடுக்க, நீங்கள் உங்கள் சோதனைகளை இணையாக இயக்க வேண்டும். WebdriverIO ஏற்கனவே ஒவ்வொரு spec (அல்லது Cucumber இல் feature file) ஐ ஒரு தனி அமர்வில் இணையாக சோதிக்கிறது. பொதுவாக, ஒரு spec கோப்பில் ஒரு அம்சத்தை மட்டுமே சோதிக்க முயற்சிக்கவும். ஒரு கோப்பில் மிக அதிகமான அல்லது மிகக் குறைவான சோதனைகளைக் கொண்டிருக்க முயற்சிக்காதீர்கள். (இருப்பினும், இங்கு பொன்னான விதி எதுவும் இல்லை.)
உங்கள் சோதனைகளுக்கு பல spec கோப்புகள் இருக்கும்போது, உங்கள் சோதனைகளை ஒரே நேரத்தில் இயக்கத் தொடங்க வேண்டும். அவ்வாறு செ ய்ய, உங்கள் கட்டமைப்பு கோப்பில் maxInstances
பண்புக்கூறை சரிசெய்யவும். WebdriverIO உங்கள் சோதனைகளை அதிகபட்ச ஒத்திசைவுடன் இயக்க அனுமதிக்கிறது - அதாவது எத்தனை கோப்புகள் மற்றும் சோதனைகள் இருந்தாலும், அவை அனைத்தும் இணையாக இயங்கலாம். (இது இன்னும் உங்கள் கணினியின் CPU, ஒத்திசைவு கட்டுப்பாடுகள் போன்ற சில வரம்புகளுக்கு உட்பட்டது.)
உங்களிடம் 3 வெவ்வேறு capabilities (Chrome, Firefox, மற்றும் Safari) இருந்து,
maxInstances
ஐ1
என அமைத்திருந்தால், WDIO சோதனை இயக்கி 3 செயல்முறைகளைத் தொடங்கும். எனவே, உங்களிடம் 10 spec கோப்புகள் இருந்துmaxInstances
ஐ10
என அமைத்தால், அனைத்து spec கோப்புகளும் ஒரே நேரத்தில் சோதிக்கப்படும், மற்றும் 30 செயல்முறைகள் தொடங்கப்படும்.
அனைத்து உலாவிகளுக்கும் பண்புக்கூறை அமைக்க maxInstances
பண்புக்கூறை உலகளாவிய அளவில் வரையறுக்கலாம்.
உங்கள் சொந்த WebDriver கட்டமைப்பை இயக்கினா ல், (எடுத்துக்காட்டாக) ஒரு உலாவிக்கு மற்றொன்றை விட அதிக திறன் இருக்கலாம். அந்த சந்தர்ப்பத்தில், உங்கள் capability பொருளில் maxInstances
வரம்பைக் குறிப்பிடலாம்:
// wdio.conf.js
export const config = {
// ...
// set maxInstance for all browser
maxInstances: 10,
// ...
capabilities: [{
browserName: 'firefox'
}, {
// maxInstances can get overwritten per capability. So if you have an in-house WebDriver
// grid with only 5 firefox instance available you can make sure that not more than
// 5 instance gets started at a time.
browserName: 'chrome'
}],
// ...
}
முக்கிய கட்டமைப்பு கோப்பில் இருந்து மரபுரிமை
நீங்கள் உங்கள் சோதனைத் தொகுப்பை பல சூழல்களில் (எ.கா., dev மற்றும் integration) இயக்கினால், விஷயங்களை நிர்வகிக்க பல கட்டமைப்பு கோப்புகளைப் பயன்படுத்துவது உதவியாக இருக்கும்.
பக்க பொருள் கருத்து போலவே, முதலில் ஒரு முக்கிய கட்டமைப்பு கோப்பு தேவைப்படும். இது நீங்கள் சூழல்களில் பகிரும் அனைத்து கட்டமைப்புகளையும் கொண்டுள்ளது.
பின்னர் ஒவ்வொரு சூழலுக்கும் மற்றொரு கட்டமைப்பு கோப்பை உருவாக்கி, மு க்கிய கட்டமைப்பை சூழல்-குறிப்பிட்ட கட்டமைப்புகளுடன் நிரப்பவும்:
// wdio.dev.config.js
import { deepmerge } from 'deepmerge-ts'
import wdioConf from './wdio.conf.js'
// have main config file as default but overwrite environment specific information
export const config = deepmerge(wdioConf.config, {
capabilities: [
// more caps defined here
// ...
],
// run tests on sauce instead locally
user: process.env.SAUCE_USERNAME,
key: process.env.SAUCE_ACCESS_KEY,
services: ['sauce']
}, { clone: false })
// add an additional reporter
config.reporters.push('allure')
சோதனை Specs களை தொகுப்புகளில் குழுமித்தல்
நீங்கள் சோதனை specs களை தொகுப்புகளில் குழுமித்து, அனைத்தையும் இயக்குவதற்குப் பதிலாக குறிப்பிட்ட தொகுப்புகளை இயக்கலாம்.
முதலில், உங்கள் WDIO கட்டமைப்பில் உங்கள் தொகுப்புகளை வரையறுக்கவும்:
// wdio.conf.js
export const config = {
// define all tests
specs: ['./test/specs/**/*.spec.js'],
// ...
// define specific suites
suites: {
login: [
'./test/specs/login.success.spec.js',
'./test/specs/login.failure.spec.js'
],
otherFeature: [
// ...
]
},
// ...
}
இப்போது, நீங்கள் ஒரு தொகுப்பை மட்டும் இயக்க விரும்பினால், தொகுப்பு பெயரை CLI வாதமாக அனுப்பலாம்:
wdio wdio.conf.js --suite login
அல்லது, ஒரே நேரத்தில் பல தொகுப்புகளை இயக்கலாம்:
wdio wdio.conf.js --suite login --suite otherFeature
சோதனை Specs களை தொடர்ச்சியாக இயக்க குழுமித்தல்
மேலே விவரிக்கப்பட்டுள்ளபடி, சோதனைகளை ஒரே நேரத்தில் இயக்குவதில் நன்மைகள் உள்ளன. இருப்பினும், சோதனைகளை ஒன்றாக குழுமித்து ஒரு தனிப்பட்ட நிகழ்வில் தொடர்ச்சியாக இயக்குவது பயனுள்ளதாக இருக்கும் சந்தர்ப்பங்கள் உள்ளன. இதற்கான எடுத்துக்காட்டுகள் பெரும்பாலும் பெரிய அமைப்பு செலவுகள் உள்ள இடங்களில் உள்ளன, எ.கா. குறியீட்டை மாற்றுதல் அல்லது cloud instances ஐ வழங்குதல், ஆனால் இந்த திறனில் பயனடையும் மேம்பட்ட பயன்பாட்டு மாதிரிகளும் உள்ளன.
சோதனைகளை ஒரு தனி நிகழ்வில் இயக்க குழுமிக்க, specs வரையறையில் அவற்றை ஒரு array ஆக வரையறுக்கவும்.
"specs": [
[
"./test/specs/test_login.js",
"./test/specs/test_product_order.js",
"./test/specs/test_checkout.js"
],
"./test/specs/test_b*.js",
],
மேலே உள்ள எடுத்துக்காட்டில், 'test_login.js', 'test_product_order.js' மற்றும் 'test_checkout.js' சோதனைகள் ஒரு தனி நிகழ்வில் தொடர்ச்சியாக இயக்கப்படும், மற்றும் "test_b*" சோதனைகள் ஒவ்வொன்றும் தனிப்பட்ட நிகழ்வுகளில் ஒரே நேரத்தில் இயக்கப்படும்.
தொகுப்புகளில் வரையறுக்கப்பட்ட specs களை குழுமிப்பதும் சாத்தியமாகும், எனவே இப்போது நீங்கள் தொகுப்புகளை இவ்வாறு வரையறுக்கலாம்:
"suites": {
end2end: [
[
"./test/specs/test_login.js",
"./test/specs/test_product_order.js",
"./test/specs/test_checkout.js"
]
],
allb: ["./test/specs/test_b*.js"]
},
இ ந்த வழக்கில் "end2end" தொகுப்பின் அனைத்து சோதனைகளும் ஒரு தனி நிகழ்வில் இயக்கப்படும்.
ஒரு pattern பயன்படுத்தி தொடர்ச்சியாக சோதனைகளை இயக்கும்போது, அது spec கோப்புகளை அகரவரிசை வரிசையில் இயக்கும்
"suites": {
end2end: ["./test/specs/test_*.js"]
},