เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เดธเตเด•เต†เดฏเดฟเตฝ: VTB-เดฏเดฟเตฝ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚

เดชเตเดฐเตŠเดกเด•เตเดทเตป เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต† เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเด•เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เดณเตเดŸเต† เดกเดฟเดตเดฟเดทเตป เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดชเตˆเดชเตเดชเตเดฒเตˆเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เด‡เดคเดฟเดจเต เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดซเด™เตเดทเดฃเตฝ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด’เดฐเต เดฒเต‹เด•เตเด•เตฝ เดฎเต†เดทเต€เดจเดฟเดฒเต† เดธเดฟเด‚เด—เดฟเตพ-เดคเตเดฐเต†เดกเต เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เดฟเตฝ เดคเตเดŸเด™เตเด™เดฟ, GitLab เดชเต‡เดœเตเด•เดณเดฟเดฒเต† เด’เดฐเต Allure เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดฌเดฟเตฝเดกเต เดชเตˆเดชเตเดชเตโ€Œเดฒเตˆเดจเดฟเตฝ เดธเต†เดฒเดฟเดจเต‹เดฏเตเดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดฎเตพเดŸเตเดŸเดฟ-เดคเตเดฐเต†เดกเต เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเต เดŽเดจเตเดจ เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ เดŽเดคเตเดคเดฟเดšเตเดšเต‡เดฐเตเด•เดฏเตเด‚ เด’เดŸเตเดตเดฟเตฝ เด’เดฐเต เด•เต‚เตพ เด“เดŸเตเดŸเต‹เดฎเต‡เดทเตป เดŸเต‚เตพ เดŽเด™เตเด™เดจเต† เดจเต‡เดŸเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เด•เดฅเดฏเดพเดฃเต เด•เดŸเตเดŸเดฟเดจเต เดคเดพเดดเต†เดฏเตเดณเตเดณเดคเต. เดญเดพเดตเดฟเดฏเดฟเดฒเต† เด†เดณเตเด•เตพเด•เตเด•เต เดŸเต€เดฎเตเด•เดณเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เดธเตเด•เต†เดฏเดฟเตฝ: VTB-เดฏเดฟเตฝ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚

เดจเดฎเตเดฎเตพ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดคเตเดŸเด™เตเด™เดฟเดฏเดคเต?

เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเตˆเดชเตเดชเตเดฒเตˆเดจเดฟเดฒเต‡เด•เตเด•เต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚, เดžเด™เตเด™เดณเตเดŸเต† เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฐเต เด“เดŸเตเดŸเต‹เดฎเต‡เดทเตป เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดฎเดฟเด•เดšเตเดš เดฐเต€เดคเดฟเดฏเดฟเตฝ, เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดŽเดžเตเดšเดฟเดจเตเดณเตเดณ เด’เดฐเตŠเดฑเตเดฑ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดฒเดญเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเต, เด…เดคเต เดชเตˆเดชเตเดชเตเดฒเตˆเดจเดฟเดฒเต‡เด•เตเด•เต เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เตพเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต. เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเด•เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต:

  • เดœเดพเดต,
  • เดฎเดพเดตเตป,
  • เดธเต†เดฒเดฟเดจเดฟเดฏเด‚,
  • เด•เตเด•เตเด•เตเดฎเตเดชเตผ+เดœเต‚เดฃเดฟเดฑเตเดฑเต 4,
  • เดตเดถเต€เด•เดฐเดฟเด•เตเด•เตเด•,
  • GitLab.

เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เดธเตเด•เต†เดฏเดฟเตฝ: VTB-เดฏเดฟเตฝ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดˆ เดชเตเดฐเดคเตเดฏเต‡เด• เดธเต†เดฑเตเดฑเต? เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เดญเดพเดทเด•เดณเดฟเดฒเตŠเดจเตเดจเดพเดฃเต เดœเดพเดต, เดŽเดฒเตเดฒเดพ เดŸเต€เด‚ เด…เด‚เด—เด™เตเด™เดณเตเด‚ เด‡เดคเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดธเต†เดฒเดฟเดจเดฟเดฏเด‚ เด’เดฐเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฃเต. เด•เตเด•เตเด•เตเดฎเตเดชเตผ, เดฎเดฑเตเดฑเต เด•เดพเดฐเตเดฏเด™เตเด™เตพเด•เตเด•เตŠเดชเตเดชเด‚, เดฎเดพเดจเตเดตเตฝ เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เดฟเตฝ เดเตผเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเด•เตเดชเตเดชเตเด•เดณเตเดŸเต† เดญเดพเด—เดคเตเดคเตเดจเดฟเดจเตเดจเต เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดซเดฒเด™เตเด™เดณเดฟเตฝ เด†เดคเตเดฎเดตเดฟเดถเตเดตเดพเดธเด‚ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เด’เดฑเตเดฑ เดคเตเดฐเต†เดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ

เดšเด•เตเดฐเด‚ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป, เดžเด™เตเด™เตพ GitHub-เดฒเต† เดตเดฟเดตเดฟเดง เดถเต‡เด–เดฐเดฃเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเด‚เดญเดตเดตเดฟเด•เดพเดธเด™เตเด™เตพ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เดŽเดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เด…เดต เดธเตเดตเดฏเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต. เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเต เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดจเตเดฑเต† เด•เต‹เตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดงเดพเดจ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตเด•เดพเดฏเดฟ เดžเด™เตเด™เตพ เด’เดฐเต เดถเต‡เด–เดฐเดฃเดตเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฎเตเดชเดฟเตฝ เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดธเตเดตเตผเดฃเตเดฃ เด‰เดฆเดพเดนเดฐเดฃเดฎเตเดณเตเดณ เด’เดฐเต เดถเต‡เด–เดฐเดฃเดตเตเด‚ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต. เด“เดฐเต‹ เดŸเต€เดฎเตเด‚ เด—เต‹เตพเดกเต เด‡เดฎเต‡เดœเต เดŽเดŸเตเดคเตเดคเต เด…เดคเดฟเตฝ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเต เด…เดตเดฐเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚. เดžเด™เตเด™เตพ เด…เดคเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดค GitLab-CI เดฌเดพเด™เตเด•เดฟเดฒเต‡เด•เตเด•เต เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเต:

  • เด“เดฐเต‹ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเด‚ เดตเต‡เดฃเตเดŸเดฟเดฏเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดฐเต‡เด–เดพเดฎเต‚เดฒเดฎเตเดณเตเดณ เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดฆเตˆเดจเด‚เดฆเดฟเดจ เดฑเตบ;
  • เดจเดฟเตผเดฎเตเดฎเดพเดฃ เดชเตˆเดชเตเดชเตเดฒเตˆเดจเดฟเตฝ เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด†เดฆเตเดฏเด‚ เด•เตเดฑเดšเตเดšเต เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดต เด’เดฐเต เดธเตเดŸเตเดฐเต€เดฎเดฟเตฝ เดจเดŸเดคเตเดคเดฟ. เดตเดฟเตปเดกเต‹เดธเต เดฑเดฃเตเดฃเดฑเดพเดฏ GitLab-เตฝ เดธเดฟเด‚เด—เดฟเตพ-เดคเตเดฐเต†เดกเตเดณเตเดณ เดฑเดฃเตเดฃเดฟเด‚เด—เต เดžเด™เตเด™เตพเด•เตเด•เต เดจเดจเตเดจเดพเดฏเดฟ เดฏเต‹เดœเดฟเดšเตเดšเต: เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดŸเต†เดธเตเดฑเตเดฑเต เดฌเต†เดžเตเดšเดฟเดจเต† เดตเดณเดฐเต† เดฒเด˜เตเดตเดพเดฏเดฟ เดฒเต‹เดกเตเดšเต†เดฏเตโ€Œเดคเต เด•เต‚เดŸเดพเดคเต† เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฒเตเดฒ.

เด•เดพเดฒเด•เตเดฐเดฎเต‡เดฃ, เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเตผเดฆเตเดงเดฟเดšเตเดšเต, เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดšเดฟเดจเตเดคเดฟเดšเตเดšเต, เด’เดฐเต เดชเต‚เตผเดฃเตเดฃ เด“เดŸเตเดŸเดคเตเดคเดฟเดจเต เดเด•เดฆเต‡เดถเด‚ เดฎเต‚เดจเตเดจเต เดฎเดฃเดฟเด•เตเด•เต‚เตผ เดŽเดŸเตเด•เตเด•เตเด‚. เดฎเดฑเตเดฑเต เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเด‚ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต:

  • เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณเดคเดพเดฃเต†เดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ;
  • เดฒเต‹เด•เตเด•เตฝ เดฎเต†เดทเต€เดจเดฟเตฝ เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เดจเดฟเดฐเดตเดงเดฟ เดคเดตเดฃ เดจเดŸเดคเตเดคเดฟเดฏ เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดšเดฟเดฒเดชเตเดชเต‹เตพ เดธเดฟเดเดฏเดฟเตฝ เดคเด•เดฐเดพเดฑเดฟเดฒเดพเดฏเดฟ.

เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚:

<plugins>
	
<plugin>
    	
<groupId>org.apache.maven.plugins</groupId>
    	
<artifactId>maven-surefire-plugin</artifactId>
    	
<version>2.20</version>
    	
<configuration>
        	
<skipTests>${skipTests}</skipTests>
        	
<testFailureIgnore>false</testFailureIgnore>
        	
<argLine>
            	
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
            	
-Dcucumber.options="--tags ${TAGS} --plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm --plugin pretty"
        	
</argLine>
    	
</configuration>
	
    <dependencies>
        	
<dependency>
            	
<groupId>org.aspectj</groupId>
            	
<artifactId>aspectjweaver</artifactId>
            	
<version>${aspectj.version}</version>
        	
</dependency>
    	
</dependencies>
	
</plugin>
	
<plugin>
    	
<groupId>io.qameta.allure</groupId>
    	
<artifactId>allure-maven</artifactId>
    	
<version>2.9</version>
	
</plugin>
</plugins>

 เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เดธเตเด•เต†เดฏเดฟเตฝ: VTB-เดฏเดฟเตฝ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚
เด…เดฒเตเดฒเต‚เตผ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เด‰เดฆเดพเดนเดฐเดฃเด‚

 เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เดธเตเด•เต†เดฏเดฟเตฝ: VTB-เดฏเดฟเตฝ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚
เดŸเต†เดธเตเดฑเตเดฑเต เดธเดฎเดฏเดคเตเดคเต เดฑเดฃเตเดฃเตผ เดฒเต‹เดกเต (8 เด•เต‹เดฑเตเด•เตพ, 8 เดœเดฟเดฌเดฟ เดฑเดพเด‚, 1 เดคเตเดฐเต†เดกเต)
 
เด’เดฑเตเดฑ-เดคเตเดฐเต†เดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เด—เตเดฃเด™เตเด™เตพ:

  • เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต;
  • CI เดฒเต† เดฒเต‹เดžเตเดšเตเด•เตพ เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดฒเต‹เดžเตเดšเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดฒเตเดฒ;
  • เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดชเดฐเดธเตเดชเดฐเด‚ เดฌเดพเดงเดฟเด•เตเด•เดฟเดฒเตเดฒ;
  • เดฑเดฃเตเดฃเตผ เดตเดฟเดญเดตเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดž เด†เดตเดถเตเดฏเด•เดคเด•เตพ.

เด’เดฑเตเดฑ-เดคเตเดฐเต†เดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดชเต‹เดฐเดพเดฏเตเดฎเด•เตพ:

  • เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดพเตป เดตเดณเดฐเต† เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเด‚;
  • เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดจเต€เดฃเตเดŸ เดธเตเดฅเดฟเดฐเดค;
  • เดฑเดฃเตเดฃเตผ เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดฒเตเดฒเดพเดคเตเดค เด‰เดชเดฏเต‹เด—เด‚, เดตเดณเดฐเต† เด•เตเดฑเดžเตเดž เด‰เดชเดฏเต‹เด—เด‚.

เดœเต†เดตเดฟเดŽเด‚ เดซเต‹เตผเด•เตเด•เตเด•เดณเดฟเดฒเต† เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ

เด…เดŸเดฟเดธเตเดฅเดพเดจ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ เดคเตเดฐเต†เดกเต-เดธเต‡เดซเต เด•เต‹เดกเต เดžเด™เตเด™เตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดฎเดพเตผเด—เด‚ cucumber-jvm-parallel-plugin เดฎเดพเดตเดจเต เดตเต‡เดฃเตเดŸเดฟ. เดชเตเดฒเด—เดฟเตป เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดถเดฐเดฟเดฏเดพเดฏ เดธเดฎเดพเดจเตเดคเดฐ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเต, เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดคเตเดฏเต‡เด• เดฌเตเดฐเต—เดธเดฑเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด’เดจเตเดจเตเด‚ เดšเต†เดฏเตเดฏเดพเดจเดฟเดฒเตเดฒ, เดŽเดจเดฟเด•เตเด•เต Selenoid เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต.

เดธเต†เดฒเดฟเดจเต‹เดฏเดฟเดกเต เดธเต†เตผเดตเตผ 32 เด•เต‹เดฑเตเด•เดณเตเด‚ 24 เดœเดฟเดฌเดฟ เดฑเดพเดฎเตเด‚ เด‰เดณเตเดณ เด’เดฐเต เดฎเต†เดทเต€เดจเดฟเตฝ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเต. เดชเดฐเดฟเดงเดฟ 48 เดฌเตเดฐเต—เดธเดฑเตเด•เดณเดพเดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต - เด’เดฐเต เด•เต‹เดฑเดฟเดจเต 1,5 เดคเตเดฐเต†เดกเตเด•เตพ, เดเด•เดฆเต‡เดถเด‚ 400 MB เดฑเดพเดฎเตเด•เตพ. เด‡เดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดจเดพ เดธเดฎเดฏเด‚ เดฎเต‚เดจเตเดจเต เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเตฝ เดจเดฟเดจเตเดจเต 40 เดฎเดฟเดจเดฟเดฑเตเดฑเดพเดฏเดฟ เด•เตเดฑเดšเตเดšเต. เดฑเดฃเตเดฃเตเด•เตพ เดตเต‡เด—เดคเตเดคเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดธเตเดฑเตเดฑเต†เดฌเดฟเดฒเตˆเดธเต‡เดทเตป เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เดธเดนเดพเดฏเดฟเดšเตเดšเต: เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดชเตเดคเดฟเดฏ เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ 20-30 เดคเดตเดฃ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดต เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เด‰เดฑเดชเตเดชเตเดตเดฐเตเด‚.
เดšเต†เดฑเดฟเดฏ เดŽเดฃเตเดฃเด‚ เดธเดฎเดพเดจเตเดคเดฐ เดคเตเดฐเต†เดกเตเด•เดณเตเดณเตเดณ เดฑเดฃเตเดฃเตผ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเตเด•เดณเตเดŸเต† เด‰เดฏเตผเดจเตเดจ เด‰เดชเดฏเต‹เด—เดฎเดพเดฃเต เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเดจเตเดฑเต† เด†เดฆเตเดฏเดคเตเดคเต† เดชเต‹เดฐเดพเดฏเตเดฎ: 4 เด•เต‹เดฑเตเด•เดณเดฟเดฒเตเด‚ 8 เดœเดฟเดฌเดฟ เดฑเดพเดฎเดฟเดฒเตเด‚, เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ 6 เดคเตเดฐเต†เดกเตเด•เดณเดฟเตฝ เด•เต‚เดŸเดพเดคเต† เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดชเต‹เดฐเดพเดฏเตเดฎ: เดชเตเดฒเด—เดฟเตป เด“เดฐเต‹ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเดจเตเด‚ เดฑเดฃเตเดฃเตผ เด•เตเดฒเดพเดธเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดตเดฏเดฟเตฝ เดŽเดคเตเดฐ เดŽเดฃเตเดฃเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเดพเดฒเตเด‚.

เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸเดคเต! เดฒเต‡เด•เตเด•เตเดณเตเดณ เดŸเดพเด—เตเด•เดณเตเดณเตเดณ เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด•เตˆเดฎเดพเดฑเดฐเตเดคเต argLine, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดคเตเดชเต‹เดฒเต†:

<argLine>-Dcucumber.options="--tags ${TAGS} --plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm --plugin pretty"</argLine>
โ€ฆ
Mvn โ€“DTAGS="@smoke"

เดจเดฟเด™เตเด™เตพ เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดŸเดพเด—เต เดชเดพเดธเตเดธเดพเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดชเตเดฒเด—เดฟเตป เดŽเดฒเตเดฒเดพ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เตเด‚ เดฑเดฃเตเดฃเตผเดฎเดพเดฐเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚, เด…เดคเดพเดฏเดคเต, เดŽเดฒเตเดฒเดพ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเด‚, เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดค เด‰เดŸเตป เดคเดจเตเดจเต† เด…เดต เด’เดดเดฟเดตเดพเด•เตเด•เตเด•เดฏเตเด‚ เดจเดฟเดฐเดตเดงเดฟ เดœเต†เดตเดฟเดŽเด‚ เดซเต‹เตผเด•เตเด•เตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚.

เด’เดฐเต เดŸเดพเด—เต เด‰เดณเตเดณ เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดŽเดฑเดฟเดฏเตเดจเตเดจเดคเต เดถเดฐเดฟเดฏเดพเดฃเต เดŸเดพเด—เตเด•เตพ เดชเตเดฒเด—เดฟเตป เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเดฟเตฝ, เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚ เด•เดพเดฃเตเด•. เดžเด™เตเด™เตพ เดชเดฐเต€เด•เตเดทเดฟเดšเตเดš เดฎเดฑเตเดฑเต เดฐเต€เดคเดฟเด•เตพเด•เตเด•เต Allure เดชเตเดฒเด—เดฟเตป เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดฃเตเดŸเต.

เดคเต†เดฑเตเดฑเดพเดฏ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเตเดณเตเดณ 6 เดนเตเดฐเดธเตเดต เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพเด•เตเด•เตเดณเตเดณ เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚:

[INFO] Total time: 03:17 min

เดจเดฟเด™เตเด™เตพ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดŸเดพเด—เต เด•เตˆเดฎเดพเดฑเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดŸเต†เดธเตเดฑเตเดฑเต เดฑเตบ เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚ mvn... โ€“Dcucumber.options:

[INFO] Total time: 44.467 s

เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚:

<profiles>
	
<profile>
    	
<id>parallel</id>
    	
<build>
        	
<plugins>
            	
<plugin>
                	
<groupId>com.github.temyers</groupId>
                	
<artifactId>cucumber-jvm-parallel-plugin</artifactId>
                	
<version>5.0.0</version>
                	
<executions>
                    	
<execution>
                        	
<id>generateRunners</id>
                        	
<phase>generate-test-sources</phase>
                        	
<goals>
                            	
<goal>generateRunners</goal>
                        	
</goals>
                        	
<configuration>
                	
            <tags>
                            	
<tag>${TAGS}</tag>
                            	
</tags>
                            	
<glue>
                                	
<package>stepdefs</package>
                            	
</glue>
                        	
</configuration>
     	
               </execution>
                	
</executions>
    	
        </plugin>
            	
<plugin>
                	
<groupId>org.apache.maven.plugins</groupId>
                	
<artifactId>maven-surefire-plugin</artifactId>
        	
        <version>2.21.0</version>
                	
<configuration>
                    	
<forkCount>12</forkCount>
                    	
<reuseForks>false</reuseForks>
                    	
<includes>**/*IT.class</includes>
                   	
 <testFailureIgnore>false</testFailureIgnore>
                    	
<!--suppress UnresolvedMavenProperty -->
                    	
<argLine>
  	
 -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" -Dcucumber.options="--plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm TagPFAllureReporter --plugin pretty"
                    	
</argLine>
                	
</configuration>
                	
<dependencies>
                    	
<dependency>
                        	
<groupId>org.aspectj</groupId>
                        	
<artifactId>aspectjweaver</artifactId>
                        	
<version>${aspectj.version}</version>
                 	
   </dependency>
                	
</dependencies>
         	
   </plugin>
        	
</plugins>
    	
</build>
	
</profile>

เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เดธเตเด•เต†เดฏเดฟเตฝ: VTB-เดฏเดฟเตฝ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚
เด’เดฐเต เด…เดฒเต‚เตผ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚ (เดเดฑเตเดฑเดตเตเด‚ เด…เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดŸเต†เดธเตเดฑเตเดฑเต, 4 เด†เดตเตผเดคเตเดคเดจเด™เตเด™เตพ)

เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เดธเตเด•เต†เดฏเดฟเตฝ: VTB-เดฏเดฟเตฝ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚เดŸเต†เดธเตเดฑเตเดฑเต เดธเดฎเดฏเดคเตเดคเต เดฑเดฃเตเดฃเตผ เดฒเต‹เดกเต (8 เด•เต‹เดฑเตเด•เตพ, 8 เดœเดฟเดฌเดฟ เดฑเดพเด‚, 12 เดคเตเดฐเต†เดกเตเด•เตพ)
 
เดชเตเดฐเต‹เดธเต:

  • เดŽเดณเตเดชเตเดชเดฎเตเดณเตเดณ เดธเดœเตเดœเต€เด•เดฐเดฃเด‚ - เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดชเตเดฒเด—เดฟเตป เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต;
  • เด’เดฐเต‡เดธเดฎเดฏเด‚ เดงเดพเดฐเดพเดณเด‚ เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดจเดŸเดคเตเดคเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต;
  • เด˜เดŸเตเดŸเด‚ 1-เดจเต เดจเดจเตเดฆเดฟ, เดŸเต†เดธเตเดฑเตเดฑเต เดธเตเดฑเตเดฑเต†เดฌเดฟเดฒเตˆเดธเต‡เดทเดจเตเดฑเต† เดคเตเดตเดฐเดฃเด‚. 

เดชเดฐเดฟเด—เดฃเดจ:

  • เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ OS/ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต;
  • เด“เดฐเต‹ เดซเต‹เตผเด•เตเด•เดฟเดจเตเด‚ เด‰เดฏเตผเดจเตเดจ เดตเดฟเดญเดต เด‰เดชเดญเต‹เด—เด‚;
  • เดชเตเดฒเด—เดฟเตป เด•เดพเดฒเดนเดฐเดฃเดชเตเดชเต†เดŸเตเดŸเดคเดพเดฃเต, เด‡เดจเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เดฟเดฒเตเดฒ. 

เด…เดธเตเดฅเดฟเดฐเดคเดฏเต† เดŽเด™เตเด™เดจเต† เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเด‚ 

เดธเตเดตเดฏเด‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เดคเดจเตเดจเต† เดŸเต†เดธเตเดฑเตเดฑเต เดฌเต†เดžเตเดšเตเด•เตพ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ. เดžเด™เตเด™เตพเด•เตเด•เต เดจเดฟเดฐเดตเดงเดฟ เดซเตเดฒเดพเด•เตเด•เดฟ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเดคเดฟเตฝ เด…เดคเดฟเดถเดฏเดฟเด•เตเด•เดพเดจเดฟเดฒเตเดฒ. เดธเดนเดพเดฏเดคเตเดคเดฟเดจเต†เดคเตเดคเดฟ maven surefire เดชเตเดฒเด—เดฟเตป, เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต† เดฌเต‹เด•เตเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดคเต. เดจเดฟเด™เตเด™เตพ เดชเตเดฒเด—เดฟเตป เดชเดคเดฟเดชเตเดชเต เด•เตเดฑเดžเตเดžเดคเต 2.21 เดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดชเต‹เด‚ เดซเดฏเดฒเดฟเตฝ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดŽเดฃเตเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดตเดฐเดฟ เดŽเดดเตเดคเตเด•เดฏเต‹ เดฎเดพเดตเต†เดจเต เด’เดฐเต เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเดพเดฏเดฟ เด•เตˆเดฎเดพเดฑเตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚:

   	
<plugin>
        	
<groupId>org.apache.maven.plugins</groupId>
  	
      <artifactId>maven-surefire-plugin</artifactId>
        	
<version>2.21.0</version>
        	
<configuration>
           	
โ€ฆ.
            	
<rerunFailingTestsCount>2</rerunFailingTestsCount>
            	
โ€ฆ.
            	
</configuration>
</plugin>

เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด†เดฐเด‚เดญเดคเตเดคเดฟเตฝ: mvn โ€ฆ -Dsurefire.rerunFailingTestsCount=2 โ€ฆ
เด’เดฐเต เด“เดชเตเดทเดจเดพเดฏเดฟ, PowerShell เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ (PS1) Maven เด“เดชเตเดทเดจเตเด•เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•:

  
Set-Item Env:MAVEN_OPTS "-Dfile.encoding=UTF-8 -Dsurefire.rerunFailingTestsCount=2"

เดชเตเดฐเต‹เดธเต:

  • เด…เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เด’เดฐเต เดŸเต†เดธเตเดฑเตเดฑเต เดคเด•เดฐเดพเดฑเดฟเดฒเดพเด•เตเดฎเตเดชเต‹เตพ เด…เดคเต เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดคเต เดธเดฎเดฏเด‚ เดชเดพเดดเดพเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ;
  • เดŸเต†เดธเตเดฑเตเดฑเต เดฌเต†เดžเตเดšเต เดธเตเดฅเดฟเดฐเดค เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดฒเด˜เต‚เด•เดฐเดฟเด•เตเด•เดพเดจเดพเด•เตเด‚.

เดชเดฐเดฟเด—เดฃเดจ:

  • เดซเตเดฒเต‹เดŸเตเดŸเดฟเด‚เด—เต เดตเตˆเด•เดฒเตเดฏเด™เตเด™เตพ เดจเดทเตเดŸเดชเตเดชเต†เดŸเดพเด‚;
  • เดฑเตบ เดŸเตˆเด‚ เด•เต‚เดŸเตเดจเตเดจเต.

เด•เตเด•เตเด•เตเดฎเตเดชเตผ 4 เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเดฎเดพเดฏเตเดณเตเดณ เดธเดฎเดพเดจเตเดคเดฐ เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ

เด“เดฐเต‹ เดฆเดฟเดตเดธเดตเตเด‚ เดชเดฐเดฟเดถเต‹เดงเดจเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเตผเดฆเตเดงเดฟเดšเตเดšเต. เดฑเดฃเตเดฃเตเด•เตพ เดตเต‡เด—เดคเตเดคเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เดšเดฟเดจเตเดคเดฟเดšเตเดšเต. เด•เต‚เดŸเดพเดคเต†, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด…เดธเด‚เดฌเตเดฒเดฟ เดชเตˆเดชเตเดชเตเดฒเตˆเดจเดฟเดฒเต‡เด•เตเด•เต เด•เดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเต. Maven เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เด“เดŸเตเดฎเตเดชเต‹เตพ เดฑเดฃเตเดฃเต‡เดดเตโ€Œเดธเดฟเดจเตเดฑเต† เดœเดจเดฑเต‡เดทเตป เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดธเดฎเดฏเดฎเต†เดŸเตเดคเตเดคเต เดŽเดจเตเดจเดคเดพเดฃเต เดจเดฟเตผเดฃเดพเดฏเด• เด˜เดŸเด•เด‚.

เด† เดธเดฎเดฏเดคเตเดคเต, เด•เตเด•เตเด•เตเดฎเตเดชเตผ 4 เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฑเดคเตเดคเดฟเดฑเด™เตเด™เดฟ, เด…เดคเดฟเดจเดพเตฝ เดˆ เดชเดคเดฟเดชเตเดชเดฟเดจเดพเดฏเดฟ เด•เต‡เตผเดฃเตฝ เดตเต€เดฃเตเดŸเตเด‚ เดŽเดดเตเดคเดพเตป เดžเด™เตเด™เตพ เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เดฑเดฟเดฒเต€เดธเต เด•เตเดฑเดฟเดชเตเดชเตเด•เดณเดฟเตฝ, เดคเตเดฐเต†เดกเต เดคเดฒเดคเตเดคเดฟเตฝ เดธเดฎเดพเดจเตเดคเดฐ เดฒเต‹เดžเตเดšเต เดžเด™เตเด™เตพ เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดคเดฟเดฐเตเดจเตเดจเต. เดธเตˆเดฆเตเดงเดพเดจเตเดคเดฟเด•เดฎเดพเดฏเดฟ เด‡เดคเต เด‡เดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚:

  • เดคเตเดฐเต†เดกเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเต เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เดตเต‡เด—เดคเตเดคเดฟเดฒเดพเด•เตเด•เตเด•;
  • เด“เดฐเต‹ เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเดฟเดจเตเด‚ เดฑเดฃเตเดฃเตผเดฎเดพเดฐเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดฎเดฏเดจเดทเตเดŸเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•.

เดฎเตพเดŸเตเดŸเดฟ-เดคเตเดฐเต†เดกเต เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เดคเตเดฐ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด•เดพเดฐเตเดฏเดฎเดฒเตเดฒ. เด•เตเด•เตเด•เตเดฎเตเดชเตผ 4 เด“เดฐเต‹ เดตเตเดฏเด•เตเดคเดฟเด—เดค เดชเดฐเดฟเดถเต‹เดงเดจเดฏเตเด‚ เดคเตเดŸเด•เตเด•เด‚ เดฎเตเดคเตฝ เด…เดตเดธเดพเดจเด‚ เดตเดฐเต† เด’เดฐเต เดธเดฎเตผเดชเตเดชเดฟเดค เดคเตเดฐเต†เดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดšเดฟเดฒ เดธเดพเดงเดพเดฐเดฃ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดคเตเดฐเต†เดกเตโ€Œเดฒเต‹เด•เตเด•เตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดคเต. 
เดเดกเดฟเดฏ เดฑเต€เดซเดพเด•เตโ€ŒเดŸเดฑเดฟเด‚เด—เต เดŸเต‚เดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดค เดธเตเดฅเดฒเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต). เด•เต‚เดŸเดพเดคเต†, เดœเต‚เดฃเดฟเดฑเตเดฑเต เดฑเดฃเตเดฃเตผ เด•เตเดฒเดพเดธเต เดตเตเดฏเดพเด–เตเดฏเดพเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เตพ Allure เดชเตเดฒเด—เดฟเตป เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚:

 
<profile>
	
<id>parallel</id>
	
<build>
    	
<plugins>
        	
<plugin>
            	
<groupId>org.apache.maven.plugins</groupId>
 	
           <artifactId>maven-surefire-plugin</artifactId>
            	
<version>3.0.0-M3</version>
   	
         <configuration>
                	
<useFile>false</useFile>
                	
<testFailureIgnore>false</testFailureIgnore>
        	
        <parallel>methods</parallel>
                	
<threadCount>6</threadCount>
                	
<perCoreThreadCount>true</perCoreThreadCount>
                	
<argLine>
                    	
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                	
</argLine>
            	
</configuration>
            	
<dependencies>
                	
<dependency>
                    	
<groupId>org.aspectj</groupId>
   	
                 <artifactId>aspectjweaver</artifactId>
                    	
<version>${aspectj.version}</version>
                	
</dependency>
            	
</dependencies>
        	
</plugin>
    	
</plugins>
	
</build>
</profile>

เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เดธเตเด•เต†เดฏเดฟเตฝ: VTB-เดฏเดฟเตฝ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚เด’เดฐเต เด…เดฒเตเดฒเต‚เตผ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚ (เดเดฑเตเดฑเดตเตเด‚ เด…เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดŸเต†เดธเตเดฑเตเดฑเต, 5 เด†เดตเตผเดคเตเดคเดจเด™เตเด™เตพ)

เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เดธเตเด•เต†เดฏเดฟเตฝ: VTB-เดฏเดฟเตฝ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚เดŸเต†เดธเตเดฑเตเดฑเต เดธเดฎเดฏเดคเตเดคเต เดฑเดฃเตเดฃเตผ เดฒเต‹เดกเต (8 เด•เต‹เดฑเตเด•เตพ, 8 เดœเดฟเดฌเดฟ เดฑเดพเด‚, 24 เดคเตเดฐเต†เดกเตเด•เตพ)

เดชเตเดฐเต‹เดธเต:

  • เด•เตเดฑเดžเตเดž เดตเดฟเดญเดต เด‰เดชเดญเต‹เด—เด‚;
  • เด•เตเด•เตเด•เตเดฎเตเดชเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดชเดฟเดจเตเดคเตเดฃ - เด…เดงเดฟเด• เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ;
  • เด“เดฐเต‹ เดชเตเดฐเต‹เดธเดธเตผ เด•เต‹เดฑเดฟเดจเตเด‚ 6 เดคเตเดฐเต†เดกเตเด•เดณเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต.

เดชเดฐเดฟเด—เดฃเดจ:

  • เด•เต‹เดกเต เดฎเตพเดŸเตเดŸเดฟ-เดคเตเดฐเต†เดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด‰เดฑเดชเตเดชเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต;
  • เดชเตเดฐเดตเต‡เดถเดจ เดชเดฐเดฟเดงเดฟ เดตเตผเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเต.

GitLab เดชเต‡เดœเตเด•เดณเดฟเดฒเต† Allure เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด•เตพ

เดฎเตพเดŸเตเดŸเดฟ-เดคเตเดฐเต†เดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดš เดถเต‡เดทเด‚, เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด•เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพ เด•เต‚เดŸเตเดคเตฝ เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ. เด† เดธเดฎเดฏเดคเตเดคเต, เดžเด™เตเด™เตพเด•เตเด•เต เด“เดฐเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚ เด’เดฐเต เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตเดฑเตเดฑเดพเดฏเดฟ GitLab-เดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เดคเตเดŸเตผเดจเตเดจเต เด…เดคเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเต เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•. เด‡เดคเต เดตเดณเดฐเต† เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดฒเตเดฒ, เด•เต‚เดŸเตเดคเตฝ เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเด‚. เดฎเดฑเตเดฑเตŠเดฐเดพเตพเด•เตเด•เต เดธเตเดตเดฏเด‚ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เด•เดพเดฃเดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดตเตผ เด…เดคเต‡ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดซเต€เดกเตโ€Œเดฌเดพเด•เตเด•เต เดตเต‡เด—เดคเตเดคเดฟเตฝ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเดšเตเดšเต, เดžเด™เตเด™เตพ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ - GitLab เดชเต‡เดœเตเด•เตพ. GitLab-เดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดธเดฎเต€เดชเด•เดพเดฒ เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเดฒเตเด‚ เดฌเต‹เด•เตโ€Œเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดฒเดญเตเดฏเดฎเดพเดฏ เด’เดฐเต เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดธเดตเดฟเดถเต‡เดทเดคเดฏเดพเดฃเดฟเดคเต. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเต†เตผเดตเดฑเดฟเตฝ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดธเตˆเดฑเตเดฑเตเด•เตพ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเดจเตเด‚ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดฒเดฟเด™เตเด•เต เดตเดดเดฟ เด…เดต เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

Allure เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด•เดณเตเดŸเต† เดŽเดฒเตเดฒเดพ เดธเตเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเตเด•เดณเตเด‚ GitLab เดชเต‡เดœเตเด•เดณเดฟเตฝ เดŽเดŸเตเดคเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต. GitLab เดชเต‡เดœเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต - Windows PowerShell-เตฝ (เด‡เดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดจเดฟเด™เตเด™เตพ เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต):

New-Item -ItemType directory -Path $testresulthistory | Out-Null

try {Invoke-WebRequest -Uri $hst -OutFile $outputhst}
Catch{echo "fail copy history"}
try {Invoke-WebRequest -Uri $hsttrend -OutFile $outputhsttrnd}
Catch{echo "fail copy history trend"}

mvn allure:report
#mvn assembly:single -PzipAllureReport
xcopy $buildlocationtargetsiteallure-maven-plugin* $buildlocationpublic /s /i /Y

เด…เดตเดธเดพเดจเด‚ เดŽเดจเตเดคเดพเดฃเต 

เด…เดคเดฟเดจเดพเตฝ, เด•เตเด•เตเด•เตเดฎเตเดชเตผ เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเต เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเตเดฐเต†เดกเต เดธเตเดฐเด•เตเดทเดฟเดค เด•เต‹เดกเต เด†เดตเดถเตเดฏเดฎเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดจเดฟเด™เตเด™เตพ เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด‡เดชเตเดชเต‹เตพ เด‰เดคเตเดคเดฐเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต - เด•เตเด•เตเด•เตเดฎเตเดชเตผ 4 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต, เด…เดคเตเดตเดดเดฟ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดš เดคเตเดฐเต†เดกเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดˆ เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดธเต†เดฒเดฟเดจเต‹เดฏเตเดกเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเต เดฌเต†เดžเตเดšเตเด‚ เด‰เดณเตเดณ เดฎเต†เดทเต€เดจเตเดฑเต† เดชเตเดฐเด•เดŸเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเต‹เดฆเตเดฏเด‚ เด‡เดชเตเดชเต‹เตพ เดฎเดพเดฑเตเดจเตเดจเต.

เดคเตเดฐเต†เดกเตเด•เดณเดฟเตฝ เด“เดŸเตเดŸเต‹เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฎเดฟเด•เดšเตเดš เดชเตเดฐเด•เดŸเดจเดคเตเดคเต‹เดŸเต† เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดž เดตเดฟเดญเดต เด‰เดชเดญเต‹เด—เด‚ เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดชเตเดฐเดพเด•เตเดŸเต€เดธเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต. เด—เตเดฐเดพเดซเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดคเตเดฐเต†เดกเตเด•เตพ เด‡เดฐเดŸเตเดŸเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเตเดฐเด•เดŸเดจ เดชเดฐเดฟเดถเต‹เดงเดจเด•เดณเดฟเตฝ เดธเดฎเดพเดจเดฎเดพเดฏ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เดฟเดฒเตเดฒ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฌเดฟเตฝเดกเดฟเดฒเต‡เด•เตเด•เต 2-เดฒเดงเดฟเด•เด‚ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดšเต‡เตผเด•เตเด•เดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดžเตเดžเต, เด…เดคเต 200 เดฑเต€เดฑเดฃเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเต‹เดฒเตเด‚ เดเด•เดฆเต‡เดถเด‚ 5 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดตเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเต†เดŸเตเดŸเต†เดจเตเดจเตเดณเตเดณ เดซเต€เดกเตเดฌเดพเด•เตเด•เต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ, เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเดฐเตเดคเตเดคเดฟ เดตเต€เดฃเตเดŸเตเด‚ เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎเด‚ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•