Upgrade Playwright suite to v2.5.1 SQLite deep testing
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# SQLite-first UAT/VAPT Results
|
||||
|
||||
This build records Playwright UAT/VAPT execution directly into SQLite.
|
||||
|
||||
## Output files
|
||||
|
||||
After a run, the important files are:
|
||||
|
||||
```text
|
||||
results/uat_vapt_results.sqlite
|
||||
results/UAT_VAPT_SQLite_Export.xlsx
|
||||
results/merged-results.json
|
||||
results/Audit_Firm_ERP_Master_UAT_VAPT_Checklist_v2_4_Results.xlsx
|
||||
results/playwright-results.json
|
||||
```
|
||||
|
||||
## How it works
|
||||
|
||||
1. `data/generated-test-matrix.json` is imported into SQLite table `test_cases`.
|
||||
2. A new row is created in `test_runs`.
|
||||
3. Every Playwright test result is inserted immediately into `test_results` by `reporters/sqlite-reporter.js`.
|
||||
4. Screenshots, traces, and videos are recorded in `test_attachments`.
|
||||
5. SQLite is exported to JSON and Excel after the run.
|
||||
|
||||
## Important command
|
||||
|
||||
Use this command, without overriding the reporter:
|
||||
|
||||
```bash
|
||||
cd /tests
|
||||
node run-api-checks.js
|
||||
npm run db:import-cases
|
||||
npx playwright test --workers=1
|
||||
npm run db:summary
|
||||
npm run db:export-json
|
||||
npm run db:export-excel
|
||||
npm run update:excel
|
||||
node scripts/result-server.js
|
||||
```
|
||||
|
||||
Do not run with `--reporter=list`, because that disables the configured SQLite/json/html reporters.
|
||||
|
||||
## Query SQLite
|
||||
|
||||
Summary:
|
||||
|
||||
```bash
|
||||
sqlite3 results/uat_vapt_results.sqlite "SELECT status, COUNT(*) FROM test_results GROUP BY status;"
|
||||
```
|
||||
|
||||
Latest failures:
|
||||
|
||||
```bash
|
||||
sqlite3 results/uat_vapt_results.sqlite "
|
||||
SELECT tc.variant_id, tc.module, tc.scenario, tr.status, substr(tr.error_message,1,250) AS error
|
||||
FROM test_results tr
|
||||
LEFT JOIN test_cases tc ON tc.variant_id = tr.variant_id
|
||||
WHERE tr.run_id = (SELECT MAX(id) FROM test_runs)
|
||||
AND tr.status != 'passed'
|
||||
ORDER BY tc.module, tc.variant_id
|
||||
LIMIT 100;
|
||||
"
|
||||
```
|
||||
|
||||
Not-run cases:
|
||||
|
||||
```bash
|
||||
sqlite3 results/uat_vapt_results.sqlite "
|
||||
SELECT tc.variant_id, tc.module, tc.scenario
|
||||
FROM test_cases tc
|
||||
LEFT JOIN test_results tr
|
||||
ON tr.variant_id = tc.variant_id
|
||||
AND tr.run_id = (SELECT MAX(id) FROM test_runs)
|
||||
WHERE tr.id IS NULL AND tc.automation != 'manual'
|
||||
ORDER BY tc.variant_id;
|
||||
"
|
||||
```
|
||||
|
||||
## Result dashboard
|
||||
|
||||
The Dockerfile starts `scripts/result-server.js` on port `3000` after tests complete. In Coolify expose port `3000` and protect it using Basic Auth or IP restriction.
|
||||
|
||||
Suggested persistent volumes:
|
||||
|
||||
```text
|
||||
/tests/results
|
||||
/tests/test-results
|
||||
/tests/playwright-report
|
||||
```
|
||||
Reference in New Issue
Block a user