alexyza / jmeteranalyzer

SPA (Single Page Application) to analyze JMeter logs, it has a PHP backend and mysql DB

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JMeteranalyzer

Summary

JMeteranalyzer is an application to analyze JMeter logs, it has a PHP backend and mysql DB.

Details

This application has been developed by a senior Performance tester to analyze the JMeter results files after a test execution.

This application has been developed as a SPA (Single Page Application) with HTML5, Bootstrap, AngularJS, PHP and a MySQL database. It requires a PHP server and a MySQL database, a XAMPP server is perfect for it.

The application will generate Charts, Tables and Statistics for all the test and for each request/label, it also allows you to get the Average, Maximum and Minimum response time in specific range of time of a test.

Server Configuration

It is recommended but not mandatory do these configurations in PHP and MySQL

PHP

File: xampp\php\php.ini (in a XAMPP server) or /opt/lampp/etc/php.ini (in a LAMP server)

max_execution_time = 1200 
max_input_time = 360 
post_max_size = 80M 
upload_max_filesize = 80M 
default_socket_timeout = 360

MySQL

File: xampp\mysql\bin\my.ini (in a XAMPP server) or /opt/lampp/etc/my.cnf (in a LAMP server)

max_allowed_packet = 100M

This configurations are done to let PHP and MySQL handle big requests and heavy processes.

Database Configuration

In the file: \jmeteranalyzer\services\configuracion.php you should configure you Database

$db_host        =   "<db_server>";
$db_user        =   "<user>";
$db_password    =   "<password>";
$db_database    =   "db_jmeteranalyzer";

The user should have full rights on the specific database.

Installation

To install the database, you only need to request in you browser this URL:

http://<your server>/jmeteranalyzer/services/install.php

e.g http://localhost/jmeteranalyzer/services/install.php (if you have the application in your PC)

NOTE: It is probably that in linux you have to give rights to write in the folder /jmeteranalyzer/services/uploads

JMeter Configuration

It is important to do the configurations on JMeter to generate the results log with the correct structure. For a non-gui execution you need to modify the file: jmeter.propierties (apache-jmeter-2.##/bin) adding these lines:

jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.data_type=false
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=false
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=false
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.timestamp_format=ms
jmeter.save.saveservice.default_delimiter=,
jmeter.save.saveservice.autoflush=true
jmeter.save.saveservice.print_field_names=true

For a GUI execution you need to add a "Summary Report" listener and configure it as the image:

guiconfig fw

License

The license that I like is "CC BY-NC-SA" (Attribution-NonCommercial-ShareAlike 2.0 Generic). I think is fair (https://creativecommons.org/licenses/).

It uses canvas.js that has other license conditions (Creative Commons Attribution-NonCommercial 3.0 License) (http://canvasjs.com/license-canvasjs/) and it also uses an uploading code got from another Githug project (https://github.com/nervgh/angular-file-upload)

Bugs and Issues

If you find an issue please submit it here.

All the ideas are welcome too, so please let me know if there is any functionality you want.

Functionalities Screenshots

General information

generalinfo

Summary

summary

Timeline

timeline

Timeline data

timeline_data

Percentiles

percentiles

Home

home

Upload

upload

About

SPA (Single Page Application) to analyze JMeter logs, it has a PHP backend and mysql DB


Languages

Language:PHP 38.2%Language:JavaScript 28.2%Language:HTML 18.2%Language:ApacheConf 14.2%Language:CSS 1.2%