முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்

பகிரப்பட்ட சேமிப்பக சேவை

முக்கிய செயல்முறை மற்றும் வேலையாட்கள் (specs) இடையே தரவை பரிமாறிக் கொள்ளுங்கள்.

நிறுவல்​

@wdio/shared-store-service ஐ உங்கள் package.json இல் dev dependency ஆக வைத்திருப்பது எளிதான வழி:

npm install @wdio/shared-store-service --save-dev

WebdriverIO எவ்வாறு நிறுவுவது என்பதற்கான வழிமுறைகளை இங்கே காணலாம்.

பயன்பாடு​

key (string) மூலம் சேமிப்பகத்திற்கு/இருந்து மதிப்பை (ஒரு சாதாரண பொருள்) பெற/அமைக்க. key எந்த தன்னிச்சையான சரமாகவும் இருக்கலாம், ஆனால் * ஒதுக்கப்பட்டுள்ளது, ஏனெனில் இது முழு சேமிப்பகத்தையும் பெற அனுமதிக்கிறது.

மதிப்புகளை அமைத்தல்​

சேமிப்பகத்தில் மதிப்புகளை அமைக்க அழைக்கவும்:

await browser.sharedStore.set('key', 'foobar123')

மதிப்புகளைப் பெறுதல்​

சேமிப்பகத்திலிருந்து மதிப்புகளைப் பெற அழைக்கவும்:

const value = await browser.sharedStore.get('key')
console.log(value) // returns "foobar123"

நீங்கள் * key ஐப் பயன்படுத்தி அனைத்து key மதிப்புகளையும் பெறலாம்:

const store = await browser.sharedStore.get('*')
console.log(value) // returns `{ key: "foobar" }`

WDIO Hooks இல் சேமிப்பகத்தை அணுகுதல்​

நீங்கள் setValue மற்றும் getValue async handlers ஐ நேரடியாக அணுகலாம். நீங்கள் await சொற்றொடருடன் அவற்றை சரியாக அழைப்பதை உறுதிசெய்து கொள்ளுங்கள்.

// wdio.conf.js
import { setValue, getValue } from '@wdio/shared-store-service'

export const config = {
// ...
onPrepare: [async function (config, capabilities) {
await setValue('foo', 'bar')
}],
// ...
after: async () => {
const value = await getValue('foo')
// ...
}

முக்கியம்! ஒவ்வொரு spec கோப்பும் மற்ற specs இலிருந்து தனித்தனியாகவும் தனிமையாகவும் இருக்க வேண்டும். சேவையின் யோசனை மிகவும் குறிப்பிட்ட சூழல் அமைப்பு சிக்கல்களைக் கையாள்வதாகும். சோதனை நிறைவேற்ற தரவைப் பகிர்வதைத் தவிர்க்கவும்!

வள குழுக்கள்​

ஒவ்வொரு வேலையாளருக்கும் ஒதுக்கப்பட வேண்டிய வளங்களுக்காக வேலையாள் நூல்கள் போட்டியிடுகின்றன என்றால், நீங்கள் Resource Pool API ஐப் பயன்படுத்தலாம்:

// wdio.conf.js
import { setResourcePool, getValueFromPool, addValueToPool } from '@wdio/shared-store-service'

export const config = {
maxInstances: 2,
// ...
onPrepare: async function (config, capabilities) {
await setResourcePool('availableUrls', ['url01.com', 'url02.com'])
},
// ...
beforeSession: async (conf) => {
conf.baseUrl = await getValueFromPool('availableUrls');
},
// ...
afterSession: async (conf) => {
// worker returns the used resource for next workers to use
await addValueToPool('availableUrls', conf.baseUrl);
}

இந்த எடுத்துக்காட்டு இரண்டு வேலையாட்களும் ஒரே baseUrl ஐப் பயன்படுத்துவதில்லை என்பதை உறுதிசெய்கிறது. தனித்துவமான url அது விடுவிக்கப்படும் வரை ஒரு வேலையாளருக்கு மட்டுமே ஒதுக்கப்படுகிறது.

கட்டமைப்பு​

சேவைகள் பட்டியலில் shared-store ஐச் சேர்க்கவும், உங்கள் சோதனையில் browser scope இல் sharedStore பொருள் உங்களுக்கு அணுகக்கூடியதாக இருக்கும்.

// wdio.conf.js
export const config = {
// ...
services: ['shared-store'],
// ...
};

நீங்கள் typescript ஐப் பயன்படுத்துகிறீர்கள் என்றால், உங்கள் compilerOptions.types இல் @wdio/shared-store-service ஐச் சேர்ப்பதை உறுதிசெய்யவும்:

{
"compilerOptions": {
"types": ["node", "@wdio/globals/types", "@wdio/shared-store-service"],
}
}

Welcome! How can I help?

WebdriverIO AI Copilot