# Perfluencer > Blog on Performance Testing ## Posts - [Performance Testing Using Neocortix and JMeter](https://perfluencer.pl/performance-testing-using-neocortix-and-jmeter/): Disclaimer: This article is not sponsored, contains no product placement and the opinions are my own – as all my articles. Service Introduction Neocortix LoadTest is an infrastructure-as-a-service platform, using shared economy model – with real devices and real network. Users across the world leave their phones for charging for the night and you can utilize their processing power for various purposes, including load testing. Phone owners receive renumeration for usage of their hardware from the service owner. How is this different from on-premise machines? When using on-prem machines, you typically reserve a few big machines for load generation and […] - [Performance Cookbook: Inter-Thread communication in JMeter](https://perfluencer.pl/performance-cookbook-inter-thread-communication-in-jmeter/): Why? Inter-Thread communication is often required to guarantee the test continuity. For multi-user-type scenarios, various users may need to pass around a few objects or identifiers, to be picked up by another user. A prime example would be an end user creating an order, while the store employee would have to pick up this order and process it for shipment.  If left unsupervised, at a large scale, the end users would fight over the same order visible from a page list, creating a race condition. The race occurs when two or more threads try to modify the same value, or […] - [Speedscale Review - Are load tests relics from the past?](https://perfluencer.pl/speedscale-review-are-load-tests-relics-from-the-past/): Every once in a while I get approached by a company targeting the domain I create content in: Performance Testing. This time, it’s Speedscale. They have a product that proposes flipping the entire performance engineering process upside-down, which definitely caught my attention. Just a heads up : this article is not sponsored by anyone. I’ve spent over a month trying out this tool with various technology stacks and applications, so here’s my review. Also before you take my word for whatever I’m saying, they have a free trial you can test for yourself – which I strongly encourage you to […] - [Machine Learning and Load Testing: When Was the Last Time You Ran 60 Load Tests in a Day?](https://perfluencer.pl/machine-learning-and-load-testing-when-was-the-last-time-you-ran-60-load-tests-in-a-day/): Machine Learning and Load Testing: When Was the Last Time You Ran 60 Load Tests in a Day? This article is my review of Akamas (Akamas.io), a solution to optimize your platform configuration, using machine learning. It’s not sponsored and contains my opinions and impressions of the free trial. Make sure to check them out if you think you’re too busy for tweaking and tuning. “If it works, don’t touch it” It’s a common rule not to disturb a well-defined and well-tested code base or configuration without justification. The main motivation for this rule is usually to prevent the cascading […] - [On APM Blind Spots](https://perfluencer.pl/on-apm-blind-spots/): “We only test the backend, frontend is static anyway”“We only look at the APM, there’s not much difference between the end user and APM”It’s time to do some debunking! But to prove these statements wrong, we need the tools! So I’ve instrumented JMeter’s Selenium plugin with Core Web Vitals and OpenTelemetry (yes, the browser). I also instrumented my Django Application with OpenTelemetry. No react, so the page is fairly static. Just a bit of Bootstrap 5 to prettify the presentation layer.Results? I have all the measurements on a single page. All of that to show you the importance of validation […] - [On More Load Testing Tools](https://perfluencer.pl/on-more-load-testing-tools/): If you’re planning to develop a new load testing tool, here’s a message that’ll save you millions of dollars on R&D: Load testing tools have become way too easy to use.At least too easy for the problems we’re supposed to solve. I understand that the transition from one tool to another is a selling point and we’re supposedly spending most of our time on test development so it’s the obvious choice for optimization. It does, however, hide away the problems that would have emerged when developing the test the “hard” way. I’ll give you an example:Proxy recording and automated correlation. […] - [On Misleading Inputs During RCA](https://perfluencer.pl/on-misleading-inputs-during-rca/): RCA based on incomplete or misleading inputs can drastically increase your MTTR. That’s why providing the evidence for your claims is crucial to help resolve the problem. – Generic statements like „all” or „every service” may lead to incorrect problem isolation, sometimes pointing to a wrong component. – Misleading inputs, like „we’re getting timeouts”, without checking whether you actually sent the request leads to even more confusion and time wasted on checking the wrong component. It takes a lot of time to validate a message that never got in, and it’s way easier to do it from the requestor side. […] - [Data-oriented reporting for black box load testing](https://perfluencer.pl/data-oriented-reporting-for-black-box-load-testing/): The final product of performance tests is the data it generates and how it can be interpreted for decision making. While we focus on generating the proper workload, it is easy to forget that the final product of the test is the report, ultimately answering the question “are we meeting the SLOs?” and, if not – what went wrong? In this article I’ll explain how the expanding test complexity can be embraced in performance test reports, to reduce the troubleshooting time, for data-driven services. Modern performance tests consist of business scenarios, covering end-to-end workflow – like, in case of an […] - [On Accuracy of Load Tests](https://perfluencer.pl/on-accuracy-of-load-tests/): An honest conversation that never happened (but should, more often than you’d think) Manager: So this is the test report. What are those numbers? Tester: It’s response times, in milliseconds Manager: So this represents what our customers will see? Tester: … No Manager: Hold on, so what’s the response times our customers will see? Tester: We don’t know… Manager: Alright, so what do we need to find out? Tester: We need to run a browser-based test. JMeter doesn’t do that Manager: Let’s use this Plugin I’ve found on the web. So will we have the full client-side response times? Tester: […] - [On Failing Tests](https://perfluencer.pl/on-failing-tests/): “The final exams are failing”“SATs are failing”“Pilot’s exams are failing” Does it sound right? How about “performance tests are failing”? The purpose of the performance tests is not to have a green report, but to bring confidence in efficiency and scalability of your application. If your test report is all red, it’s a sign that the system under test still needs improvements.* There’s no such thing as a failing test, but there may be an application failing it. *unless you misconfigured your tests. again. Follow me for more performance memes.hashtag#performancehashtag#testinghashtag#performanceengineeringhashtag#failingtestshashtag#qualityhashtag#QAhashtag#qualityassurance - [On Test Reviews](https://perfluencer.pl/on-test-reviews/): No. 1 mistake I see junior performance testers making is the premature test development conclusion. That’s the test scripts that are pushed for large scale execution as soon the test script compiles and returns a “success” in the first iteration. Here’s a few questions to ask yourself before you push a unit test disguised as a performance script: – How will this workload scale?– If I run max No of users, should I expect race conditions?– Is the parametrization sufficient?– Am I using and freeing the resources the same way the customers will? (connections, transactions, correlation)– Is there a chance […] - [On Learning Load Testing Tools](https://perfluencer.pl/on-learning-load-testing-tools/): Load testing is easy… until it isn’t I remember my first days with JMeter a few years back – I literally spent 2 weeks on reading the documentation – which both introduced me to load testing concepts as well as the internal workings of the tool. Followed by 2 full-day training I could finally create something resembling a working load test. Years have passed and I’m still learning new test approaches – only now I can modify the source code to my needs and do some parkour, including building a mock server for exotic transports. Now load testing is a […] - [On Realistic Wait Times](https://perfluencer.pl/on-realistic-wait-times/): Simulating a realistic user is an important part of test script design. Your user actions might seem atomic and stateless at first glance but the pauses between certain steps as well as a total duration of your user session leave a distinct footprint in your application you can’t really replicate without letting your Vuser take a break. The No. 1 issue you’re most likely to find is the memory saturation. If your users stay logged in for a longer time, your app needs to retain the session context in its memory to make sure you stay logged in – it […] - [On Memory Leaks in JVM](https://perfluencer.pl/on-memory-leaks-in-jvm/): Memory leaks in JVM are weird because technically you can’t have a leak of memory in a virtual, preallocated block of memory – it really won’t take up more than your -Xmx parameter. It gets even weirder when you learn that a memory leak in its final stages can be recognized by high CPU utilization. So now we know that a memory leak doesn’t really take up more memory than allocated and it’s the CPU that you’re running short of – what exactly is a memory leak in a JVM? – You have probably heard of GC, the great Garbage […] - [On RCA and how much trust you should put on your co-workers](https://perfluencer.pl/on-rca-and-how-much-trust-you-should-put-on-your-co-workers/): RCA rule No. 2DO NOT TRUST YOUR CO-WORKERS!!!This one is a bit controversial but will take down your MTTR significantly once accepted and normalized. Assume their good intentions, they really mean well but every problem hypothesis has to be supported by hard evidence – not just statements, because the status quo is often different than expectations.Your inputs may be coming from a different environment, different software versions and even different projects and it may be simply outdated and, if wrong, they will catch you off guard.If you’re missing any information about the system you’re troubleshooting, ask for evidence and source […] - [On Re-Testing](https://perfluencer.pl/on-re-testing/): Re-executing a test without addressing the current issues is acceptable in only one scenario : for a defect replication, to eliminate the possibility of flaky tests or an unstable application. But don’t expect a different result if nothing has changed. Now I know that the test has never technically failed and however inaccurate it is, it still produces a test result and even a broken test can give you valuable insights in your application behaviour (even uncover some risks). For a happy scenario testing however, you expect high throughput, low latency and a test report so successful, you’ve written it […] - [JVM Cheat Sheet (as a meme)](https://perfluencer.pl/jvm-cheat-sheet-as-a-meme/): JVM cheat sheet (as meme)Save it and never use it Working with Java you’ve probably heard that Garbage Collection is a Stop The World event.This is probably because some Java developers religiously believe that JVM is the whole world to them, I don’t know. Since the GC has been split into a minor and major GC events, the frequent question was : is minor GC stopping the world? Spoiler alert, it does. So the GC pauses are stop the world events, but are all stop the world events GC pauses?So it turns out, it’s not and some of the APM […] - [Perftiquette #10](https://perfluencer.pl/perftiquette-10/): now the 10th and probably the last episode of hashtag#perftiquette ; a short, educational and hopefully funny series on performance testing best practices. Errors reported by your load testing tool aren’t always caused by the application – your test may be the actual culprit. Performance framework often requires significant amounts of test data to maintain, it’s a lot of configuration items and your scripts may also contain bugs, resulting in false positives. Because of that, it’s always good to validate your test data and configuration before raising any defect. Your application may behave correctly based on the inputs you provide […] - [Perftiquette #8](https://perfluencer.pl/perftiquette-8/): Perftiquette episode 8 KISS – keep it simple, stupid.You’ve just learned how to automate your test execution, you’ve automated your washing machine, your coffee machine turns on once you enter the kitchen and a tiny robot asks you what its purpose is. Now it’s time for your performance tests, right? Once you’ve harnessed the power of optimizing algorithms, data structures and architecture, it is very tempting to optimize your test scripts, or bring new levels of abstractions to simplify the test execution. The problem is, the time spent on optimizing your tests is not spent on optimizing your application and […] - [Perftiquette #6](https://perfluencer.pl/perftiquette-6/): by Perfluencer Episode 6 of hashtag#perftiquette A rendezvous point is one of the few thread synchronization mechanisms supported by load testing tools. Under the hood, it’s an implementation of a counting semaphore – a design pattern used to limit the concurrent access to certain memory blocks. It usually goes along well with a spin lock, where a thread would periodically check if it could acquire a lock l (or not). Now, performance testers like to do things a bit differently and we typically use a counting semaphore (Rendezvous point) to enforce maximum and controlled concurrency on a specific action. It’s […] - [Perftiquette #4](https://perfluencer.pl/perftiquette-4/): Now for the long awaited episode 4 of hashtag#perftiquetteIt was requested by both my followers so it seems important Running performance tests you’ve probably stumbled upon the terms Concurrency and Parallelism (yes, it’s not the same). As well as challenges affiliated with them. One of the problems that may occur during highly paralleled workload is a race condition. It’s a common problem where two processes (or threads) try to modify or access the same variable at the same time. The problem is, your CPU can only access the same address once at a time so you may be in for […] - [Perftiquette #3](https://perfluencer.pl/perftiquette-3/): by Perfluencer Now for episode 3 of hashtag#perftiquette Response assertions are the core contributor of your test results accuracy.Yes, the HTTP standard defines the response code structure for error types, but it’s rarely followed properly by the developers. Response code may serve as a good true-negative detection, but the core of response is still within the response body. Comprehensive validation of response body is the key to accurate test results and a test with no assertions makes your entire report pretty much useless. Not only useless, it’s dangerous. Such a report may jeopardize your company’s position and your customers trust. […] - [Perftiquette #2](https://perfluencer.pl/perftiquette-2/): by Perfluencer Next episode of hashtag#perftiquetteVersion control systems are supported by all major performance testing tools, yet some testers are still reluctant to use them. Looking at LinkedIn profiles, very few of us actually list git as work skill.Source control is an absolute prerequisite for continuous testing. It’s a base for repeatable test results and uniform test configuration between the testers.Code reviews are also a perfect learning exercise for both code contributor and reviewer. Senior Testers can help juniors best practices, while practicing code reading and static code analysis.Code versioning can help you set up a time travel test suite […] - [Perftiquette #1](https://perfluencer.pl/perftiquette-1/): by Perfluencer Well designed performance tests can point to any environment at any time. The downside is, they will point to any environment, at any time. Even when not expected.It takes a single parameter change to run your production-scale stress test on a tiny environment you’ve just used to validate your scripts on. Sometimes it can also be a bad load balancer/environment configuration. Other time, the load generators can become unresponsive and won’t stop sending the load long after your test has “completed”.Performance tests are heavy by design. They’ve even named a load testing tool after .70 multiple barrel firearm […] - [On Stress Testing, Databases and Reactors](https://perfluencer.pl/on-stress-testing-databases-and-reactors/): Stress testing plays an important part in performance and resilience validation. It magnifies the underlying bottlenecks of your application and shows you how resilient to heavy load your infrastructure is. In the best case scenario, you’ll see high response times, in worse – you can break it up to an unrecoverable state. Learning the limits and weak spots of your application is the first step to reinforce it against unexpected events. Black Friday is coming – are you ready? - [Your Tests Are Code Like Any Other](https://perfluencer.pl/your-tests-are-code-like-any-other/): I’ll tell you a little secret about performance test scriptsIt’s… code, no different than any other. It means all the coding principles apply here too, especially if your test suites are complex. DRY, YAGNI, KISS – There’s very few exceptions to break these rules. If you have 50 test scripts and a single change in your application requires a change of all 50 scripts – you’re doing something wrong. Next time you design your tests, think of the time required to update the component you’ll be writing. In Big O notation, your n is number of scripts.Don’t work for your […] - [Introduction](https://perfluencer.pl/introduction/): Hello,I’m Kuba, and I make performance memes. I have ${num_years} years of experience in performance testing and engineering, and I’ve made just about every mistake possible in our profession. Since I learned most of my fundamentals from free online resources, it’s time to give back to the community in the best way I know how.I chose memes as a form of education because they have higher engagement rates, and research shows that it’s easier to learn certain concepts when they’re associated with intense emotions. So far, it has worked out well. My goal is to make each performance tester better. […] - [What if your tests don't reflect the state of production?](https://perfluencer.pl/what-if-your-tests-dont-reflect-the-state-of-production/): by Perfluencer After continuous development, deployment and testing comes continuous validation. But how to act if your test results don’t match with the statistics from the live product? Here are a few steps to help you understand the discrepancies: – Validate the load profiles executed on production against your tests.Having the load test statistics in the same platform as your production system helps a lot in a cross-environment comparisons – Compare the traces of slow transactions to understand the difference between the calls. The difference usually stands out as the slowest call. It could be some I/O operation, a slow […] - [False premise of failed transactions](https://perfluencer.pl/false-premise-of-failed-transactions/): by Perfluencer Did you know that errors are usually the fastest transactions? Here’s why: The system stops processing on the stack as soon as a technical or functional error occurs. The failure isn’t free either—it involves rollbacks of already started transactions, rollbacks of the stack, and additional, more verbose logging. However, in general, it’s still faster than a successful transaction. Mixing the response times of both successful and failed transactions might not be the best option. The higher your error rate, the lower your latency. It’s even worse if your assertions don’t detect these errors, and you report a response […] - [Ignorance-Driven Load Testing](https://perfluencer.pl/ignorance-driven-load-testing/): by Perfluencer You may all know the Test-Driven-Development but are you familiar with Ignorance-Driven-Testing? It’s when you never check your test results beyond the values you have to report to your stakeholders. The key signs of the Ignorance-Driven-Testing in your organisation include common statements like: – There were never any problems with this component (because you never checked) – We don’t run any assertions because they’re expensive (because you don’t know how to optimize your own tests) – We only check this dashboard for errors (And missed everything else) – We always tested it this way (even though the tests […] - [What if there are no SLAs?](https://perfluencer.pl/what-if-there-are-no-slas/): by Perfluencer Now that we know what to do when the SLAs are missing,What should you do if the SLAs have been missed? Service optimization is not a linear effort, it’s often non-associative, so one improvement will impact the other. Once you’re done with low-hanging fruits, the complexity of the improvements grows exponentially and you may find yourself not meeting the SLAs despite all the efforts. Not meeting the SLAs also doesn’t mean you haven’t done your job right. Just make sure that you have a backlog of improvement proposals that will eventually get you there. In the end, it’s […] - [The Observer Effect in Observability](https://perfluencer.pl/the-observer-effect-in-observability/): by Perfluencer Observer effect is most commonly attributed to physics experiments. It’s a phenomenon of reporting different results simply because someone was watching. Does it also occur in software engineering? Modern osbservability plaftorms let you measure your code down to the smallest pieces of code – but is it free? And is it completely accurate? Here are a few factors to consider before you start profiling every single piece of code and surrounding systems „just in case”: – Every instrumentation has a cost, although you may not see it in your spans, traces. It is still a piece of code […] ## Pages - [Best Practices](https://perfluencer.pl/blog-posts/) - [Cookie Policy (EU)](https://perfluencer.pl/cookie-policy-eu/) - [Contact](https://perfluencer.pl/contact/): email: kuba@perfluencer.pl linkedin: linkedin.com/in/kuba-dering youtube: https://www.youtube.com/@Perfluencer - [About](https://perfluencer.pl/about/): If you’re curious to know who’s The Perfluencer, here’s my story: I’m Kuba (formally it’s Jakub but I have not grown up to use my formal name), a Performance Engineer with close to a decade (as of writing this section) of experience in Performance Testing, Performance Engineering and Observability. I’m also too young years old, but I’m working on a fix for that each year. My career in IT started as a scripting kid-o, when I was doing some data analysis on big data in Thomson Reuters. The self taught programming skills helped me get noticed by a performance team […] - [Blog](https://perfluencer.pl/blog/) - [Perfluencer](https://perfluencer.pl/): Performance Engineering (as a meme) A wise man once said, if you can’t explain a problem to a 6 year old, you don’t fully understand it. How about explaining it with a meme? I’m The Perfluencer and I’m glad you’ve come here in search for some bits of knowledge and fun. You’ll find here blog posts, articles and links to most relevant youtube videos specifically on the subject of Performance Testing, Performance Engineering and observability. If you’re here, this means you’re hungry for performance engineering contents. You’re awesome! The Perfluencer Endorses devperfops.org See My Articles: Read My Blog - [Privacy Policy](https://perfluencer.pl/privacy-policy/): Privacy Policy for Perfluencer.pl Effective Date: 15 June 2025 This Privacy Policy outlines how Perfluencer.pl (“we,” “us,” or “our”), operated by The Perfluencer, collects, uses, and protects your personal data when you visit our website. We are committed to ensuring your privacy is protected and your data is handled in accordance with the General Data Protection Regulation (GDPR), known in Poland as RODO. 1. Who We Are Our website address is: http://perfluencer.pl. The website is operated by The Perfluencer. For any privacy-related concerns, please see our contact details below. Data Administrator: The administrator of your personal data is The Perfluencer. […] [comment]: # (Generated by Hostinger Tools Plugin)