This is a reporting and diagramming tool used with json reports generated by the artillery.io cli. Built in NextJS, Typescript, React, ChartJs, and Fontawesome.
- Artillery and Artillery Pro support
- Load reports using json files directly from the cli
- Load reports remotely using url
- Interactive graphs
- Docker image so you can host privately
- Serverside rendered allowing high performance
- Summarized report data for easy assessment
- Health and Performance ratings
- So much more...
You can see the changelog here.
Absolutely, check it out here: https://reportviewer.artillery.io/
Absolutely, we have a docker image published to dockerhub specifically for this purpose. Check it out: cfryerdev/artilleryio-report-viewer
There are a number of environment variables you can set:
LOADER_ENABLED=true
LOADER_ENFORCEWHITELIST=true
WHITELIST_PROTOCOLS=https,http
WHITELIST_HOSTS=**.blob.core.windows.net,**.s3-**.amazonaws.com
RATELIMITER_ENABLED=true
RATELIMITER_IP_HITS_PER_MINUTES=100
RATELIMITER_MINUTES=10
You can run this locally in three modes:
Debug (next+react)
$ npm install
$ npm run dev
Production mode (nextjs+express+react)
$ npm install
$ npm run build
$ npm run start
or via docker, see below...
When you run the artillery cli, you can simply add the following to your command to output a json file for use with this tool: -o some_report.json
This project uses NextJS in a typescript configuration to host React and serve up the react web application server-side via expressjs. This allows us to do clientside rendering and serverside rendering, as well as cache renderings to increase the performance of the application.
├─── public > Staticly served assets
├─── server > Service (NextJS)
│ ├─── index.ts > Service entry point
│ └─── routes.ts > Routes for all pages (abstraction)
└─── src > Web Application (React)
├─── assets > Assets such as images, styles, fonts, etc
│ ├─── images > Images to be embedded inside the app. Non-Static
│ └─── styles > Where all the Styles are located
├─── components > Generic components for web app
│ └─── addons > Where all of the addon specific components live
├─── contexts > State contexts for react
│ └─── report-context > Where all report state logic lives
├─── models > Where all of the structured objcets are
├─── layout > Layout for all pages
├─── pages > Page structure for navigation
│ ├─── index > The main page for the report viewer
│ ├─── home > Load payloads via json upload
│ │ └─── index
│ ├─── url > Load payloads via encoded url
│ │ └─── [url]
│ ├─── _app > App component wrapped around each page
│ ├─── _document > Pre-rendered component wrapped around application
│ ├─── _error > Error handling page
│ ├─── 404 > Page not found
│ └─── 500 > Server errors
└─── utilities > Utilities to mapping and formatting data
Testing framework coming soon...
This project uses Docker for deployments outside of your local environment. To create the docker image, navigate to this directory in your console and execute the following...
$ npm install
$ npm run build
$ docker build -t artilleryio/report-viewer:2.0.0 -t artilleryio/report-viewer:latest .
This will create a docker image with the tag artilleryio/report-viewer
.
To create a local container with the name aio-local-reportviewer
, execute the following...
$ docker run -p 8080:80 --name aio-local-reportviewer artilleryio/report-viewer
Then navigate to http://localhost:80
... Thats it, enjoy!
A completely revamped UI.
Easy on the eyes.
Get the important information without digging.
Enable and disable the metrics you care about.
Support for displaying custom metrics in both raw and custom views. More coming soon...
Better fonts and layout enable easier reading.
Quickly jump from section to section easily.
Want to upload your report and share it with somebody else? You can do that using the remote loading functionality.
Fully documented open api spec using swagger!