Performance test center. Docker based service to help user manage, organize, execute JMeter test and get detailed performance report.
Docker is properly installed and configured
Download Docker image from Docker hub:
- mongo: Mongo db
- ptc: JMeter master along with PTC main service
- jmeterslave:JMeter slave to execute test and send report back to master
- jmeterslave and jmetermaster are built base on jmeter3.0base
- ptc is built base on jmetermaster
- Feel free to edit the Dockerfile and build your own docker image with selected version of Java/JMeter/NodeJS etc.
- Start mongo db. Bind default mongo db port 27017 to selected server port
docker run -dit -p 27017:27017 --name mongo mongo
- Start as many JMeter slaves as needed
docker run -dit --name slave1 jmeterslave
docker run -dit --name slave2 jmeterslave
docker run -dit --name slave3 jemterslave
- Inspect IP address of jmeter slave(s).
docker inspect --format '{{ .Name }} => {{ .NetworkSettings.IPAddress }}' $(docker ps -a -q)
Start PTC(JMeter master) by passing in mongo and slave information.
docker run -it -p <server port>:<container port 8080 by default> -e mongoAdd=<IP Address of mongo db> -e mongoPort=<Port of mongo db> -e slaves=<Slave IP separated by comma> --name ptc ptc
- If you saw "db conncetion established", you are ready to go. Visit http://localhost:8080 to use PTC
- Register and login the system
- Create a project if there isn't any
- Go to Performance Testing->JMeter test page to add a test
-
Specify mandatory information of a test:
- Choose a project
- Fill in test name
- Upload a JMeter test case
-
Specify optional information:
- Fill in host and port
- Other parameters by dragging the sliders
-
Click save button, test will be executed automatically. Check execution status in 'Execution History' section
- After test status becomes to 'Finished', click log to check the report.
You can define parameters like thread user, rampup time... directly in JMeter test case, that way the parameters you specified on web page won't take effect. Otherwise, use ${__p()}
to take the parameter. Here is an sample case
- Object Tests are organized under project. Open an object
- All tests that under this project will be listed
- Object name and description can be updated
- Object can be deleted only if there is no test under it
- Test A test contain a JMeter case and related configuration. Open a test:
- Test execution history will be listed
- Test can be updated by changing the case and/or the configuration
- Test can be re-executed directly by click the 'Play' button
- Test can be deleted, and all its execution history will be deleted together
- Activity To log some major events like test creation and update
- You can check activity on homepage-> dashboard
- If a test gets deleted, all its related activities will be deleted too
First registered user is super user, and others will be normal user
- Super user can visit all data(Project, test, test execution log etc.
- Normal user can only visit the data created by himself/herself
Wenwen Yang wenwen.yang88@gmail.com