ุฃุชู…ุชุฉ ุงู„ู…ูŠูƒุฑูˆููˆู†ุงุช ุŒ ุฃูˆ ูƒูŠู ูŠุชู… ุงุฎุชุจุงุฑ ู…ูƒุชุจุงุช ุงู„ู…ูƒูˆู†ุงุช ููŠ Tinkoff

ูŠุจุฏูˆ ุฃู†ู‡ ู…ู† ุงู„ุตุนุจ ุชุฎูŠู„ ุชุทุจูŠู‚ ูˆูŠุจ ู„ุง ูŠุณุชุฎุฏู… ุจู†ูŠุฉ microfront ู„ูŠูƒูˆู† ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ุชู†ููŠุฐ ุชุทุจูŠู‚ ู…ุฑู† ูˆุนู…ู„ูŠ. ูˆูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ุฃูŠ ู†ู‡ุฌ ู…ุนู…ุงุฑูŠ ุŒ ู…ู† ุงู„ุถุฑูˆุฑูŠ ุชูˆููŠุฑ ุงุฎุชุจุงุฑ ุนุงู„ูŠ ุงู„ุฌูˆุฏุฉ ู„ู„ู…ูƒูˆู†ุงุช ุงู„ู…ุทูˆุฑุฉ ููŠ ุงู„ู…ูŠูƒุฑูˆููˆู†ุฏ.


ูˆู„ูƒู† ุฃูŠู† ูŠุณุชุญู‚ ุงู„ุฃู…ุฑ ูˆู…ุง ุงู„ุฐูŠ ูŠู†ุชุธุฑ ุฃูŠ ุดุฎุต ูŠุฏุฎู„ ู…ุณุงุฑ ุฃุชู…ุชุฉ ุงู„ูˆุงุฌู‡ุฉ ุงู„ุตุบูŠุฑุฉ ุŒ ุนู†ุฏู…ุง ุงุนุชุงุฏ ุงู„ูƒุซูŠุฑูˆู† ุนู„ู‰ ุงุฎุชุจุงุฑ ุงู„ุชุทุจูŠู‚ุงุช ุงู„ุชูŠ ุชู… ุชุฌู…ูŠุนู‡ุง ุจุงู„ูุนู„ ู…ู† ุงู„ู‚ุทุนุŸ



ู…ู‡ู„ุง. ุงุณู…ูŠ ุฃู„ูƒุณู†ุฏุฑ ููˆุฑูˆุจูŠ ุŒ ูˆุฃู†ุง ู…ุชุฎุตุต ุฑุงุฆุฏ ููŠ ุฃุชู…ุชุฉ ุงู„ุงุฎุชุจุงุฑ ููŠ ุชูŠู†ูƒูˆู. ููŠ ู‡ุฐู‡ ุงู„ู…ู‚ุงู„ุฉ ุณุฃุญุงูˆู„ ุฃู† ุฃุฎุจุฑูƒ ุจุฅูŠุฌุงุฒ ูƒูŠู ุจุฏุฃู†ุง ุงู„ุชุดุบูŠู„ ุงู„ุขู„ูŠ ู„ู„ูˆุงุฌู‡ุฉ ุงู„ู…ุตุบุฑุฉ ุŒ ูˆู…ุง ู‡ูŠ ุงู„ู…ุดุงูƒู„ ุงู„ุชูŠ ูˆุงุฌู‡ู†ุงู‡ุง ูˆุงู„ู†ุชุงุฆุฌ ุงู„ุชูŠ ุญุตู„ู†ุง ุนู„ูŠู‡ุง.


ุชุณุชู†ุฏ ู‡ุฐู‡ ุงู„ู…ู‚ุงู„ุฉ ุฅู„ู‰ ุชู‚ุฑูŠุฑูŠ ู…ู† ู…ุคุชู…ุฑ Heisenbug . ูŠุชูƒูˆู† ู…ู† ู‚ุณู…ูŠู†:


  1. ู‚ุตุฉ ุนู† ู…ูˆุถูˆุน ุงู„ุงุฎุชุจุงุฑ ูˆุงุฎุชูŠุงุฑ ุงู„ุฃุฏูˆุงุช.
  2. ุงู„ุฃุชู…ุชุฉ: ุงู„ุฃุณุงู„ูŠุจ ูˆุงู„ู…ุดุงูƒู„ ูˆุญู„ูˆู„ู‡ุง.

ูŠู…ูƒู† ู„ุฃูˆู„ุฆูƒ ุงู„ุฐูŠู† ูŠุฑุบุจูˆู† ููŠ ู…ุนุฑูุฉ ุทุฑู‚ ุงุฎุชุจุงุฑ ุงู„ูˆุงุฌู‡ุฉ ุงู„ุตุบุฑู‰ ููŠ ุฃู‚ุฑุจ ูˆู‚ุช ู…ู…ูƒู† ุงู„ู…ุชุงุจุนุฉ ุจุฃู…ุงู† ุฅู„ู‰ ู‚ุณู… "ุฃุชู…ุชุฉ ุงุฎุชุจุงุฑ ุงู„ูˆุงุฌู‡ุฉ ุงู„ุตุบุฑู‰".


ู…ูˆุถูˆุน ุงู„ุงุฎุชุจุงุฑ


โ€” . .


โ€” , , โ€” . ( ) , . โ€” .



, , , :


  • . F5 โ€” . , .
  • , , .
  • . โ€” , โ€” , โ€” .
  • .

20 ( , ). : , , , . , , Form Builder, . Form Builder



. , โ€” . โ€” , . , , , . .


, . , , , UI.


. โ€” .
:


  1. .
  2. .
  3. .


QA- . , , , - .


, , Storybook.


Storybook:



:


  • Stories โ€” . โ€” Story.
  • , , .
  • Knobs โ€” props, live- , .
  • โ€” , , .

:


  • , (, , -, , ) , .
  • , , , .
  • . .


:


  • , โ€” Puppeteer, WebdriverIO ( wdio). Wdio Firefox, Safari IE 11.
  • Allure Report.
  • .

CodeceptJS. , , โ€” Puppeteer, WebDriverIO, Appium Playwright, โ€” .


:


Scenario('   ,   ', async (I) => {
  await I.amOnStory(stories('url'))

  await I.fillField(' ', '01.01.1990')
  await I.fillField('   ', '1111111111')
  await I.fillField('   ', '01.01.2008')
  await I.fillField('   ', '2008')

  await I.clearFieldBySymbols(' ', 1)
  await I.appendFieldManual(' ', '9')

  await I.seeFieldErrorMessage('   ')
  await I.seeFieldErrorMessage('   ')
})

, . Allure-, , , .


?


  • Cypress. , , Cypress , ( ).
  • Wdio. -, , Wdio . -, โ€” , . ยซยป .
  • Puppeteer. , . , Wdio, Puppeteer.

CodeceptJS.



, CI/CD Gitlab, -, Gitlab, .


, , , -.



, , .


? , . , , , . , , . , .


, , -. , , -, , .



โ€” . โ€” !



:


  • . โ€” .
  • Form Builder` ( , ).
  • . .
  • .

.



, , , .


, , โ€” .


- , : , , -, . , , (), , , .


, LFS. , , , - ( ) , , . , .


Storybook, . Storybook:


  • Master Storybook โ€” Storybook , . .
  • Merge Request Storybook โ€” Storybook .
    Master Storybook , . git .

, , , , API โ€” window.__STORYBOOK_CLIENT_API.getStorybook(). API , . , . nodejs API .


:


const html = fs.readFileSync(`${normalizedPath}/iframe.html`, { encoding: 'utf8' });
const htmlDom = new JSDOM(html);
const scripts = htmlDom.window.document.querySelectorAll('script');
scripts.forEach((script) => {
  if (script.src && script.src.endsWith('bundle.js')) {
    require(path.resolve(normalizedPath, script.src));
  }
});
window.__STORYBOOK_CLIENT_API__.getStorybook().forEach((story) => {...})

โ€” js-, require js- node, node API .


, .

, CodeceptJS, :


. :


  • .
  • .
  • ().
  • .
  • .

. .
โ€” .


:


42 3 . , !


, 2 14 . , .


API , โ€” window.__STORYBOOK_CLIENT_API__._storyStore.setSelection(). , id, โ€” .


, โ€” , 3 , 554 :


:


  • . โ€” .
  • .
  • !

Form Builder`


, 20+ . - Form Builder , Form Builder . Form Builder.


:


  • git- ;
  • yarn.

, git clone. yarn link form-builder From Builder, . Happy-path .


Form Builder, , .



From Builder jobs 30 , 50 . , , .


, , , โ€” (Puppeteer Wdio). , karma.


?


Puppeteer Wdio CDP (Chrome DevTools Protocol) WebDriver Protocol . Puppeteer type, API. : "Sends a keydown, keypress/input, and keyup event for each character in the text". Puppeteer DevTools . , - .


( karma) :


  • index.html (, webpack ).
  • , localhost.
  • localhost, , .
  • Web API.

Form Builder karma, 70 3 366 50 .


:

:


:


  • DOM (Web API), , Puppeteer Wdio.
  • (). , .
  • . ? .
  • โ€” .
  • . dispatch- .

, .



, , โ€” .


- , , . , 1000 , -, , - . .


, lerna, , , , . , .


:


  • .
  • -, .
  • - .
  • , -, - , 100% .
    โ€” , unit-.

:


  • โ€” .
  • โ€” .


:


  • .
  • .
  • - โ€” .
  • .
  • , Puppeteer Playwright.
  • core .

All Articles