0% found this document useful (0 votes)
83 views5 pages

A Pragmatic Evaluation of Stress and Performance Testing Technologies For Web Based Applications

The document discusses various tools for stress and performance testing of web applications. It describes tools like Apache JMeter, Locust, Gatling and others, providing their functions and URLs. It focuses on Locust, an open source Python-based tool for load testing web applications under high traffic loads.

Uploaded by

Filip
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views5 pages

A Pragmatic Evaluation of Stress and Performance Testing Technologies For Web Based Applications

The document discusses various tools for stress and performance testing of web applications. It describes tools like Apache JMeter, Locust, Gatling and others, providing their functions and URLs. It focuses on Locust, an open source Python-based tool for load testing web applications under high traffic loads.

Uploaded by

Filip
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

A Pragmatic Evaluation of Stress and Performance Testing

Technologies for Web Based Applications


S. Pradeep1, Yogesh Kumar Sharma2
1
Research Scholar, Dept. of CSE, JJT University, Jhunjhunu, Rajasthan, India
2
Head of the Department and Associate Professor, Dept. of CSE, JJT University, Jhunjhunu, Rajasthan, India

Abstract: The cumulative and multi-dimensional audit of the Load Testing: Evaluation of behavior of software with access
software applications are required so that the evaluation of by the huge load of users concurrently. The capacity of
the software suite on assorted tasks can be evaluated. In this software is analyzed to handle the load of users [3].
manuscript, the assorted dimensions of the audit of web
based applications are addressed with the evaluation of Stress Testing: Analysis of the robustness of software. It
multiple tools. The integration of prominent tools are done identifies the specific points where the software modules
for the pragmatic evaluation so that the analytics and testing getting issues and evaluation under extreme conditions of
can be done for the web applications using such tools. The system failure [4].
process of software development integrates the tasks of
rigorous testing on multiple parameters and dimensions so Security Testing: To discover the vulnerabilities and security
that the overall performance of the software suite can be loop-holes in the software. It also includes the penetration
highly effective. The process of software testing is mandatory testing that tries to identify the hacking or cracking
for every type of software product whether it is desktop probabilities of the software [5].
standalone software or web based application. Without
proper testing, the software application can behave Smoke Testing: It ensures the working of important and key
abnormally or can crash with specific inputs that cause the features of the software product. It is used to check the
failure of the software applications. This manuscript is stability of software for further stages of testing. The most
presenting the key software testing tools which are primarily critical functions are analyzed in this testing strategy [6].
used for stress and performance testing of the web
Unit Testing: The software is tested at each level of component
applications so that the applications can be tested before
and module so that the behavior of individual units can be
launching on the real time servers and testing the application
analyzed [7].
on multiple dimensions. The presented research work is
found quite effectual with the deep evaluations of the Acceptance Testing: The evaluation of software based on the
software audit approaches and evaluation parameters. prescribed Software Requirements Specification (SRS) is done
to make it deliverable. The levels and scores for acceptability
Keywords: Apache JMeter, Load Testing, HULK, Locust,
of software product are investigated [8].
Performance Testing, Software Testing, Stress Testing,
Software Testing Tools Graphical User Interface (GUI) Testing: The proper
functioning of the graphical user interface or simply the front-
I. INTRODUCTION
end of application is tested so that the software can be user-
The process of software testing is one of the key tasks that are friendly and able to function as per the requirements [9].
performed by a team of experts having deep knowledge of the
tools and technologies for the evaluation of software product Gorilla Testing: The software modules are tested repeatedly
from multiple dimensions [1, 2]. under assorted scenarios and inputs so that the consistency of
software can be checked. It also refers to Frustrating Testing
Before actual delivery and launching of the software that involves iterative testing of same component and
application, the software testing approaches are implemented identification of the bugs [10].
so that it can smoothly execute in the real time environment.
Performance Testing: It involves the evaluation of the software
There are assorted types of software testing for desktop as well product on multi-dimensional aspects including Speed, Load,
as web based applications. Following are the prominent Traffic, Stress, Susceptibilities and many others [11].
approaches of web applications testing which are traditionally
implemented for the software audit.

978-1-5386-9346-9/19/$31.00 ©2019 IEEE


II. PROMINENT TOOLS FOR RIGOROUS Tool Function and Official URL
SOFTWARE TESTING Key Operations
Following are the key tools and technologies with the advance Web Testing
libraries for the automation of stress and performance testing Test
of assorted software applications SoapUI SOAP Testing www.soapui.org/
REST Testing
TABLE 1: Key Tools and Libraries for Software Testing
Selendro Automation selendroid.io/
Tool Function and Official URL id Testing for
Key Operations Mobile Apps
Apache Load Testing Apache JMeter.apache.org/ Gatling Performance gatling.io/
JMeter Performance Testing
Testing Load Testing
Grinder Load Testing grinder.sourceforge.net/ Tsung Stress Testing tsung.erlang-projects.org/
Multi- Load Testing multi- Distributed Load
Mechani Performance mechanize.readthedocs.io/e Testing
ze Testing n/latest/ FltNesse Acceptance fitnesse.org/
Scalability Testing
Testing TestNG Server Testing testng.org
Seleniu Automation of www.seleniumhq.org/ Performance
m Web Browsers Testing
Regression Data Driven
Automation Testing
Exploratory
Testing III. LOCUST
Capybar Simulation of github.com/teamcapybara/c Locust: Open Source Tool for Load Testing URL :
a User Behavior apybara https://locust.io/
OpenST Stress Testing opensta.org/
A Web Load
Testing,
Pylot Load Testing code.google.com/archive/p/
Benchmarking pylt/downloads
Capacity
Planning
System Tuning
WebLoa Load Testing www.radview.com/webload-
d Response download/
Validation
Testing
Webrat Acceptance github.com/brynary/webrat
Testing
Browser
Simulation
Fig. 1. Python based Locust for Software Testing
Appium Testing of appium.io/
Hybrid, Native Locust [12] is a Python based tool for evaluation of the
and Mobile Web behavior of a web application with multiple concurrent users.
Apps Locust can generate the traffic that connects to the web
Cucumb Acceptance cucumber.io/z application with the objectives to test the behavior with huge
er Testing load. It is one of the high performance tools for the load testing
under free and open source distribution. Locust defines the
Watir Automation watir.com/
behavior and load of virtual traffic on the web application or
Testing
server. It creates the enormous swarm based traffic so that the
Canoo Automation webtest.canoo.com/ random load can be put on the website.

400
For example, to test the behavior of a website on concurrent Apache JMeter can be downloaded from http://Apache
1000 users, there is need to get 1000 users. Practically it is JMeter.apache.org/download_ApacheJMeter.cgi for different
difficult to hire 1000 users to open a website and checking platforms and flavors as it is cross-platform software. From
whether the website is working fine. Using Locust, any this link, the Apache JMeter is available in compressed format.
number of user traffic can be generated and finally the report is Apache JMeter is extracted with the executable files which are
presented on the multiple parameters including number of available in the bin directory.
requests, content size, failure attempts and many others.
There is no specific naming convention or compulsion
regarding the title of test plan. The testing engineer or audit
expert can specify the name or title as per their own
convenience.

Fig. 2. The View of locustfile.py in Locust

The Key Features of Locust includes that it is Free and Open


Source under Apache with Command Line Interface (CLI) Fig. 3. Creating a Thread Group for Load Testing
based, Evaluates both Standalone or Live Websites,
Performance Testing for Web Server, Specifically for HTTP The thread group is used so that the huge enormous users or
Web Server, Load Testing and Benchmarking Tool, Platform traffic are required for the testing of application that integrates
Independent and many others for the evaluation with software the threads.
audit.

IV. APACHE JMETER


URL : https://jmeter.apache.org
Apache JMeter [13] is another Free and Open Source Tool that
is used by the software quality and testing engineers for the
load testing, performance testing and functional behavior of
the web applications. Initially, it was developed for the audit of
web applications, but now days it is also used for core network
functions and deep evaluation of the protocols.

Apache JMeter is able to test and present the deep audit of File
Transfer Protocol (FTP), Directory Services Lightweight
Directory Access Protocol (LDAP), Database Connections,
TCP, Mail Protocols (SMTP, POP, IMAP), Web Protocols
(HTTP, HTTPS), Java Objects, Shell Scripts and Native
Commands

Apache JMeter is loaded with the full feature rich IDE for Fig. 4. Specifying Threads (Users) in Apache JMeter
testing, debugging and test plan recordings so that the A number of users are created virtually without physical
cavernous analytics of the web applications can be done. The presence so that the web application can be tested and thereby
detailed documentation and tutorials are available on the the cumulative performance can be investigated by the
official website of Apache JMeter which can be used for webmasters and web administrators.
assorted case studies.

401
The option of HTTP Request is selected because in case of V. HULK AUTOMATION
web application testing, the protocol of HTTP works to present
Python is one of the powerful and multi-featured programming
the outcome on web browser or HTTP client. The HTTP client
languages that is used for multiple applications including cloud
opens the web page or URL only if that particular link is
computing, cyber security, digital forensics, Internet of Things
responding as without any issues.
(IoT), Fog Computing and many others.
The web application under testing can be specified in the suite
Generally, the penetration testers are dependent on the third
of Apache JMeter in terms of official link or IP address so that
party tools and software applications for digital forensic and
the direct connectivity with the web server can be evaluated for
audit of the software applications. This approach of using third
further investigations.
party software is not reliable and secured always.
The option to select “View Results Tree” enable the web
The implementations of different testing strategies can be done
administrator to visualize whether the load testing parameters
using core programming scripts written in Python. As there are
and factors are successful with the association of assorted as
many tools and libraries for load testing, stress testing and
well as enormous load on the web application.
performance testing but the Python Programs can be directly
used for these implementations. Using unreliable tools for
penetration testing and load testing can be dangerous because
own system information can be shared to the other locations
and it will not be secured.

HTTP Unbearable Load King (HULK) is a type of DDoS


Attack on the server but it can be used for the testing of web
application. Using HULK implementation, the performance of
web application can be tested to check whether the web
application is able to handle the DDoS or HULK based traffic.
If the web application is getting down or having more delay in
opening, the preventive measures can be taken. HULK script
generates the unbearable huge load to the web application and
by this way the web administrator can check whether the web
application is working fine after implementation of HULK.
The webmasters and network administrators can analyze the
error log files and access log files to check the attempts and
performance of web application after implementation of
HULK or similar implementations.
Fig. 5. Generation of HTTP Requests for Generation of Load
VI. EXECUTION AND PERFORMANCE
EVALUATION
To evaluate the relative performance of Apache JMeter and
Python based Locust tool, the different websites are tested with
same type of load and traffic so that the execution time and
throughput can be calculated.

TABLE 2: Comparison of Apache JMeter, Locust and HULK


Analyzer in testing on parameter of execution time in seconds

Testing Apache Python based HULK


Attempt JMeter Locust Analyzer
1 1.432 1.093 1.107
2 1.534 1.291 1.472
Fig. 6. Analysis of Logs and Response from Server
3 1.938 1.342 1.420
From the analysis of logs and response outcome from the 4 2.208 1.938 2.091
server, it can be checked whether the request to the web
application was successful or not. The response code presents 5 3.422 2.819 2.989
the cumulative outcome from the server from the initial point
of contact by the client.

402
From the outcome and different testing attempts, the Locust Applications, Integrity Aware Vulnerability Recognition in
tool is found comparatively fast and having less execution time Web Applications, Deep Learning based Identification of
as compared to Java based Apache JMeter. Suspects in the Access of Web Applications and many others.
With the integration of more tools and open source libraries,
Process of Evaluation the overall process of software testing in multiple dimensions
can be enriched on multiple parameters so that the delivery of
1. Generation of Load with Virtual Traffic software product with the bug free and having higher
performance.
2. Presentation of the Load to the Web Server with the
Evaluation Perspectives REFERENCES
3. Analysis of the Performance and Stress of the Web Server [1] A. Arcuri, “An experience report on applying software testing
with specific Load academic results in industry: we need usable automated test
generation”, Empirical Software Engineering. 2018 Aug
4. Analytics of the Performance Parameters of the Web 1;23(4):1959-81.
Application and Server [2] P. Ranjan, S. Kumar, U. Kumar, "Software fault prediction
using computational intelligence techniques: A survey", Indian
Journal of Science and Technology. 2017 May 7;10(18).
5. Logging of Results
[3] R. Abbas, Z. Sultan, S. N. Bhatti, "Comparative Study of Load
Testing Tools: Apache JMeter, HP LoadRunner", Microsoft
6. Cumulative Performance Assessment with the generation
Visual Studio (TFS), Siege. Sukkur IBA Journal of Computing
of the load and overall traffic and Mathematical Sciences. 2017 Dec 31;1(2):102-8.
[4] W. Jun and F. Meng, "Software testing based on cloud
computing", International Conference in Internet Computing &
Information Services (ICICIS), pp. 176-178. IEEE, September
2011.
[5] B. Potter and G. McGraw, "Software security testing", IEEE
Security & Privacy, vol. 2(5), pp. 81-85, 2004.
[6] S. McConnell, "Daily build and smoke test". IEEE software,
vol. 4, pp. 144-143, 1996.
[7] E. Dustin, "Effective Software Testing: 50 Ways to Improve
Your Software Testing", Addison-Wesley Longman Publishing
Co. Inc., 2002.
[8] P. Hsia, D. Kung and C. Sell, "Software requirements and
acceptance testing", Annals of software Engineering, vol. 3(1),
pp. 291-317, 1997
[9] A. M. Memon, "GUI testing: Pitfalls and process". Computer,
vol. 8, pp. 87-88, 2002
[10] D. D. Phan, "Software quality and management", Information
Fig. 7. Comparison of Time taken in Testing by Apache JMeter, Systems Management, vol. 18(1), pp. 56-67, 2001.
Locust and HULK Analyzer [11] G. Denaro, A. Polini, and W. Emmerich, "Early performance
testing of distributed software applications", ACM SIGSOFT
VII. CONCLUSION Software Engineering Notes, vol. 29, No. 1, pp. 94-103, 2004.
[12] T. F. Düllmann, R. Heinrich, A. v. Hoorn, T. Pitakrat, J. Walter
In the domain of security towards the web based applications, and F. Willnecker, "CASPA: A Platform for Comparability of
there exist enormous perspectives which are required to be Architecture-Based Software Performance Engineering
addressed and worked out. Following are few of the aspects Approaches," 2017 IEEE International Conference on Software
and research points which can be solved by the researchers, Architecture Workshops (ICSAW), Gothenburg, 2017, pp. 294-
corporate organizations and the academicians in the segment of 297.
software testing and forensic based audit of software including [13] E. H. Halili, "Apache JMeter: A practical beginner's guide to
Biometric integrated Access for Secured Web Portals, automated testing and performance measurement for your
Development of Trust Architecture for Secured Web websites". Packt Publishing Ltd., 2008

403

You might also like