முக்கிய உள்ளடக்கத்திற்கு தாவு

ரன்னர்

ஒரு ரன்னர் அதாவது இயக்கி WebdriverIO-இல் டெஸ்ட்கள் எப்படி மற்றும் எங்கே இயக்கப்படுகின்றன என்பதை ஒருங்கிணைக்கின்றது. WebdriverIO தற்போது இரண்டு வகையான ரன்னர்களை ஆதரிக்கிறது: உள்ளூர் ரன்னர் மற்றும் உலாவி ரன்னர்.

உள்ளூர் ரன்னர்

உள்ளூர் ரன்னர் உங்கள் ஃபிரேம்வொர்க்கை (எ.கா. Mocha, Jasmine அல்லது Cucumber) ஒரு வேலை செயல்முறைக்குள் துவக்கி, உங்கள் Node.js சூழலில் உள்ள அனைத்து சோதனை கோப்புகளையும் இயக்குகிறது. ஒவ்வொரு சோதனை கோப்பும் ஒரு தனி வேலையாளர் செயல்முறையில் ஒவ்வொரு திறன் அடிப்படையில் இயக்கப்படுகிறது, இது அதிகபட்ச ஒத்திசைவை அனுமதிக்கிறது. ஒவ்வொரு வேலையாளர் செயல்முறையும் ஒற்றை உலாவி நிகழ்வைப் பயன்படுத்துகிறது, இதனால் அது தனது சொந்த உலாவி அமர்வை இயக்குகிறது, இது அதிகபட்ச தனிமைப்படுத்தலை அனுமதிக்கிறது.

ஒவ்வொரு சோதனையும் அதன் சொந்த தனிமைப்படுத்தப்பட்ட செயல்முறையில் இயக்கப்படுவதால், சோதனை கோப்புகளுக்கு இடையே தரவைப் பகிர்வது சாத்தியமில்லை. இதைச் சுற்றி வேலை செய்ய இரண்டு வழிகள் உள்ளன:

wdio.conf.js இல் வேறு எதுவும் வரையறுக்கப்படாவிட்டால், உள்ளூர் ரன்னர் WebdriverIO இல் இயல்புநிலை ரன்னராக இருக்கும்.

நிறுவல்

உள்ளூர் ரன்னரைப் பயன்படுத்த நீங்கள் இதை நிறுவலாம்:

npm install --save-dev @wdio/local-runner

அமைப்பு

உள்ளூர் ரன்னர் WebdriverIO இல் இயல்புநிலை ரன்னர் ஆகும், எனவே இதை உங்கள் wdio.conf.js இல் வரையறுக்க வேண்டிய அவசியமில்லை. நீங்கள் அதை தெளிவாக அமைக்க விரும்பினால், அதை பின்வருமாறு வரையறுக்கலாம்:

// wdio.conf.js
export const {
// ...
runner: 'local',
// ...
}

உலாவி ரன்னர்

உள்ளூர் ரன்னர் இலிருந்து மாறுபட்டு, உலாவி ரன்னர் ஃபிரேம்வொர்க்கை உலாவிக்குள் துவக்கி செயல்படுத்துகிறது. இது நீங்கள் பல சோதனை ஃபிரேம்வொர்க்குகளைப் போல JSDOM இல் அல்லாமல் உண்மையான உலாவியில் யூனிட் சோதனைகள் அல்லது காம்போனன்ட் சோதனைகளை இயக்க அனுமதிக்கிறது.

JSDOM சோதனை நோக்கங்களுக்காக பரவலாகப் பயன்படுத்தப்பட்டாலும், அது இறுதியில் ஒரு உண்மையான உலாவி அல்ல, அத்துடன் மொபைல் சூழல்களை அதனுடன் உருவகிக்க முடியாது. இந்த ரன்னருடன் WebdriverIO நீங்கள் உங்கள் சோதனைகளை உலாவியில் எளிதாக இயக்கவும், பக்கத்தில் காட்டப்படும் கூறுகளுடன் தொடர்புகொள்ள WebDriver கட்டளைகளைப் பயன்படுத்தவும் உங்களை அனுமதிக்கிறது.

JSDOM vs. WebdriverIO-இன் உலாவி ரன்னரில் சோதனைகளை இயக்குவதற்கான ஒரு கண்ணோட்டம்

JSDOMWebdriverIO உலாவி ரன்னர்
1.உங்கள் சோதனைகளை வெப் தரநிலைகளின் மறு-செயல்படுத்தலைப் பயன்படுத்தி Node.js-க்குள் இயக்குகிறது, குறிப்பாக WHATWG DOM மற்றும் HTML தரநிலைகள்உங்கள் சோதனையை ஒரு உண்மையான உலாவியில் செயல்படுத்துகிறது மற்றும் உங்கள் பயனர்கள் பயன்படுத்தும் சூழலில் குறியீட்டை இயக்குகிறது
2.காம்போனன்ட்களுடனான தொடர்புகளை JavaScript மூலம் மட்டுமே உருவகிக்க முடியும்WebdriverIO API பயன்படுத்தி WebDriver நெறிமுறை மூலம் கூறுகளுடன் தொடர்புகொள்ளலாம்
3.Canvas ஆதரவிற்கு கூடுதல் சார்புகள் தேவைப்படுகிறது மற்றும் வரம்புகள் உள்ளனஉண்மையான Canvas API-ஐ அணுகலாம்
4.JSDOM சில எச்சரிக்கைகள் மற்றும் ஆதரிக்கப்படாத Web API-கள் கொண்டுள்ளதுஅனைத்து Web API-களும் ஆதரிக்கப்படுகின்றன, ஏனெனில் சோதனைகள் உண்மையான உலாவியில் இயங்குகின்றன
5.குறுக்கு உலாவி பிழைகளைக் கண்டறிவது சாத்தியமற்றதுமொபைல் உலாவிகள் உள்ளிட்ட அனைத்து உலாவிகளுக்கும் ஆதரவு
6.கூறு போலி நிலைகளை சோதிக்க முடியாது:hover அல்லது :active போன்ற போலி நிலைகளுக்கு ஆதரவு

இந்த ரன்னர் உங்கள் சோதனை குறியீட்டைத் தொகுக்கவும், உலாவியில் ஏற்றவும் Vite பயன்படுத்துகிறது. இது பின்வரும் காம்போனன்ட் ஃபிரேம்வொர்க்குகளுக்கான முன்னமைவுகளுடன் வருகிறது:

  • React
  • Preact
  • Vue.js
  • Svelte
  • SolidJS
  • Stencil

ஒவ்வொரு சோதனை கோப்பு / சோதனை கோப்பு குழுவும் ஒரு பக்கத்திற்குள் இயங்குகிறது, இதன் பொருள் ஒவ்வொரு சோதனைக்கும் இடையே பக்கம் மீண்டும் ஏற்றப்படுகிறது, இது சோதனைகளுக்கு இடையேயான தனிமையை உறுதி செய்கிறது.

நிறுவல்

உலாவி ரன்னரைப் பயன்படுத்த நீங்கள் இதை நிறுவலாம்:

npm install --save-dev @wdio/browser-runner

அமைப்பு

உலாவி ரன்னரைப் பயன்படுத்த, உங்கள் wdio.conf.js கோப்பில் runner பண்பை வரையறுக்க வேண்டும், எ.கா.:

// wdio.conf.js
export const {
// ...
runner: 'browser',
// ...
}

ரன்னர் விருப்பங்கள்

உலாவி ரன்னர் பின்வரும் கட்டமைப்புகளை அனுமதிக்கிறது:

preset

நீங்கள் மேலே குறிப்பிடப்பட்டுள்ள ஃபிரேம்வொர்க்குகளில் ஒன்றைப் பயன்படுத்தி காம்போனன்ட்களை சோதித்தால், அனைத்தும் பெட்டிக்கு வெளியே கட்டமைக்கப்பட்டுள்ளதை உறுதிப்படுத்தும் ஒரு முன்னமைவை வரையறுக்கலாம். இந்த விருப்பத்தை viteConfig உடன் பயன்படுத்த முடியாது.

வகை: vue | svelte | solid | react | preact | stencil
உதாரணம்:

wdio.conf.js
export const {
// ...
runner: ['browser', {
preset: 'svelte'
}],
// ...
}

viteConfig

உங்கள் சொந்த Vite கட்டமைப்பை வரையறுக்கவும். நீங்கள் தனிப்பயன் பொருளை உள்ளிடலாம் அல்லது நீங்கள் மேம்பாட்டிற்கு Vite.js பயன்படுத்தினால் ஏற்கனவே இருக்கும் vite.conf.ts கோப்பை இறக்குமதி செய்யலாம். WebdriverIO சோதனை சாதனத்தை அமைக்க தனிப்பயன் Vite கட்டமைப்புகளை வைத்திருக்கிறது என்பதை நினைவில் கொள்ளவும்.

வகை: string அல்லது UserConfig அல்லது (env: ConfigEnv) => UserConfig | Promise<UserConfig>
உதாரணம்:

wdio.conf.ts
import viteConfig from '../vite.config.ts'

export const {
// ...
runner: ['browser', { viteConfig }],
// அல்லது இவ்வாறு:
runner: ['browser', { viteConfig: '../vites.config.ts' }],
// அல்லது உங்கள் vite கட்டமைப்பில் நிறைய செருகுநிரல்கள் இருந்தால்
// ஒரு செயல்பாட்டைப் பயன்படுத்தவும், மதிப்பு படிக்கும்போது மட்டுமே தீர்க்க விரும்புகிறீர்கள்
runner: ['browser', {
viteConfig: () => ({
// ...
})
}],
// ...
}

headless

true என அமைக்கப்பட்டால், சோதனைகளை ஹெட்லெஸ் முறையில் இயக்க ரன்னர் திறன்களை புதுப்பிக்கும். இயல்பாக இது CI சூழல்களில் இயக்கப்படுகிறது, அங்கு CI சூழல் மாறி '1' அல்லது 'true' என அமைக்கப்பட்டிருக்கும்.

வகை: boolean
இயல்புநிலை: false, CI சூழல் மாறி அமைக்கப்பட்டிருந்தால் true என அமைக்கப்படும்

rootDir

திட்ட ரூட் அடைவு.

வகை: string
இயல்புநிலை: process.cwd()

coverage

WebdriverIO istanbul மூலம் சோதனை காப்பீடு அறிக்கையை ஆதரிக்கிறது. மேலும் விவரங்களுக்கு காப்பீடு விருப்பங்கள் பார்க்கவும்.

வகை: object
இயல்புநிலை: undefined

காப்பீடு விருப்பங்கள்

பின்வரும் விருப்பங்கள் காப்பீடு அறிக்கையை உள்ளமைக்க அனுமதிக்கின்றன.

enabled

காப்பீடு சேகரிப்பை இயக்குகிறது.

வகை: boolean
இயல்புநிலை: false

include

வடிவக் கோலங்களாக காப்பீட்டில் சேர்க்கப்பட்ட கோப்புகளின் பட்டியல்.

வகை: string[]
இயல்புநிலை: [**]

exclude

வடிவக் கோலங்களாக காப்பீட்டில் விலக்கப்பட்ட கோப்புகளின் பட்டியல்.

வகை: string[]
இயல்புநிலை:

[
'coverage/**',
'dist/**',
'packages/*/test{,s}/**',
'**/*.d.ts',
'cypress/**',
'test{,s}/**',
'test{,-*}.{js,cjs,mjs,ts,tsx,jsx}',
'**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx}',
'**/*{.,-}spec.{js,cjs,mjs,ts,tsx,jsx}',
'**/__tests__/**',
'**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*',
'**/.{eslint,mocha,prettier}rc.{js,cjs,yml}',
]

extension

அறிக்கையில் சேர்க்க வேண்டிய கோப்பு நீட்டிப்புகளின் பட்டியல்.

வகை: string | string[]
இயல்புநிலை: ['.js', '.cjs', '.mjs', '.ts', '.mts', '.cts', '.tsx', '.jsx', '.vue', '.svelte']

reportsDirectory

காப்பீட்டு அறிக்கையை எழுதுவதற்கான அடைவு.

வகை: string
இயல்புநிலை: ./coverage

reporter

பயன்படுத்த வேண்டிய காப்பீட்டு அறிக்கையாளர்கள். அனைத்து அறிக்கையாளர்களின் விரிவான பட்டியலுக்கு istanbul ஆவணங்களைப் பார்க்கவும்.

வகை: string[]
இயல்புநிலை: ['text', 'html', 'clover', 'json-summary']

perFile

ஒவ்வொரு கோப்புக்கும் வரம்புகளை சரிபார்க்கவும். உண்மையான வரம்புகளுக்கு lines, functions, branches மற்றும் statements பார்க்கவும்.

வகை: boolean
இயல்புநிலை: false

clean

சோதனைகளை இயக்குவதற்கு முன் காப்பீட்டு முடிவுகளை சுத்தப்படுத்தவும்.

வகை: boolean
இயல்புநிலை: true

lines

வரிகளுக்கான வரம்பு.

வகை: number
இயல்புநிலை: undefined

functions

செயல்பாடுகளுக்கான வரம்பு.

வகை: number
இயல்புநிலை: undefined

branches

கிளைகளுக்கான வரம்பு.

வகை: number
இயல்புநிலை: undefined

statements

கூற்றுகளுக்கான வரம்பு.

வகை: number
இயல்புநிலை: undefined

வரம்புகள்

WebdriverIO உலாவி ரன்னரைப் பயன்படுத்தும்போது, alert அல்லது confirm போன்ற நூல் தடுக்கும் உரையாடல்களை இயல்பாகப் பயன்படுத்த முடியாது என்பதைக் கவனத்தில் கொள்வது முக்கியம். ஏனெனில் அவை வலைப்பக்கத்தைத் தடுக்கின்றன, இதன் பொருள் WebdriverIO பக்கத்துடன் தொடர்பு கொள்ள முடியாது, இது செயல்பாட்டை தொங்கவிடும்.

இத்தகைய சூழ்நிலைகளில், WebdriverIO இந்த API-களுக்கான இயல்புநிலை மாக்குகளை இயல்புநிலை திரும்பும் மதிப்புகளுடன் வழங்குகிறது. இது பயனர் தவறுதலாக ஒத்திசைவான பாப்-அப் வலை API-களைப் பயன்படுத்தினால், செயல்பாடு தொங்க மாட்டாது என்பதை உறுதிப்படுத்துகிறது. இருப்பினும், சிறந்த அனுபவத்திற்காக பயனர் இந்த வலை API-களை மாக் செய்ய பரிந்துரைக்கப்படுகிறது. மாக்கிங் இல் மேலும் படிக்கவும்.

உதாரணங்கள்

காம்போனன்ட் சோதனை பற்றிய ஆவணங்களை கண்டிப்பாக பார்க்கவும் மற்றும் இந்த மற்றும் பல்வேறு ஃபிரேம்வொர்க்குகளைப் பயன்படுத்தும் உதாரணங்களுக்கு உதாரண களஞ்சியத்தைப் பார்க்கவும்.

Welcome! How can I help?

WebdriverIO AI Copilot