Data and Reporting Model
AppraiseJS separates authored test design from execution telemetry.
Authored model (design-time)
Section titled “Authored model (design-time)”- Structure chain:
Module -> TestSuite -> TestCase -> TestCaseStep. - Reusable behavior:
TemplateStepGroup -> TemplateStep -> TemplateStepParameter. - Selector layer:
LocatorGroup -> Locator. - Target context:
Environment. - Filtering/grouping:
TagwithFILTERandIDENTIFIERtypes.
Runtime model (execution-time)
Section titled “Runtime model (execution-time)”TestRun: one execution instance withrunId, environment, browser, workers, lifecycle status.TestRunTestCase: per-case status/result within the run.TestRunLog: persisted normalized log stream keyed byrunId.tracePathandreportPath: artifact pointers for debugging and ingestion.
Report ingestion model
Section titled “Report ingestion model”storeReportFromFile() parses Cucumber JSON into:
ReportReportFeature+ReportFeatureTagReportScenario+ReportScenarioTagReportStepandReportHookReportTestCaselinks back toTestRunTestCase
Scenario-to-test-case matching
Section titled “Scenario-to-test-case matching”Report ingestion matches scenario outcomes using two strategies:
- Scenario name prefix extraction from
[TestCaseTitle]. - Fallback matching via identifier tags between scenario tags and test-case tags.
Metrics model
Section titled “Metrics model”TestCaseMetrics: failure rate, consecutive failures, flaky/repeated-failure flags.TestSuiteMetrics: last executed timestamp.DashboardMetrics: aggregate operational counters used by dashboard cards/drawers.
Current thresholds in metric calculator:
- Recent window: 7 days.
- Repeated failure: 3+ consecutive failures.
- Flaky: failure rate > 5% and < 100%.