gatling / gatling Goto Github PK
View Code? Open in Web Editor NEWModern Load Testing as Code
Home Page: https://gatling.io
License: Apache License 2.0
Modern Load Testing as Code
Home Page: https://gatling.io
License: Apache License 2.0
With a long scenario executing, there will also be a lot of different times showed on the X axis of the graphs.
When there are too much of these, they overlap and it is impossible to read the values.
We need to produce charts. Probably use http://www.highcharts.com/demo/line-ajax
Required pages :
global :
*) number of active sessions (total and per scenario) timed chart
*) number of requests per second (success and failures) timed chart --> count requests in 1 sec windows
per request name :
*) min, max, medium, standard deviation, 90% range
*) dispersion chart
currently Gatling offers the possibility to store values in the context to pass them to next requests. It lacks DSL to get information from this same context.
Verify that the active sessions are still counted like expected. And make each scenario have its own series.
The engine could print to the log file or to the console the minimum time that the simulation would take for a scenario
If the body is static (like file upload), make use of AHC zero copy capability.
If the body is dynamic, make use of a templating engine like freemarker.
Decide what kind of packaging we'd provide : a zip bundle with predefined folders (lib, conf, scenario, etc...), a assembly with all the modules and dependencies, etc...
Requests could be either POST or GET requests.
For both types of requests, there could be parameters.
For POST requests, also refer to issue #14
We can precompile templates with a maven plugin.
For now, there is a problem as it uses a Servlet dependant Context. (see comment in pom of gatling-stats)
When end of scenario happens in the same second as earlier actions, the counting is broken.
This method will save repetition of key when writing something like this :
it could become :
or, with CoC :
Make feeder as a queue and store its content in the context when a request asks for it.
Make the runner so that it can run multiple scenarios with specific delay and ramp.
We need a module to compute stats from raw data, like nb of transaction per sec.
At first, we probably just need a simple implementation that consumes raw files and generate as many files as graphs.
In the long term, we'll need a clean implementation that logs and computes stats in a database.
When we call pause in the scenario, we should be able to specify either:
I added the possibility to add a parameter to a POST request, I thought it was the equivalent of a form parameter, I'm not sure...
Make failures red and successes green
Use templating capabilities of Gatling to use GWT-RPC protocol
We need to provide users with the ability to post JSON. Thay could simulate access to Web Services and/or Ajax calls etc.
When data is extracted from the log file, it should be presented as graphics, but also exported to a TSV/CSV file.
For development purpose, JQuery and Highcharts files are accessed via internet.
For users to be able to use Gatling offline, these files need to be in the package.
Allow users to send files via POST requests using AHC zero copy capability => available
We want to simulate a form with file upload.
Context must be simpler : juste one map to store data.
Therefore, there will be some refactoring to do at some point
As we only log requests, times are discrete. The problem is that on the graph, the time axis is not normalized, therefore, all values are equally distributed even if the intervals between them are not the same.
We need a tool to facilitate scenario building.
One efficient way would be a recorder to be plugged onto a browser.
Either develop a full HTTP proxy or make use of http://google-opensource.blogspot.com/2009/05/introducing-webdriver.html
As well as JSON, we need to provide support for XML requests
To fully support web application and webservices that were built RESTful, PUT and DELETE HTTP words have to be implemented as well.
This issue is related to issue #11
It concerns the requests graph at a global level
As stated in issue #11, create an extractor/presenter couple that shows "min, max, medium, standard deviation, 90% range" information for a request in particular and another couple for a dispersion chart.
Scenarios should be scripts, not compiled code. Make use of scala interpreter.
We need a way to provide context data from external feeds, like a file containing users and passwords.
Lots of things should be configurable: Akka, AHC, stat handlers implementations, database, etc..
Have a look at configgy used by Akka.
This issue is related to issue #11
It concerns the active session graph at a global level
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.