Powered by AI-assisted QA Engineering

Qualidade em
todas as camadas

OmniQA e um framework de automação multi-plataforma que cobre Web, API, Mobile e Performance em um único monorepo — com TypeScript, CI/CD e relatórios visuais.

4
Plataformas cobertas
100%
TypeScript
CI
GitHub Actions
HTML
Relatórios visuais

Uma base, quatro frentes

Cada plataforma vive em seu próprio módulo, com ferramentas especializadas e sem acoplamento entre camadas.

🔌

API Testing

Validação de contrato, status code, schema e tempo de resposta. Cobertura rápida e barata na base da pirâmide.

Playwright
🌐

Web E2E

Jornadas críticas com Page Object Model — login, carrinho, checkout e validações visuais de copy do inventário com evidências por etapa.

Playwright + Chromium
📱

Mobile

Automação mobile com Appium e Screen Objects por plataforma. Android e iOS seguem a mesma intenção de fluxo, com specs, seletores e particularidades separados por SO.

Appium + WebdriverIO

Performance

Testes de carga com VUs configuráveis, thresholds de p95 e relatório HTML com métricas de throughput e latência.

k6

Arquitetura modular

Monorepo por plataforma — responsabilidades claras, sem acoplamento entre camadas.

omniqa-framework/ Monorepo TypeScript dividido por responsabilidade de teste

tests-api/Contrato

  • ├──support/Contratos e validadores reutilizáveis
  • │ ├──contracts.tsSchema esperado de cada endpoint
  • │ └──apiAssertions.tsHelpers de validação
  • └──jsonplaceholder.spec.tsSpecs de contrato e payload

tests-web/E2E Web

  • ├──pages/Page Object Model
  • │ ├──LoginPage.tsAutenticação
  • │ ├──InventoryPage.tsCatálogo
  • │ └──CartPage.tsCarrinho e checkout
  • ├──specs/Jornadas e validações visuais de copy
  • └──support/Evidências e dados de teste

tests-mobile/Android + iOS

  • ├──android/Screen Object + seletores Android
  • │ ├──screens/Telas automatizadas
  • │ └──contactsSelectors.tsSeletores por plataforma
  • └──ios/Espelho com seletores iOS
  •   └──mobileEvidence.tsScreenshots por etapa

tests-support/Compartilhado

  • └──evidence/Nomeação reutilizável de evidências
  •   └──evidenceName.tsID, etapa e timestamp

tests-performance/k6

  • └──jsonplaceholder-load.jsCarga com VUs e thresholds

scripts/Relatórios

  • ├──report-styles.tsDesign system compartilhado
  • ├──generate-junit-report.tsResumo de execução
  • ├──generate-performance-report.tsRelatório de performance
  • └──regression.shOrquestrador com flags --skip-*

Padrões aplicados

Cada decisão de design tem um motivo — reuso, manutenção e clareza.

PATTERN 01

Page Object Model

Cada página da aplicação web tem uma classe dedicada. Os testes não tocam no DOM diretamente — toda interacao passa pela classe de página. Se um seletor muda, a correcao e feita em um único lugar.

PATTERN 02

Screen Object — Mobile

Equivalente ao POM para mobile. Android e iOS seguem o mesmo desenho de automacao, mas mantêm specs, Screen Objects e seletores separados para refletir as diferenças reais entre UiAutomator2 e XCUITest.

PATTERN 03

Support Layer

Cada módulo tem uma pasta support/ com responsabilidades distintas: dados de teste (*Data.ts), seletores (*Selectors.ts) e captura de evidências. A nomeação das evidências fica centralizada em tests-support/evidence para Web, Android e iOS.

PATTERN 04

Contract Testing

Os testes de API validam não apenas o status code, mas o schema do payload via contratos tipados em TypeScript. Qualquer mudanca inesperada no contrato quebra o teste antes de chegar ao E2E.

PATTERN 05

Pirâmide de Testes

Mais testes baratos e rápidos na base (API/contrato), menos E2E no topo (Web/Mobile). Performance como camada transversal. Cada camada valida o que não foi coberto pela camada abaixo.

PATTERN 06

Monorepo Modular

Uma única base de código, configuração e linguagem para todas as plataformas. Sem duplicidade de setup, sem troca de contexto entre repositorios. CI único para todas as camadas.

Pipeline CI/CD

GitHub Actions com runner Ubuntu gratuito. Dispara em todo push e pull request para main, mantendo o bypass das validações visuais demonstráveis habilitado na esteira.

Checkoutactions/checkout
Node + npm cisetup-node
Playwrightinstall chromium
k6 installcurl + mv
test:apiPlaywright
test:webPlaywright
test:perfk6
RelatóriosHTML + JUnit

Artefatos disponíveis na aba Actions por 30 dias · Mobile executado localmente

Comandos principais

Instalação separada por sistema operacional. Depois do setup, os comandos de execução são os mesmos no macOS e no Windows.

Instalar base
brew install git node k6
Clonar repositório
git clone https://github.com/BrendonWalefy/omniqa-framework.git
Entrar na pasta
cd omniqa-framework
Instalar projeto
npm ci; npx playwright install chromium
Instalar base
winget install Git.Git; winget install OpenJS.NodeJS.LTS; winget install k6
Validar ferramentas
git --version; node --version; npm --version; k6 version
Clonar repositório
git clone https://github.com/BrendonWalefy/omniqa-framework.git
Instalar projeto
cd omniqa-framework; npm ci; npx playwright install chromium
Fluxo padrão
npm run test
Regressão sem iOS
npm run test:regression:skip-ios
Testes de API
npm run test:api
Testes Web
npm run test:web
Web sem validações visuais
BYPASS_SAUCE_COPY_BUGS=true npm run test:web
Testes de Performance
npm run test:performance
Gerar todos os relatórios
npm run report:all
Abrir relatórios
npm run report:open