Problem Statement of Cloud Testing Using Apache JMeter
Problem Statement of Cloud Testing Using Apache JMeter
Problem Statement of Cloud Testing Using Apache JMeter
Abstract : Cloud computing is causing a paradigm shift in the provision and use of computing services; away
from the traditional desktop form to online services. Cloud platform provides an infrastructure for resource sharing,
software hosting and service delivering in a pay-per-use approach. This implies that the manner in which these
computing services are tested should also change. To ensure high quality of cloud applications under development,
developer must
perform testing to examine the quality and accuracy whatever they design. In this proposed approach , we are going to
test an cloud application under average and worst scenario .
Keywords : Cloud , Cloud Testing , Cloud Platform , Cloud Applications , Types of Testing , Testing Tools.
Introduction : Cloud computing proposes a new architecture of multilayered resource sharing, such as
infrastructure-as-a-service (IaaS), data-as-as-service (DaaS), platform-as-a-service (PaaS), and software-as-a-service (SaaS) [1].
Resources can be dynamically allocated based on usage demands following negotiated Service-Level-Agreement (SLA)
in a pay-per-use business model to achieve cost-effective performance and resource utilization. Cloud-based infrastructure
has a significant impact on software technologies. It shifts the focus of software development from product-oriented
activities to service-oriented reuse, composition, and online renting. It has a potential to enhance the scalability, portability,
reusability, flexibility, and fault-tolerance capabilities of software systems, taking advantages of the new cloud
infrastructure [2], [3].
However, cloud-based hosting introduces risks to the dependability of systems. Software is remotely deployed
in a virtualized runtime environment using shared hardware/software resources, and hosted in a third-party infrastructure.
The quality and performance of the software highly depend on its runtime environment that are usually out of the
users control. For example, Amazon provides a cloud infrastructure and webhosting system AWS (Amazon Web Services)
[4], including services like EC2 (Elastic Compute Cloud) and S3 (Simple Storage Service). It promises to keep
customers sites up and running 99.95% of the year , i.e. , allows for 4.4 hours of downtime per year only.
Unfortunately , an unexpected crash happened in April , 2011 due to operation mistakes during network reconfiguration
[5] . More than 70 organizations are affected including FourSquare , the New York Times , and Reddit , who pay to use
AWS to run their websites on EC2. Due to the accident , the performance of these websites is greatly decreased, and
some sites were even down for dozens of hours . Applications hosted on remote clouds may have lower controllability
and observability, compared with conventional in-house hosted applications.
Problem Statement : Many researchers have already proposed many testing methodologies to meet the
challenges[6] . The first and fundamental challenge of providing cloud services availability. If any organization is
looking to adopt cloud services rather than maintain local installations, then undue delays is not tolerable.
This leads to the second challenge: service assurance . How can cloud services provider assure timely
delivery and even service availability when it doesnt control the data communication connection between the cloud
service and corporate users.
The final challenge is service efficiency. That challenge encompasses efficiency in all aspectsfrom cost
savings, space and power efficiency to efficient and scalable service delivery using virtualization, high-end servers and
high-speed interfaces.
To make the testing effective, we need to test the cloud application under all the scenarios i.e. worst case and average
case because any cloud application behaves differently under different cases.
In our proposed approach, worst case includes a large number of end users as compared to number of end users in
average case and the exact value of end users depends on the degree of scalability of cloud application.
To Test a cloud application , we need to simulate a number of users in order to create a real time traffic on cloud
application to a great extent. So to create a suitable environment ,we use a Testing Tool called Apache JMeter.
This tool creates virtual users and each virtual user send request (HTTP , HTTPS , FTP etc.) to the cloud
application and now cloud application sends response to each of the user (or JMeter) . Now on the basis of request
time and response time, latency testing is done by this Testing tool.
Performance and Stress testing is done by determining the bottleneck point of cloud application . Apache
JMeter is capable of varing the number of number of virtual users, so by increasing number of virual users, we can
analyze performance of cloud application.
In this proposed approach , main objective is to test a cloud application for latency and performance using a Testing
Tool , APACHE JMETER.
Worst Case Scenario in JMeter :
No. of users
Ramp-Up Time (sec.)
Result (number of errors)
1300
5
0
1300
2
385
1300
1
490
Note: The above result is under the following specification
RAM: 4GB
Secondary Storage : 350 GB
Processor : Intel(R) Core(TM) i3-2310M CPU @2.10 GHz
Application to be tested : A server which works over a TCP/IP .
Testing Tool used : Apache JMeter[7]
The Apache JMeter desktop application is open source software , a 100% pure Java
application designed to load test functional behavior and measure performance. It was
originally designed for testing Web Applications but has since expanded to other test
functions .
Type of testing to be done : Latency and Performance Testing[8][9]
Latency Testing : Cloud testing is utilized to measure the latency between the action and the corresponding response
for any application after deploying it on cloud [ Prakash & Gopalakrishanan , 2012 ; http://www.toolsjournal.com/testinglists/item/404-10- cloud-based-testing-tools].
Performance Testing : It focuses on determining an applications robustness , convenience , and consistency under
extreme conditions . The aim of performance testing is to recognize application issues that become apparent under risky
conditions . These conditions can include dense loads , high concurrency , or limited computational resources .
References:
[1] B. P. Rimal, E. Choi, and I. Lumb, A Taxonomy and Survey of Cloud Computing Systems, in Proceedings of Fifth
Int. Joint Conf. INC, IMS and IDC NCM 09, 2009, pp. 4451.
[2] W. Tsai, Q. Shao, Y. Huang, and X. Bai, Towards a Scalable and Robust Multi-Tenancy SaaS, in Proceedings of
the Second Asia-Pacific Symposium on Internetware, 2010, p. 8.
[3] W. Tsai, Y. Huang, and Q. Shao, EasySaaS: A SaaS development
framework, in SOCA 11, 2011.
[4] Amazon Web Service. [Online]. Available: http://aws.amazon.com/
[5] News Briefs, Computer, vol. 44, pp. 1820, 2011.
[6] http://www.ijaiem.org/Volume2Issue3/IJAIEM-2013-03-31-130.pdf
[7] http://jmeter.apache.org