Why Performance Projects Fail?

Projects involving performance testing and engineering fail for a variety of reasons. The majority of performance project failures occur for various highly complex reasons from every phase of the development life cycle and performance testing life cycle. Sometimes, performance problems are uncontrollable, and it’s out of the control of a project manager, technical architects, or performance engineers. In my experience, from both business and personal levels, most the performance projects fail due to simply a lack of communication between performance engineers, developers, DBA's, business teams, and stakeholders from the beginning, and this ends up causing many other problems which will directly impact application performance and ROI. The only objective of strategic, effective performance testing for any application/product is to achieve a satisfactory return on investment. Performance testing and engineering the applications are risky and always require a lot of trial and error with rigorous testing from the early stages of development.

Failures in performance testing projects must be treated similarly to other business problems. It is essential to understand what went wrong, why it went wrong, and what can be done to prevent it. In most scenarios, the performance engineers have to run the one-man show role to make everyone educate/understand the performance challenges in the end-to-end full life cycle implementations. Working with Practice and COE teams, we continued seeing the same mistakes repeatedly from multiple teams and projects, so, based on my personal experience, I have compiled a  list of reasons Why Performance Projects Fail.

Upload Files to AWS S3 in JMeter Using Groovy

I use my personal AWS S3 to store all my personal and confidential documents. There are three primary reasons for choosing AWS S3: affordability, speed, and reliability. If you are working on the AWS cloud, the usage of S3 is inevitable. S3 plays a critical role in storing objects in hot and cold storage. Sometimes you need to upload a payload or file objects to S3 programmatically via your performance test script. This article will help you to upload files to AWS S3 in JMeter using Groovy.

What Is S3?

Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance.

Chaos Mesh + SkyWalking: Better Observability for Chaos Engineering

Chaos Mesh is an open-source cloud-native chaos engineering platform. You can use Chaos Mesh to conveniently inject failures and simulate abnormalities that might occur in reality, so you can identify potential problems in your system. Chaos Mesh also offers a Chaos Dashboard which allows you to monitor the status of a chaos experiment. However, this dashboard cannot let you observe how the failures in the experiment impact the service performance of applications. This hinders us from further testing our systems and finding potential problems. 

Apache SkyWalking is an open-source application performance monitor (APM), specially designed to monitor, track, and diagnose cloud-native, container-based distributed systems. It collects events that occur and then displays them on its dashboard, allowing you to observe directly the type and number of events that have occurred in your system and how different events impact the service performance. 

Open Model Thread Group in JMeter

The Apache JMeter community has been swift in releasing the major security patches for the Log4j fiasco. I have already covered multiple posts about Log4j vulnerability, JMeter 5.4.2 and JMeter 5.4.3. JMeter 5.5 was supposed to be released in the last quarter of 2021. I have already covered what's new in JMeter 5.5. JMeter 5.5 will be released in early January 2022. In this blog post, let us deep-dive into one of the important features, which is the Open Model Thread Group in JMeter 5.5.

About Open Model Thread Group

Open Model Thread Group is available starting from JMeter 5.5 under Threads menu when you right click on the Test Plan as shown below.

Getting Started With Azure Load Testing

A new sheriff in town. Microsoft launched the fully managed Azure service for performance test engineers and developers to perform high scale load testing called Azure Load Testing, currently in preview mode. It is quite a big announcement for performance engineers. Let us see whether Azure Load Testing fulfills our needs or not in this blog post.

What is Azure Load Testing?

As foretold, aptly put, Azure Load Testing is an offering for the customers who are in the Azure ecosystem. Even if you are not in Azure, you can still spin up the load test resource for performance testing. But the catch is PRICING. We can discuss the pricing in another blog post. Let us focus on the features, how to get started, and more.

Five Things to Know Before Learning JMeter

If you are reading this blog post, most probably you are planning or already planned or just getting started with Apache JMeter. Learning any performance testing tool could be challenging. Sometimes the technical documentation looks abstract, and the learning curve could be steep. In this blog post, I am going to list out five things to know before learning JMeter.

1. JMeter Is Not a Browser

If you consider almost any performance testing tool, it will not execute JavaScript. HTML, CSS, and JavaScript are the essential components for any web page/app. If your application has JavaScript functions embedded in the page, JMeter will not execute that.

Recording on JMeter

Welcome to Learn JMeter Series! This series helps you to learn Apache JMeter in a much simpler way with the relevant examples and exercises. This tutorial focuses on Recording on JMeter.

What Is Recording?

To get started with application performance testing, the first step in JMeter is recording your business transactions. Recording the business flow helps to expedite the process of creating test plans. Otherwise, you will be spending more time manually crafting the requests.

Comparing Test Results in JMeter

Introduction

As performance testers, we are often asked to compare the difference in the performance between two versions of an application. Whatever the changes made in the second version (i.e., usage of new libraries, change of technological stack, etc.), ultimately, the business wants to know if the second version is better (or worst) and by how much.

This article discusses two solutions, including one based on a new JMeter plugin to help you "gauge" the improvement or degradation brought along by the second version of the application.

Reporting of Apdex Rating in JMeter

Application Performance Index

If, like me, you have some difficulties in making a Pass/Fail call for your performance tests when given the Summary Statistics of the performance test results, then the Apdex metric may come in handy.

The Application Performance Index defines a score to report the quality of the user experience across any application. The score ranges from 0.0 to 1.0 and the user experience is split into different ratings as per the following table:

JMeter Real-Time Monitoring, Integration With Grafana+InfluxDB 2.0 (Flux)

We know that JMeter is one of the most popular and best tools to load and test functional behavior and measure performance. I love JMeter so much and a lot of real projects have been created using this tool. JMeter gives capabilities, like: building different load patterns through plugins, offline HTML reporting, scaling (master and slave nodes), access to a big community, and custom plugins. But we have no real-time monitoring out-of-the-box. This is not a problem; we can build a solution using an integration with Grafana + InfluxDB. This solution provides great capabilities and saves time.

Why do we need real-time monitoring?

Migrating to Open Source Tools (Especially Now)

Key Considerations and Strategies for Going the Open Source Route

If you’re paying for expensive software testing tool licenses, perhaps something to consider is migrating to open source alternatives to optimize costs, especially if your team needs to find ways to go lean during the pandemic. 

Of course, like most things worthwhile, migrating implies some up-front investment, with the realization of cost savings happening in the mid to long-term. 

Implementing DDoS With MuleSoft: Demonstration With Apache JMeter

DDoS (Distributed Denial Of Service)

A Distributed Denial-of-Service (DDoS) is any type of attack where the attackers attempt to prevent legitimate users from accessing the service. In a DDoS attack, the attacker usually sends excessive messages asking the network or server to authenticate requests that have invalid return addresses.

How to Prevent DDoS Attacks

There are different ways we can prevent DDoS attacks; we can do IP blacklisting to avoid traffic from sources of attack, rate limit your application to prevent it from being overwhelmed, or use both of them to provide multiple layers of security.

13-Step Guide to Performance Testing in Kubernetes

13 steps to Kubernetes performance testing

Kubernetes is an open-source container orchestrator built by Google that helps run, manage, and scale containerized applications on the cloud. All the major cloud providers (Google Cloud, AWS, Azure, etc.) have managed Kubernetes platforms. In this article, we will discuss how to deploy a Spring Boot-based microservice with Google Cloud and undertake performance testing.

Prerequisites

  1. Java 8

JMeter Tutorials: Test Better, Build Better

Developers and testers love using JMeter for performance testing. In this post, we go over the best JMeter tutorials that DZone has to offer. We take a look at load testing with JMeter, how to use JMeter to test your APIs (REST or otherwise), and more advanced JMeter turorials.  

JMeter Tutorials for Beginners

JMeter Tutorials for Beginners
Being Your Journey With These JMeter Tutorials for Beginners
  1. JMeter Tutorial for Beginners by Sayantini Deb. Learn more about performance testing and why JMeter is the perfect load testing tool for measuring the performance of your apps.

SpringBoot: Performance War

Performance Matrix of Reactive APIs With WebFulx and Redis

Reactive Systems are designed to address challenges posed by modern software systems - the challenges related to a large number of users and high throughput. Reactive systems are expected to be highly responsive, resilient, elastic and message-driven.

In this article we will:

JMeter Correlation: The Best Way for Extracting Variables

Dynamic response in software testing provides different values for different iterations. This might affect the subsequent requests. This JMeter Correlation article will show you how to store the dynamic value from the response, store in a variable and use it in all required requests.

What is Correlation?

Correlation is the process of extracting some value from the response of one step into the request of another step. It captures and stores the dynamic response from the server and passes it on to subsequent requests.