testeiya 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/README.md +212 -0
  2. package/models.catalog.json +6963 -0
  3. package/package.json +71 -0
  4. package/skills/codeceptjs/ci-fix-tests/SKILL.md +120 -0
  5. package/skills/codeceptjs/codeceptjs-auth/SKILL.md +158 -0
  6. package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +91 -0
  7. package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +158 -0
  8. package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +90 -0
  9. package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +234 -0
  10. package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +110 -0
  11. package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +306 -0
  12. package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +352 -0
  13. package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +472 -0
  14. package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +350 -0
  15. package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +81 -0
  16. package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +206 -0
  17. package/skills/playwright-best-practices-skill/LICENSE.md +7 -0
  18. package/skills/playwright-best-practices-skill/README.md +147 -0
  19. package/skills/playwright-best-practices-skill/SKILL.md +303 -0
  20. package/skills/playwright-best-practices-skill/advanced/authentication-flows.md +360 -0
  21. package/skills/playwright-best-practices-skill/advanced/authentication.md +871 -0
  22. package/skills/playwright-best-practices-skill/advanced/clock-mocking.md +364 -0
  23. package/skills/playwright-best-practices-skill/advanced/mobile-testing.md +409 -0
  24. package/skills/playwright-best-practices-skill/advanced/multi-context.md +288 -0
  25. package/skills/playwright-best-practices-skill/advanced/multi-user.md +393 -0
  26. package/skills/playwright-best-practices-skill/advanced/network-advanced.md +452 -0
  27. package/skills/playwright-best-practices-skill/advanced/third-party.md +464 -0
  28. package/skills/playwright-best-practices-skill/architecture/pom-vs-fixtures.md +363 -0
  29. package/skills/playwright-best-practices-skill/architecture/test-architecture.md +369 -0
  30. package/skills/playwright-best-practices-skill/architecture/when-to-mock.md +383 -0
  31. package/skills/playwright-best-practices-skill/browser-apis/browser-apis.md +391 -0
  32. package/skills/playwright-best-practices-skill/browser-apis/iframes.md +403 -0
  33. package/skills/playwright-best-practices-skill/browser-apis/service-workers.md +504 -0
  34. package/skills/playwright-best-practices-skill/browser-apis/websockets.md +403 -0
  35. package/skills/playwright-best-practices-skill/core/annotations.md +424 -0
  36. package/skills/playwright-best-practices-skill/core/assertions-waiting.md +361 -0
  37. package/skills/playwright-best-practices-skill/core/configuration.md +452 -0
  38. package/skills/playwright-best-practices-skill/core/fixtures-hooks.md +417 -0
  39. package/skills/playwright-best-practices-skill/core/global-setup.md +434 -0
  40. package/skills/playwright-best-practices-skill/core/locators.md +242 -0
  41. package/skills/playwright-best-practices-skill/core/page-object-model.md +315 -0
  42. package/skills/playwright-best-practices-skill/core/projects-dependencies.md +453 -0
  43. package/skills/playwright-best-practices-skill/core/test-data.md +492 -0
  44. package/skills/playwright-best-practices-skill/core/test-suite-structure.md +361 -0
  45. package/skills/playwright-best-practices-skill/core/test-tags.md +298 -0
  46. package/skills/playwright-best-practices-skill/debugging/console-errors.md +420 -0
  47. package/skills/playwright-best-practices-skill/debugging/debugging.md +504 -0
  48. package/skills/playwright-best-practices-skill/debugging/error-testing.md +360 -0
  49. package/skills/playwright-best-practices-skill/debugging/flaky-tests.md +496 -0
  50. package/skills/playwright-best-practices-skill/frameworks/angular.md +530 -0
  51. package/skills/playwright-best-practices-skill/frameworks/nextjs.md +469 -0
  52. package/skills/playwright-best-practices-skill/frameworks/react.md +531 -0
  53. package/skills/playwright-best-practices-skill/frameworks/vue.md +574 -0
  54. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/ci-cd.md +468 -0
  55. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/docker.md +283 -0
  56. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/github-actions.md +546 -0
  57. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/gitlab.md +397 -0
  58. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/other-providers.md +521 -0
  59. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/parallel-sharding.md +371 -0
  60. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/performance.md +453 -0
  61. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/reporting.md +424 -0
  62. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/test-coverage.md +497 -0
  63. package/skills/playwright-best-practices-skill/testing-patterns/accessibility.md +359 -0
  64. package/skills/playwright-best-practices-skill/testing-patterns/api-testing.md +719 -0
  65. package/skills/playwright-best-practices-skill/testing-patterns/browser-extensions.md +506 -0
  66. package/skills/playwright-best-practices-skill/testing-patterns/canvas-webgl.md +493 -0
  67. package/skills/playwright-best-practices-skill/testing-patterns/component-testing.md +500 -0
  68. package/skills/playwright-best-practices-skill/testing-patterns/drag-drop.md +576 -0
  69. package/skills/playwright-best-practices-skill/testing-patterns/electron.md +509 -0
  70. package/skills/playwright-best-practices-skill/testing-patterns/file-operations.md +377 -0
  71. package/skills/playwright-best-practices-skill/testing-patterns/file-upload-download.md +562 -0
  72. package/skills/playwright-best-practices-skill/testing-patterns/forms-validation.md +561 -0
  73. package/skills/playwright-best-practices-skill/testing-patterns/graphql-testing.md +331 -0
  74. package/skills/playwright-best-practices-skill/testing-patterns/i18n.md +508 -0
  75. package/skills/playwright-best-practices-skill/testing-patterns/performance-testing.md +476 -0
  76. package/skills/playwright-best-practices-skill/testing-patterns/security-testing.md +430 -0
  77. package/skills/playwright-best-practices-skill/testing-patterns/visual-regression.md +634 -0
  78. package/skills/playwright-cli/SKILL.md +420 -0
  79. package/skills/playwright-cli/references/element-attributes.md +23 -0
  80. package/skills/playwright-cli/references/playwright-tests.md +39 -0
  81. package/skills/playwright-cli/references/request-mocking.md +87 -0
  82. package/skills/playwright-cli/references/running-code.md +241 -0
  83. package/skills/playwright-cli/references/session-management.md +225 -0
  84. package/skills/playwright-cli/references/storage-state.md +275 -0
  85. package/skills/playwright-cli/references/test-generation.md +433 -0
  86. package/skills/playwright-cli/references/tracing.md +139 -0
  87. package/skills/playwright-cli/references/video-recording.md +143 -0
  88. package/skills/testeiya/README.md +29 -0
  89. package/skills/testeiya/answer-formatting/SKILL.md +30 -0
  90. package/skills/testeiya/check-cucumber/SKILL.md +200 -0
  91. package/skills/testeiya/check-tests/SKILL.md +260 -0
  92. package/skills/testeiya/manual-run-assistant/SKILL.md +61 -0
  93. package/skills/testeiya/testomatio-docs/INDEX.md +175 -0
  94. package/skills/testeiya/testomatio-docs/SKILL.md +102 -0
  95. package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-agents.md +144 -0
  96. package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-powered-features.md +531 -0
  97. package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-requirements.md +437 -0
  98. package/skills/testeiya/testomatio-docs/docs/advanced/api-access/index.md +191 -0
  99. package/skills/testeiya/testomatio-docs/docs/advanced/branches-folder/index.md +277 -0
  100. package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/bulk-edit-demos.mdx +39 -0
  101. package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/bulk-edit-on-suite-and-test-level.md +122 -0
  102. package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/what-is-bulk-edit.md +170 -0
  103. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/branches.md +53 -0
  104. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/index.mdx +98 -0
  105. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/jira-issue.md +151 -0
  106. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/runs-and-reports.md +377 -0
  107. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/work-in-jira.md +267 -0
  108. package/skills/testeiya/testomatio-docs/docs/advanced/living-doc/index.md +138 -0
  109. package/skills/testeiya/testomatio-docs/docs/advanced/milestones/index.md +220 -0
  110. package/skills/testeiya/testomatio-docs/docs/advanced/shortcuts/index.md +48 -0
  111. package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/labels-and-custom-fields.md +201 -0
  112. package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/tags-or-labels.md +94 -0
  113. package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/tags.md +243 -0
  114. package/skills/testeiya/testomatio-docs/docs/advanced/test-artifacts/index.md +135 -0
  115. package/skills/testeiya/testomatio-docs/docs/advanced/tql/index.md +394 -0
  116. package/skills/testeiya/testomatio-docs/docs/getting-started/index.md +290 -0
  117. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/azure.md +96 -0
  118. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/bamboo.md +94 -0
  119. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/bitbucket.md +106 -0
  120. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/circle.md +115 -0
  121. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/github.md +120 -0
  122. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/gitlab.md +88 -0
  123. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/index.mdx +151 -0
  124. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/jenkins.md +121 -0
  125. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/teamcity.md +96 -0
  126. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/azure.md +31 -0
  127. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/clickup.md +54 -0
  128. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/confluence.md +34 -0
  129. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/github.md +31 -0
  130. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/gitlab.md +93 -0
  131. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/index.md +131 -0
  132. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/jira.md +164 -0
  133. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/linear.md +29 -0
  134. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/shortcut.md +67 -0
  135. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/youtrack.md +94 -0
  136. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/azure-devops.md +53 -0
  137. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/email.md +71 -0
  138. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/jira.md +52 -0
  139. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/ms-teams.md +60 -0
  140. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/rules.md +267 -0
  141. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/slack.md +82 -0
  142. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/telegram.md +73 -0
  143. package/skills/testeiya/testomatio-docs/docs/integrations/scim-provisioning/index.mdx +207 -0
  144. package/skills/testeiya/testomatio-docs/docs/integrations/scim-provisioning/okta.md +204 -0
  145. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/azure.md +95 -0
  146. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/google.md +75 -0
  147. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/index.mdx +33 -0
  148. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/okta.md +108 -0
  149. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/saml.md +66 -0
  150. package/skills/testeiya/testomatio-docs/docs/legal/compliance/gdpr.md +95 -0
  151. package/skills/testeiya/testomatio-docs/docs/legal/compliance/index.mdx +94 -0
  152. package/skills/testeiya/testomatio-docs/docs/legal/compliance/privacy.md +26 -0
  153. package/skills/testeiya/testomatio-docs/docs/legal/compliance/terms.md +32 -0
  154. package/skills/testeiya/testomatio-docs/docs/legal/security/index.mdx +242 -0
  155. package/skills/testeiya/testomatio-docs/docs/legal/security/jira.md +140 -0
  156. package/skills/testeiya/testomatio-docs/docs/legal/security/subprocessors.md +76 -0
  157. package/skills/testeiya/testomatio-docs/docs/management/company/administration.md +363 -0
  158. package/skills/testeiya/testomatio-docs/docs/management/company/audit-log.md +41 -0
  159. package/skills/testeiya/testomatio-docs/docs/management/company/plan-features-comparison.md +240 -0
  160. package/skills/testeiya/testomatio-docs/docs/management/company/subscriptions.md +326 -0
  161. package/skills/testeiya/testomatio-docs/docs/management/company/trials.md +75 -0
  162. package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/accountant.md +49 -0
  163. package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/index.mdx +285 -0
  164. package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/read-only-user.md +67 -0
  165. package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/teams.md +138 -0
  166. package/skills/testeiya/testomatio-docs/docs/management/project/settings.md +87 -0
  167. package/skills/testeiya/testomatio-docs/docs/management/project/templates.md +546 -0
  168. package/skills/testeiya/testomatio-docs/docs/project/analytics/index.md +326 -0
  169. package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/classical-tests-markdown-format.md +386 -0
  170. package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/download-manual-tests-as-files.md +378 -0
  171. package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/export-to-obsidian.md +112 -0
  172. package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/export-to-spreadsheet.md +127 -0
  173. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/auto-import.md +63 -0
  174. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Allure-TestOps.md +49 -0
  175. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-QTest.md +41 -0
  176. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Qase.md +39 -0
  177. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Zephyr.md +37 -0
  178. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-csv-xlsx.md +117 -0
  179. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-cucumber.md +93 -0
  180. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-qmetry.md +44 -0
  181. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-source-code.md +117 -0
  182. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testcaselabs.md +44 -0
  183. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testmo.md +47 -0
  184. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testrail.md +82 -0
  185. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-xray.md +55 -0
  186. package/skills/testeiya/testomatio-docs/docs/project/plans/index.md +334 -0
  187. package/skills/testeiya/testomatio-docs/docs/project/pulse/index.md +104 -0
  188. package/skills/testeiya/testomatio-docs/docs/project/runs/archive-runs-and-groups.md +176 -0
  189. package/skills/testeiya/testomatio-docs/docs/project/runs/custom-statuses.md +195 -0
  190. package/skills/testeiya/testomatio-docs/docs/project/runs/environments.md +203 -0
  191. package/skills/testeiya/testomatio-docs/docs/project/runs/managing-runs.md +455 -0
  192. package/skills/testeiya/testomatio-docs/docs/project/runs/merge-strategies.md +137 -0
  193. package/skills/testeiya/testomatio-docs/docs/project/runs/reports.md +329 -0
  194. package/skills/testeiya/testomatio-docs/docs/project/runs/rungroups.md +342 -0
  195. package/skills/testeiya/testomatio-docs/docs/project/runs/running-automated-tests.md +256 -0
  196. package/skills/testeiya/testomatio-docs/docs/project/runs/running-manual-and-automated-tests.md +331 -0
  197. package/skills/testeiya/testomatio-docs/docs/project/runs/running-tests-manually.md +633 -0
  198. package/skills/testeiya/testomatio-docs/docs/project/runs/temporary-tests-notes.md +223 -0
  199. package/skills/testeiya/testomatio-docs/docs/project/steps-snippets/snippets.md +68 -0
  200. package/skills/testeiya/testomatio-docs/docs/project/steps-snippets/steps.md +181 -0
  201. package/skills/testeiya/testomatio-docs/docs/project/tests/bdd-test-case-editor.md +98 -0
  202. package/skills/testeiya/testomatio-docs/docs/project/tests/classical-test-case-editor.md +354 -0
  203. package/skills/testeiya/testomatio-docs/docs/project/tests/classical-vs-bdd.md +169 -0
  204. package/skills/testeiya/testomatio-docs/docs/project/tests/copy-and-move-your-tests.md +156 -0
  205. package/skills/testeiya/testomatio-docs/docs/project/tests/other-features-for-test-case-design.md +412 -0
  206. package/skills/testeiya/testomatio-docs/docs/project/tests/test-case-creation-and-editing.md +527 -0
  207. package/skills/testeiya/testomatio-docs/docs/support/index.md +75 -0
  208. package/skills/testeiya/testomatio-docs/docs/test-reporting/artifacts.md +388 -0
  209. package/skills/testeiya/testomatio-docs/docs/test-reporting/cli.md +215 -0
  210. package/skills/testeiya/testomatio-docs/docs/test-reporting/configuration.md +247 -0
  211. package/skills/testeiya/testomatio-docs/docs/test-reporting/frameworks.md +490 -0
  212. package/skills/testeiya/testomatio-docs/docs/test-reporting/functions.md +144 -0
  213. package/skills/testeiya/testomatio-docs/docs/test-reporting/index.mdx +48 -0
  214. package/skills/testeiya/testomatio-docs/docs/test-reporting/junit.md +248 -0
  215. package/skills/testeiya/testomatio-docs/docs/test-reporting/logger.md +138 -0
  216. package/skills/testeiya/testomatio-docs/docs/test-reporting/php.md +77 -0
  217. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/bitbucket.md +72 -0
  218. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/csv.md +23 -0
  219. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/debug.md +18 -0
  220. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/github.md +63 -0
  221. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/gitlab.md +29 -0
  222. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/html.md +80 -0
  223. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/index.mdx +57 -0
  224. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/testomatio.md +331 -0
  225. package/skills/testeiya/testomatio-docs/docs/test-reporting/python.md +229 -0
  226. package/skills/testeiya/testomatio-docs/docs/test-reporting/workflows.md +325 -0
  227. package/skills/testeiya/testomatio-docs/docs/tutorials/Interacting-via-API.md +159 -0
  228. package/skills/testeiya/testomatio-docs/docs/tutorials/Manual-Testing-Classic.md +164 -0
  229. package/skills/testeiya/testomatio-docs/docs/tutorials/Set-Up-Read-Only-Access.md +85 -0
  230. package/skills/testeiya/testomatio-docs/docs/tutorials/Using-AI-in-Testing.md +163 -0
  231. package/skills/testeiya/testomatio-docs/docs/tutorials/Working-with-Jira.md +125 -0
  232. package/skills/testeiya/testomatio-docs/docs/tutorials/java.md +478 -0
  233. package/skills/testeiya/testomatio-docs/docs/tutorials/playwright.md +207 -0
  234. package/skills/testeiya/testomatio-docs/docs/tutorials/webdriver.md +218 -0
  235. package/skills/testeiya/testomatio-docs/docs.lock.json +6 -0
  236. package/skills/testeiya/testomatio-reporter/SKILL.md +307 -0
  237. package/skills/testomatio/explorbot/explorbot-fundamentals/SKILL.md +88 -0
  238. package/skills/testomatio/explorbot/explorbot-plan/SKILL.md +95 -0
  239. package/skills/testomatio/explorbot/explorbot-setup/SKILL.md +334 -0
  240. package/skills/testomatio/test-automation/automate-manual-test-cases/CLAUDE.md +56 -0
  241. package/skills/testomatio/test-automation/automate-manual-test-cases/SKILL.md +242 -0
  242. package/skills/testomatio/test-automation/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +182 -0
  243. package/skills/testomatio/test-automation/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +22 -0
  244. package/skills/testomatio/test-automation/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +90 -0
  245. package/skills/testomatio/test-automation/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +53 -0
  246. package/skills/testomatio/test-automation/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +52 -0
  247. package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/SKILL.md +107 -0
  248. package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +113 -0
  249. package/skills/testomatio/test-automation/qa-automation-test-consolidation/SKILL.md +29 -0
  250. package/skills/testomatio/test-automation/run-tests-with-testomatio-reporter/SKILL.md +151 -0
  251. package/skills/testomatio/test-automation/setup-pr-testing/SKILL.md +199 -0
  252. package/skills/testomatio/test-automation/testomat-allure-adapter/SKILL.md +289 -0
  253. package/skills/testomatio/test-management/detect-duplicate-test-cases/SKILL.md +86 -0
  254. package/skills/testomatio/test-management/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +54 -0
  255. package/skills/testomatio/test-management/improve-test-cases/SKILL.md +114 -0
  256. package/skills/testomatio/test-management/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +66 -0
  257. package/skills/testomatio/test-management/pull-request-diff-analyzer/SKILL.md +141 -0
  258. package/skills/testomatio/test-management/qa-e2e-tests-reporting/SKILL.md +354 -0
  259. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +82 -0
  260. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +37 -0
  261. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +118 -0
  262. package/skills/testomatio/test-management/qa-pr-requirements-analyzer/SKILL.md +149 -0
  263. package/skills/testomatio/test-management/qa-pr-requirements-analyzer/references/summary-example.md +54 -0
  264. package/skills/testomatio/test-management/qa-requirement-reviewer/SKILL.md +126 -0
  265. package/skills/testomatio/test-management/qa-requirement-reviewer/references/requirements_reviewer_examples.md +128 -0
  266. package/skills/testomatio/test-management/qa-test-code-coverage/SKILL.md +174 -0
  267. package/skills/testomatio/test-management/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +138 -0
  268. package/skills/testomatio/test-management/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +65 -0
  269. package/skills/testomatio/test-management/qa-test-code-coverage/scripts/check-coverage.mjs +40 -0
  270. package/skills/testomatio/test-management/qa-thinking/SKILL.md +36 -0
  271. package/skills/testomatio/test-management/qa-write-test-cases/SKILL.md +267 -0
  272. package/skills/testomatio/test-management/qa-write-test-cases/references/test-case-format.md +387 -0
  273. package/skills/testomatio/test-management/qa-write-test-cases/references/testomat-tms-guide.md +72 -0
  274. package/skills/testomatio/test-management/qa-write-test-cases/references/writing-rule.md +159 -0
  275. package/skills/testomatio/test-management/scan-automation-project/SKILL.md +152 -0
  276. package/skills/testomatio/test-management/sync-test-cases-with-tms/SKILL.md +107 -0
  277. package/skills/testomatio/test-management/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +140 -0
  278. package/skills/testomatio/test-management/testomatio-mcp/SKILL.md +182 -0
  279. package/skills/testomatio/test-management/testomatio-mcp/references/MCP_SETUP.md +169 -0
  280. package/skills.lock.json +72 -0
  281. package/skills.yaml +21 -0
  282. package/src/ai-debug.ts +188 -0
  283. package/src/api/agent-get.ts +22 -0
  284. package/src/api/agent-start.ts +384 -0
  285. package/src/api/client-log.ts +29 -0
  286. package/src/api/context.ts +332 -0
  287. package/src/api/debug-layout.ts +47 -0
  288. package/src/api/debug-report.ts +29 -0
  289. package/src/api/debug-snapshot.ts +30 -0
  290. package/src/api/debug-stream.ts +52 -0
  291. package/src/api/files-delete.ts +184 -0
  292. package/src/api/files-read.ts +41 -0
  293. package/src/api/files-rename.ts +99 -0
  294. package/src/api/files-tree.ts +292 -0
  295. package/src/api/files-write.ts +41 -0
  296. package/src/api/mcp.ts +603 -0
  297. package/src/api/memory.ts +69 -0
  298. package/src/api/open-external.ts +39 -0
  299. package/src/api/playwright-cli.ts +606 -0
  300. package/src/api/providers.ts +457 -0
  301. package/src/api/read-env-token.ts +33 -0
  302. package/src/api/sessions.ts +79 -0
  303. package/src/api/settings.ts +120 -0
  304. package/src/api/skills.ts +58 -0
  305. package/src/api/testomatio-attachment.ts +89 -0
  306. package/src/api/testomatio-auth.ts +284 -0
  307. package/src/api/testomatio-proxy.ts +197 -0
  308. package/src/api/testomatio-run-stats.ts +81 -0
  309. package/src/api/testomatio-target.ts +225 -0
  310. package/src/api/testomatio-transcription.ts +82 -0
  311. package/src/api/workspace-search.ts +96 -0
  312. package/src/api/workspace-sync.ts +151 -0
  313. package/src/api/workspace.ts +165 -0
  314. package/src/app-server.ts +556 -0
  315. package/src/bridge.ts +251 -0
  316. package/src/check-tests.ts +156 -0
  317. package/src/cli.ts +17 -0
  318. package/src/commands.ts +244 -0
  319. package/src/config.ts +183 -0
  320. package/src/connection.ts +658 -0
  321. package/src/context-store.ts +265 -0
  322. package/src/debug-bus.ts +405 -0
  323. package/src/extensions/tool-gate.ts +220 -0
  324. package/src/extensions/webui/ask-channel.ts +52 -0
  325. package/src/extensions/webui/index.ts +184 -0
  326. package/src/extensions/webui/tools/ask-question.ts +88 -0
  327. package/src/extensions/webui/tools/query-result.ts +79 -0
  328. package/src/extensions/webui/tools/render-chart.ts +53 -0
  329. package/src/extensions/webui/tools/render-item.ts +61 -0
  330. package/src/extensions/webui/tools/render-list.ts +170 -0
  331. package/src/extensions/webui/tools/render-result.ts +85 -0
  332. package/src/extensions/webui/tools/render-tree.ts +71 -0
  333. package/src/extensions/webui/tools/ui-widget.ts +54 -0
  334. package/src/extensions/webui/tools/widget-result.ts +13 -0
  335. package/src/extensions/webui/widget-channel.ts +50 -0
  336. package/src/file-log.ts +196 -0
  337. package/src/git-tracked.ts +68 -0
  338. package/src/gitignore.ts +53 -0
  339. package/src/json-store.ts +43 -0
  340. package/src/load-env.ts +70 -0
  341. package/src/loader-style.ts +96 -0
  342. package/src/main.ts +140 -0
  343. package/src/mcp-catalog.ts +96 -0
  344. package/src/models-catalog.ts +72 -0
  345. package/src/permissions.ts +120 -0
  346. package/src/project-dir.ts +189 -0
  347. package/src/project-info.ts +108 -0
  348. package/src/prompt/app-ui.ts +59 -0
  349. package/src/prompt/browser.ts +27 -0
  350. package/src/prompt/index.ts +62 -0
  351. package/src/prompt/system-prompt.ts +161 -0
  352. package/src/prompt/testomatio.ts +170 -0
  353. package/src/prompt/tools.ts +27 -0
  354. package/src/server-info.ts +62 -0
  355. package/src/session-factory.ts +442 -0
  356. package/src/session-store.ts +115 -0
  357. package/src/shell-env.ts +45 -0
  358. package/src/skills.ts +163 -0
  359. package/src/sync-snapshot.ts +140 -0
  360. package/src/telemetry.ts +239 -0
  361. package/src/testomatio-auth.ts +299 -0
  362. package/src/testomatio.ts +98 -0
  363. package/src/theme.ts +30 -0
  364. package/src/user-env.ts +94 -0
  365. package/src/welcome.ts +127 -0
  366. package/src/workspace/safe-path.ts +85 -0
  367. package/src/workspace/test-md.ts +70 -0
  368. package/src/workspace-model.ts +440 -0
  369. package/testeiya.config.json +14 -0
@@ -0,0 +1,476 @@
1
+ # Performance Testing & Web Vitals
2
+
3
+ ## Table of Contents
4
+
5
+ 1. [Core Web Vitals](#core-web-vitals)
6
+ 2. [Performance Metrics](#performance-metrics)
7
+ 3. [Performance Budgets](#performance-budgets)
8
+ 4. [Lighthouse Integration](#lighthouse-integration)
9
+ 5. [Performance Fixtures](#performance-fixtures)
10
+ 6. [CI Performance Monitoring](#ci-performance-monitoring)
11
+
12
+ ## Core Web Vitals
13
+
14
+ ### Measure LCP, FID, CLS
15
+
16
+ ```typescript
17
+ test("core web vitals within thresholds", async ({ page }) => {
18
+ // Inject web-vitals library
19
+ await page.addInitScript(() => {
20
+ (window as any).__webVitals = {};
21
+
22
+ // Simplified web vitals collection
23
+ new PerformanceObserver((list) => {
24
+ for (const entry of list.getEntries()) {
25
+ if (entry.entryType === "largest-contentful-paint") {
26
+ (window as any).__webVitals.lcp = entry.startTime;
27
+ }
28
+ }
29
+ }).observe({ type: "largest-contentful-paint", buffered: true });
30
+
31
+ new PerformanceObserver((list) => {
32
+ let cls = 0;
33
+ for (const entry of list.getEntries() as any[]) {
34
+ if (!entry.hadRecentInput) {
35
+ cls += entry.value;
36
+ }
37
+ }
38
+ (window as any).__webVitals.cls = cls;
39
+ }).observe({ type: "layout-shift", buffered: true });
40
+ });
41
+
42
+ await page.goto("/");
43
+
44
+ // Wait for page to stabilize
45
+ await page.waitForLoadState("networkidle");
46
+
47
+ // Get metrics
48
+ const vitals = await page.evaluate(() => (window as any).__webVitals);
49
+
50
+ // Assert thresholds (Google's "good" thresholds)
51
+ expect(vitals.lcp).toBeLessThan(2500); // LCP < 2.5s
52
+ expect(vitals.cls).toBeLessThan(0.1); // CLS < 0.1
53
+ });
54
+ ```
55
+
56
+ ### Using web-vitals Library
57
+
58
+ ```typescript
59
+ test("web vitals with library", async ({ page }) => {
60
+ await page.addInitScript(() => {
61
+ (window as any).__vitals = {};
62
+ });
63
+
64
+ // Inject web-vitals after navigation
65
+ await page.goto("/");
66
+
67
+ await page.addScriptTag({
68
+ url: "https://unpkg.com/web-vitals@3/dist/web-vitals.iife.js",
69
+ });
70
+
71
+ await page.evaluate(() => {
72
+ const { onLCP, onFID, onCLS, onFCP, onTTFB } = (window as any).webVitals;
73
+
74
+ onLCP((metric: any) => ((window as any).__vitals.lcp = metric.value));
75
+ onFID((metric: any) => ((window as any).__vitals.fid = metric.value));
76
+ onCLS((metric: any) => ((window as any).__vitals.cls = metric.value));
77
+ onFCP((metric: any) => ((window as any).__vitals.fcp = metric.value));
78
+ onTTFB((metric: any) => ((window as any).__vitals.ttfb = metric.value));
79
+ });
80
+
81
+ // Trigger FID by clicking
82
+ await page.getByRole("button").first().click();
83
+
84
+ // Wait and collect
85
+ await page.waitForTimeout(1000);
86
+
87
+ const vitals = await page.evaluate(() => (window as any).__vitals);
88
+
89
+ console.log("Web Vitals:", vitals);
90
+
91
+ // Assertions
92
+ if (vitals.lcp) expect(vitals.lcp).toBeLessThan(2500);
93
+ if (vitals.fid) expect(vitals.fid).toBeLessThan(100);
94
+ if (vitals.cls) expect(vitals.cls).toBeLessThan(0.1);
95
+ });
96
+ ```
97
+
98
+ ## Performance Metrics
99
+
100
+ ### Navigation Timing
101
+
102
+ ```typescript
103
+ test("page load performance", async ({ page }) => {
104
+ await page.goto("/");
105
+
106
+ const timing = await page.evaluate(() => {
107
+ const nav = performance.getEntriesByType(
108
+ "navigation",
109
+ )[0] as PerformanceNavigationTiming;
110
+
111
+ return {
112
+ // Time to First Byte
113
+ ttfb: nav.responseStart - nav.requestStart,
114
+ // DOM Content Loaded
115
+ domContentLoaded: nav.domContentLoadedEventEnd - nav.startTime,
116
+ // Full page load
117
+ loadComplete: nav.loadEventEnd - nav.startTime,
118
+ // DNS lookup
119
+ dns: nav.domainLookupEnd - nav.domainLookupStart,
120
+ // Connection time
121
+ connection: nav.connectEnd - nav.connectStart,
122
+ // Download time
123
+ download: nav.responseEnd - nav.responseStart,
124
+ // DOM processing
125
+ domProcessing: nav.domComplete - nav.domInteractive,
126
+ };
127
+ });
128
+
129
+ console.log("Performance timing:", timing);
130
+
131
+ // Assertions
132
+ expect(timing.ttfb).toBeLessThan(600); // TTFB < 600ms
133
+ expect(timing.domContentLoaded).toBeLessThan(2000); // DCL < 2s
134
+ expect(timing.loadComplete).toBeLessThan(4000); // Load < 4s
135
+ });
136
+ ```
137
+
138
+ ### Resource Timing
139
+
140
+ ```typescript
141
+ test("resource loading performance", async ({ page }) => {
142
+ await page.goto("/");
143
+
144
+ const resources = await page.evaluate(() => {
145
+ return performance.getEntriesByType("resource").map((entry) => ({
146
+ name: entry.name.split("/").pop(),
147
+ type: (entry as PerformanceResourceTiming).initiatorType,
148
+ duration: entry.duration,
149
+ size: (entry as PerformanceResourceTiming).transferSize,
150
+ }));
151
+ });
152
+
153
+ // Find slow resources
154
+ const slowResources = resources.filter((r) => r.duration > 1000);
155
+
156
+ if (slowResources.length > 0) {
157
+ console.warn("Slow resources:", slowResources);
158
+ }
159
+
160
+ // Find large resources
161
+ const largeResources = resources.filter((r) => r.size > 500000); // > 500KB
162
+
163
+ expect(largeResources.length).toBe(0);
164
+ });
165
+ ```
166
+
167
+ ### Memory Usage
168
+
169
+ ```typescript
170
+ test("memory usage is reasonable", async ({ page }) => {
171
+ await page.goto("/dashboard");
172
+
173
+ // Check memory (Chrome only)
174
+ const memory = await page.evaluate(() => {
175
+ if ((performance as any).memory) {
176
+ return {
177
+ usedJSHeapSize: (performance as any).memory.usedJSHeapSize,
178
+ totalJSHeapSize: (performance as any).memory.totalJSHeapSize,
179
+ };
180
+ }
181
+ return null;
182
+ });
183
+
184
+ if (memory) {
185
+ const usedMB = memory.usedJSHeapSize / 1024 / 1024;
186
+ console.log(`Memory usage: ${usedMB.toFixed(2)} MB`);
187
+
188
+ // Assert reasonable memory usage
189
+ expect(usedMB).toBeLessThan(100); // < 100MB
190
+ }
191
+ });
192
+ ```
193
+
194
+ ## Performance Budgets
195
+
196
+ ### Define Budgets
197
+
198
+ ```typescript
199
+ // performance-budgets.ts
200
+ export const budgets = {
201
+ homepage: {
202
+ lcp: 2500,
203
+ cls: 0.1,
204
+ fcp: 1800,
205
+ ttfb: 600,
206
+ totalSize: 1500000, // 1.5MB
207
+ jsSize: 500000, // 500KB
208
+ imageCount: 20,
209
+ },
210
+ dashboard: {
211
+ lcp: 3000,
212
+ cls: 0.1,
213
+ fcp: 2000,
214
+ ttfb: 800,
215
+ totalSize: 2000000,
216
+ jsSize: 800000,
217
+ },
218
+ };
219
+ ```
220
+
221
+ ### Test Against Budgets
222
+
223
+ ```typescript
224
+ import { budgets } from "./performance-budgets";
225
+
226
+ test("homepage meets performance budget", async ({ page }) => {
227
+ const budget = budgets.homepage;
228
+
229
+ await page.goto("/");
230
+ await page.waitForLoadState("networkidle");
231
+
232
+ // Measure LCP
233
+ const lcp = await page.evaluate(() => {
234
+ return new Promise<number>((resolve) => {
235
+ new PerformanceObserver((list) => {
236
+ const entries = list.getEntries();
237
+ resolve(entries[entries.length - 1].startTime);
238
+ }).observe({ type: "largest-contentful-paint", buffered: true });
239
+ });
240
+ });
241
+
242
+ // Measure resources
243
+ const resources = await page.evaluate(() => {
244
+ const entries = performance.getEntriesByType(
245
+ "resource",
246
+ ) as PerformanceResourceTiming[];
247
+ return {
248
+ totalSize: entries.reduce((sum, e) => sum + (e.transferSize || 0), 0),
249
+ jsSize: entries
250
+ .filter((e) => e.initiatorType === "script")
251
+ .reduce((sum, e) => sum + (e.transferSize || 0), 0),
252
+ imageCount: entries.filter((e) => e.initiatorType === "img").length,
253
+ };
254
+ });
255
+
256
+ // Assert budgets
257
+ expect(lcp, "LCP exceeds budget").toBeLessThan(budget.lcp);
258
+ expect(resources.totalSize, "Total size exceeds budget").toBeLessThan(
259
+ budget.totalSize,
260
+ );
261
+ expect(resources.jsSize, "JS size exceeds budget").toBeLessThan(
262
+ budget.jsSize,
263
+ );
264
+ expect(resources.imageCount, "Too many images").toBeLessThanOrEqual(
265
+ budget.imageCount,
266
+ );
267
+ });
268
+ ```
269
+
270
+ ### Budget Fixture
271
+
272
+ ```typescript
273
+ // fixtures/performance.fixture.ts
274
+ type PerformanceBudget = {
275
+ lcp?: number;
276
+ cls?: number;
277
+ ttfb?: number;
278
+ totalSize?: number;
279
+ };
280
+
281
+ type PerformanceFixtures = {
282
+ assertBudget: (budget: PerformanceBudget) => Promise<void>;
283
+ };
284
+
285
+ export const test = base.extend<PerformanceFixtures>({
286
+ assertBudget: async ({ page }, use) => {
287
+ await use(async (budget) => {
288
+ const metrics = await page.evaluate(() => {
289
+ const nav = performance.getEntriesByType(
290
+ "navigation",
291
+ )[0] as PerformanceNavigationTiming;
292
+ const resources = performance.getEntriesByType(
293
+ "resource",
294
+ ) as PerformanceResourceTiming[];
295
+
296
+ return {
297
+ ttfb: nav.responseStart - nav.requestStart,
298
+ totalSize: resources.reduce(
299
+ (sum, r) => sum + (r.transferSize || 0),
300
+ 0,
301
+ ),
302
+ };
303
+ });
304
+
305
+ if (budget.ttfb) {
306
+ expect(
307
+ metrics.ttfb,
308
+ `TTFB ${metrics.ttfb}ms exceeds budget ${budget.ttfb}ms`,
309
+ ).toBeLessThan(budget.ttfb);
310
+ }
311
+
312
+ if (budget.totalSize) {
313
+ expect(metrics.totalSize, `Total size exceeds budget`).toBeLessThan(
314
+ budget.totalSize,
315
+ );
316
+ }
317
+ });
318
+ },
319
+ });
320
+ ```
321
+
322
+ ## Lighthouse Integration
323
+
324
+ ### Using playwright-lighthouse
325
+
326
+ ```bash
327
+ npm install -D playwright-lighthouse lighthouse
328
+ ```
329
+
330
+ ```typescript
331
+ import { playAudit } from "playwright-lighthouse";
332
+
333
+ test("lighthouse audit", async ({ page }) => {
334
+ await page.goto("/");
335
+
336
+ // Run Lighthouse
337
+ const audit = await playAudit({
338
+ page,
339
+ port: 9222, // Chrome debugging port
340
+ thresholds: {
341
+ performance: 80,
342
+ accessibility: 90,
343
+ "best-practices": 80,
344
+ seo: 80,
345
+ },
346
+ });
347
+
348
+ // Assertions
349
+ expect(audit.lhr.categories.performance.score * 100).toBeGreaterThanOrEqual(
350
+ 80,
351
+ );
352
+ expect(audit.lhr.categories.accessibility.score * 100).toBeGreaterThanOrEqual(
353
+ 90,
354
+ );
355
+ });
356
+ ```
357
+
358
+ ### Lighthouse with Config
359
+
360
+ ```typescript
361
+ test("lighthouse with custom config", async ({ page }, testInfo) => {
362
+ await page.goto("/");
363
+
364
+ const audit = await playAudit({
365
+ page,
366
+ port: 9222,
367
+ thresholds: {
368
+ performance: 70,
369
+ },
370
+ config: {
371
+ extends: "lighthouse:default",
372
+ settings: {
373
+ onlyCategories: ["performance"],
374
+ throttling: {
375
+ rttMs: 40,
376
+ throughputKbps: 10240,
377
+ cpuSlowdownMultiplier: 1,
378
+ },
379
+ },
380
+ },
381
+ });
382
+
383
+ // Save report
384
+ const reportPath = testInfo.outputPath("lighthouse-report.html");
385
+ // Save audit.report to file
386
+
387
+ // Attach to test report
388
+ await testInfo.attach("lighthouse", {
389
+ body: JSON.stringify(audit.lhr),
390
+ contentType: "application/json",
391
+ });
392
+ });
393
+ ```
394
+
395
+ ## CI Performance Monitoring
396
+
397
+ ### Track Performance Over Time
398
+
399
+ ```typescript
400
+ // reporters/perf-reporter.ts
401
+ import { Reporter, TestResult } from "@playwright/test/reporter";
402
+
403
+ class PerfReporter implements Reporter {
404
+ private metrics: any[] = [];
405
+
406
+ onTestEnd(test: any, result: TestResult) {
407
+ const perfAnnotation = test.annotations.find(
408
+ (a: any) => a.type === "performance",
409
+ );
410
+
411
+ if (perfAnnotation) {
412
+ this.metrics.push({
413
+ test: test.title,
414
+ ...JSON.parse(perfAnnotation.description),
415
+ timestamp: new Date().toISOString(),
416
+ });
417
+ }
418
+ }
419
+
420
+ async onEnd() {
421
+ // Send to metrics service
422
+ if (process.env.METRICS_ENDPOINT) {
423
+ await fetch(process.env.METRICS_ENDPOINT, {
424
+ method: "POST",
425
+ body: JSON.stringify({
426
+ commit: process.env.GITHUB_SHA,
427
+ branch: process.env.GITHUB_REF,
428
+ metrics: this.metrics,
429
+ }),
430
+ });
431
+ }
432
+ }
433
+ }
434
+
435
+ export default PerfReporter;
436
+ ```
437
+
438
+ ### Performance Regression Detection
439
+
440
+ ```typescript
441
+ test("no performance regression", async ({ page }) => {
442
+ await page.goto("/");
443
+
444
+ const metrics = await page.evaluate(() => {
445
+ const nav = performance.getEntriesByType(
446
+ "navigation",
447
+ )[0] as PerformanceNavigationTiming;
448
+ return {
449
+ loadTime: nav.loadEventEnd - nav.startTime,
450
+ };
451
+ });
452
+
453
+ // Compare against baseline (could be from file or API)
454
+ const baseline = 2000; // ms
455
+ const threshold = 1.1; // 10% regression allowed
456
+
457
+ expect(
458
+ metrics.loadTime,
459
+ `Load time ${metrics.loadTime}ms is ${((metrics.loadTime / baseline - 1) * 100).toFixed(1)}% slower than baseline`,
460
+ ).toBeLessThan(baseline * threshold);
461
+ });
462
+ ```
463
+
464
+ ## Anti-Patterns to Avoid
465
+
466
+ | Anti-Pattern | Problem | Solution |
467
+ | --------------------------- | ------------------------- | -------------------------------- |
468
+ | Testing only once | Results vary | Run multiple times, use averages |
469
+ | Ignoring network conditions | Unrealistic results | Test with throttling |
470
+ | No baseline comparison | Can't detect regressions | Track metrics over time |
471
+ | Testing in dev mode | Slow, not production-like | Test production builds |
472
+
473
+ ## Related References
474
+
475
+ - **Performance Optimization**: See [performance.md](../infrastructure-ci-cd/performance.md) for test execution performance
476
+ - **CI/CD**: See [ci-cd.md](../infrastructure-ci-cd/ci-cd.md) for CI integration