Skip to content

Commit 5278dcc

Browse files
committed
Update tools section and make review changes
1 parent 55c6b4a commit 5278dcc

1 file changed

Lines changed: 23 additions & 6 deletions

File tree

technical-reports/Performance-Testing.md

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,30 +20,46 @@ This report gives a brief overview of the profiling operations performed on TEAM
2020
TEAMMATES is one of the biggest student projects in the open source community. Currently, TEAMMATES boasts of a community comprising over 450 developers and a codebase of nearly 130LoC (as of 15th April, 2019).
2121
Maintaining such a project demands high quality standards to ensure long term survival.
2222
This means, continuously monitoring code health and product performance. As the number of developers and user base continue to grow, we need to ensure optimal performance at all times.
23-
In this report, we propose a viable solution to perform regression tests that will help developers keep a track of the potential bottlenecks and areas of optimizations.
23+
In this report, we propose a viable solution that will help developers monitor the potential bottlenecks and areas of optimizations.
2424
This will help boost the performance as the product evolves over time.
2525

2626
## Overview of Solution
2727

28-
The idea behind L&P tests is to simplify the process of understanding production performance and enable the developers to address bottlenecks before they become genuine production issues.
28+
The idea behind L&P tests is to simplify the process of understanding production performance. This is done by simulating a heavy load on a server by creating a large number of virtual concurrent users to web server.
2929
Implementing these tests involves a few key points:
3030

31-
* A tool/software to help performing these tests
32-
* A database to store the data of the profiler
33-
* A way of generating reports to help developers understand the metrics
31+
* A tool/software to help performing these tests.
32+
* A method to simulate a large number of users and send requests to a target server.
33+
* A way of generating reports to help developers understand the metrics.
3434

3535
After carefully considering various tools, we decided to use [Apache JMeter](https://jmeter.apache.org/) to help running the performance tests.
3636
In this report we will discuss the reasons behind why we chose JMeter and a more detailed description of our implementation.
3737

3838
## Tools considered for Performance Testing
3939

40+
Some of the tools that we considered before deciding on JMeter were:
41+
42+
* [Gatling](https://gatling.io/)
43+
* [LoadRunner](https://www.guru99.com/introduction-to-hp-loadrunner-and-its-archtecture.html)
44+
* [BlazeMeter](https://www.blazemeter.com/)
45+
4046
## Reasons for using JMeter
4147

48+
One of the main reasons we use JMeter over the other tools was the extensive documentation we found online. There are a number of resources to help you get started. Some of which we have listed below:
49+
50+
* [JMeter Tutorial for beginners](https://www.guru99.com/jmeter-tutorials.html)
51+
* [How to use JMeter](https://www.blazemeter.com/blog/how-use-jmeter-assertions-three-easy-steps)
52+
* [The official website](https://jmeter.apache.org/usermanual/build-web-test-plan.html) also offers a good documentation on how to get started.
53+
54+
Some other reasons why we found JMeter to be useful:
4255

56+
**Open Source** - JMeter is an open source software. This means that it can be downloaded free of cost. The developer can use its source code, can modify and customize it as per their requirement.
57+
**Ease of Integration Integration** - It is easier to integrate JMeter into the project because of the [JMeter Java API](https://jmeter.apache.org/api/index.html). There is also a [jmeter-gradle plugin](https://github.com/jmeter-gradle-plugin/jmeter-gradle-plugin) if you want to make it a part of your build process.
58+
**Roust Reporting** - JMeter can generate the effective reporting. The test result can be visualized by using Graph, Chart, and Tree View. JMeter supports different formats for reporting like text, XML, HTML and JSON.
4359

4460
## Current implementation of the solution
4561

46-
JMeter offers us a couple of ways to perform the tests. We had the choice of performing these tests with automating tools like [jmeter-gradle plugin](https://github.com/jmeter-gradle-plugin/jmeter-gradle-plugin) and the [JMeter Java API](https://jmeter.apache.org/api/index.html).
62+
JMeter offers us a couple of ways to perform the tests. We had the choice of performing these tests with automating tools like jmeter-gradle plugin and the JMeter Java API.
4763
We explored both possibilities but ended up using the JMeter Java API. Some key observations we made:
4864

4965
* The jmeter-gradle-plugin is not well maintained and does not have easy-to-find documentation.
@@ -69,3 +85,4 @@ A more detailed overview of the tasks performed can be seen in the [Continuous P
6985
## Future Work
7086

7187
We need to fine-tune the L&P test parameters and set suitable thresholds for failure. These should align with the goals of the application.
88+
Currently login takes a lot of time (compared to student profile, at least). So, we can explore the idea of using a delay after login, and testing the endpoint after that.

0 commit comments

Comments
 (0)