System Summary - AxiomBenchmark/Axiom GitHub Wiki

Axiom's functionality is broken into several components that help to organize and provide opportunities to expand its featureset.

Core Features

Test applications are the core of Axiom's functionality. They are the important unknown that is being tested! This is the greatest point of expandability to the project, and version 1.0 comes with just a couple of examples to serve as models for implementation. See the Test Development Guide for more information.

The benchmark agent is the thin piece of client-side javascript that is loaded when a benchmark request is made from the client's browser. It communicates with the benchmark server to trigger tests and report results back to Axiom.

Similarly, the benchmark server is the server-side logic for executing framework tests. For now, tests are triggered for each successive framework and test, ingesting into the database as they are created.

The result agent is the interface between the benchmark server and database. It allows results to be saved somewhere else for later retrieval or processing. See the Database Guide for more information.

The database is a PostgreSQL instance that stores the test results for Axiom. See the Database Guide for more information.

The reporting agent is the interface between the database and the reporting engine. It contains queries for fetching individual benchmark results along with more holistic statistical results. See the Database Guide for more information.

Finally, the reporting engine is the user-friendly portal for accessing benchmark results. It combines the results from one or more reporting agent queries to build a report that is then shown to the user via the website. See the Reporting Guide for more information.

Additional Features

Several add-on features were build in time for the initial release.

A User Agent Customizer was added between the user agent detection API and the benchmark server, allowing the user to customize how Axiom reports certain devices based on their user agent string. This allows customizing the detection for known devices. See the Custom User Agent Guide for more information.

A Keyboard Navigation tool was built to allow Axiom to be controlled from a set top box remote. This tool takes keyboard commands and uses a coordinate system to navigate accordingly. See the Keyboard Navigation Guide for more information.