This application is an interface for Apache jMeter results saved in CSV.
Technologies used:
- docker
- node.js
- keystoneJS
- react
- redux
- mongoDB
In the root directory, you can run:
Builds docker images for backend, frontend and db.
Runs the app in the development mode.
Builds and runs the app in development mode at once.
- Upload
.csv
file by clicking UPLOAD button (Sample csv files are contained in/sampleCSV
). - Explore test results, calculate median, mode, percentiles and more in the stats tab
- Analyze response success rate and request time overview with charts
- Compare tests
To log into admin account navigate to localhost:8080/keystone/
. Log in with default credentials listed in Database User model section. Admin panel enables basic CRUD on every resource of the app (e.g. Test, Request).
Application uses Docker containers to serve three images with docker-compose.
User interface layer is build with contenerized CreateReactApp project. It comunicates with Node.js server to obtain data, which is stored in Mongo database. The api is a KeystoneJS CMS, with Admin panel to manage content of the application.
Database contains three tables based on Mongoose ODM models (User, Test, Request).
User model contains fields such as:
- name
- password
- canAccessKeystone
Name, email and password field are obtained by registration process. The "canAccessKeystone" parameter is bool variable stored for validation purposes. User can access admin application, only if this parameter is set to true. For this application migration creates admin account with credentials:
Test table consists of:
- user
- name
- createdAt
- file
- testData
User field stores Id from User table, which is automatically added by the backend application to Test when it is uploaded.
Name field represents the name of the .csv
file used to upload the test. TestData field is an array of id's from Request table.
Request table contains:
- id
- IdleTime
- Latency
- allThreads
- bytes
- dataType
- elapsed
- failureMessage
- label
- responseCode
- responseMessage
- sentBytes
- success
- threadName
- timeStamp
The complete database schema has been presented below: