Menu

Load Testing Blog

Site is slow under load, but the servers aren’t busy?!?

The problem
Here is the situation: We are running a load test for a customer. The web servers are showing low to moderate CPU utilization and low disk activity. They have plenty of memory available. The middle-tier servers are reporting similar measurements. So is the database. Everything looks good in the load test.
But then, as we apply more load, the user experience begins to suffer – response times degrade a little. Then a lot. Soon they have exceeded the acceptable thresholds and gone far beyond. Eventually, as we continue to increase the load, the virtual users start to detect errors from … Continue reading »

Checking HTTP status codes from your Selenium/Java tests with the Meddler extension

Over the years, I’ve see a couple of questions repeatedly on the Selenium boards related to HTTP status codes: How do I check for broken links (404s)? How can I check the status code of a web-service request made from my web-app? The answer is usually “Selenium can not do that” because, of course, Selenium is a browser automation tool – not a full-featured testing solution. Other answers suggest various solutions…none that I’ve seen are elegant.
This problem came to my mind last week as I was considering a task that will require writing a browser extension to solve a different, … Continue reading »

How to Handle a Website where Cookies are set via Javascript

The process instead is to locate where the cookie value is set in javascript, parse the value, and set the cookie value inside the cookie store. The new cookie value is then updated in every subsequent transaction automatically.

Backup and Restore Chronograf Dashboards

Chronograf is a web-based GUI for visualizing time-series data, typically from a time-series database such as InfluxDB. I have been using it recently to store load-test measurements created by the MuseIDE Measurements extension.

I have been running it in the cloud, starting up a fresh instance whenever I have the need for storing load test results. This is handy and very cost-effective, but starting from scratch means that I need to set up dashboards of the metrics I want to see every time.
Looking for a solution, I found a post on the InfluxData blog that describes an … Continue reading »

Introducing the Influx extension for MuseIDE

InfluxData offers a set of tools that are well-purposed for load testing:

InfluxDB is a time series database that is very good for storing measurements generated during load testing
Telegraf is a client that can report performance-related OS measurements to InfluxDB (CPU%, Memory%, bandwidth, network and disk I/O, etc). Useful for monitoring both the load generators and the servers.
Chronograf is a visualization tool for time-series databases – very handy for visualizing and analyzing load test measurements.

To make use of InfluxDB and Chronograf to store load test measurements from tests built with MuseIDE, we needed to get the … Continue reading »

Measurements extension 0.3 now available

The 0.3 release adds some new plugins and enhancements applicable to performance and load testing:
New Test Plugins

The new Test Duration Plugin creates measurements of individual tests (# running, duration, etc.).
The new Step Summary Measurements plugin creates sampled measurements on steps such as success, failure and error counts, running count, running duration.

Enhancements to existing plugins

The Periodic Measurement Collector plugin can now tag measurements with the source hostname
The Step Duration Producer plugin has 3 new features for improving test analysis
The Save Measurements to CSV plugin now writes a footer line at the end of the file. The footer line … Continue reading »

Improved analysis with the Step Duration Producer plugin

Find failing steps
The Step Duration Producer plugin is part of the Measurements extension for MuseIDE. Its primary function is to report the duration of each completed step. Starting with the 0.3 release, it can add status metadata to each measurement indicating the completion status of the step – success, failure or error.
To enable, turn on the Add Step Status parameter in the plugin configuration.
With the status available, analysis or visualization tools such as Chronograf can identify which steps are failing in your test. This chart shows that a verify step failed 5 times:

Which steps are running?
Want to know which tests … Continue reading »

Test Duration Producer plugin

This plugin is part of the Measurements extension for MuseIDE version 0.3. It is a test-suite plugin that provides measurements to illustrate how many of each test are running, how long have they been running and how long did they take to complete. It is intended to be helpful for load testing.
Each time a test within a suite completes, a measurement is produced containing the duration of the test. If the running tests parameter is true, then each time measurements are collected by the Periodic Measurement Collector, two additional measurements are produced for each test. The first, running, is … Continue reading »

Analyze measurements by hostname

The Periodic Measurement Collector plugin, part of the Measurements extension for MuseIDE, now has the ability to add the hostname to each measurement it collects. This will allow analysis tools to analyze performance based on the source of the measurement. In the context of load testing, this would allow identification of regions that are experiencing slower page load times.
Here is an example of the durations of a homepage under load, identified by source hostname:

To enable this feature, turn on the Add source hostname parameter in the plugin configuration. Note that it applies to all measurements collected by the plugin.
This … Continue reading »

Announcing the Graphite extension for MuseIDE

To complement our Measurements and Parallel extensions, the Graphite extension sends measurements to a Graphite-compatible listener (Carbon, InfluxDB, etc). This allows, for example, viewing load test measurements live in a compatible UI, such as Graphite, Grafana or Chronograf.

After installing the extension (via the Extensions… button), it must be configured with the hostname and port that Graphite will be listening to.

You will also need a Periodic Measurement Collector plugin running, which was added in the Measurement extension 0.2 release. The periodic collector gathers the measurements and sends them to the Graphite plugin. It has a … Continue reading »

Resources

Copyright © 2018 Web Performance, Inc.

A Durham web design company

×

(1) 919-845-7601 9AM-5PM EST

Just complete this form and we will get back to you as soon as possible with a quote. Please note: Technical support questions should be posted to our online support system.

About You
What you Need