Changelog

2022.03

New Features & Improvements

  • Added the ability to open a new browser window or tab from a code block.
  • Added a silent option for clicks and other steps when called from a code block. With this option, the step will be carried out if possible, but if it fails the script will continue without error.
  • Made it possible to stop a script immediately, even if it’s in the middle of a code block, without waiting for the code block to finish.
  • Improved report filtering for tests with many distinct URLs, to prevent the Response Times graph legend from becoming unintelligible.
  • Improved the size and layout of the trace modal.
  • Improved the display of n-month plans on the Billing page (such as a custom plan that renews every 6 months).

Bug Fixes

  • Ironed out apparent data inconsistencies between the Live View and Report View. The data was correct, but inconsistent because each view was showing data from different time windows.
  • Made the step number in the timeline always correspond to the step number in the editor after running a test, so you can more easily relate screenshots to the step that took them.
  • Fixed a performance issue with accessing very large response bodies in code blocks or JavaScript validators/capturers.
  • Fixed a bug that caused Browser Bots to ignore the “Display interpolated URLs in reports” setting in some situations.
  • Fixed issues with stripping out URL parameters or truncating the query altogether in the reports.
2022.02

Graph Overlays

You can now overlay one graph on top of another, both when running a load test and in the test report after it finishes. Mix and match different graphs to show the relationship between different metrics, like the effect of running bot count on response times or errors. You can overlay graphs from the sidebar while a test is running, or at the bottom of the test report after a test finishes.

Improvements & Bug Fixes

  • Improved the quality and consistency of automatically generated selectors when recording a browser script.
  • Enhanced the notification center to relay broadcast system messages in case there’s a partial outage.
  • Changed the engine utilization graph legends to show the full group name instead of just the engine region, so it’s clear which cluster each refers to.
  • Fixed a bug with the Loadster Recorder extension for Chrome, now using the browser extension Manifest v3.
2022.01

Improvements & Bug Fixes

  • Fixed a rare issue with shaking tiles in the Timeline.
  • Fixed a keyboard focus issue that sometimes caused steps to be deleted inadvertently when editing a URL.
  • Fixed an issue with timezones in the Activity Feed.
  • Extended the Traces TTL to 30 days.
  • Improved messaging for when a script is deleted that’s in use by one or more scenarios.
  • Redesigned the Play and Fast Play buttons in the script editor.
2021.12

Improvements & Bug Fixes

  • Made single bot scripts play in AWS Lambda instead of shared engines in most regions, for greater reliability.
  • Enabled self-service username changes instead of requiring you to email support - finally!
  • Removed the “Launch test with manual start” feature.
  • Made Browser Bots send the X-Loadster-User header like Protocol Bots do.
  • Fixed a bug with deleted engines showing up in the Script Player dropdown.
  • Fixed a scrolling issue with the script editor caused by hitting the space bar while playing a script.
  • Improved a misleading error message when timing out after a click action.
2021.11

Browser Bots: Camera & Microphone Support

Browser Bots now provide a dummy camera and microphone device, and automatically grant permission to them, if the pages you’re testing ask for it. The devices are stubbed out and send uninteresting video and audio streams. You don’t actually get to see the bots looking into their cameras, sadly.

Browser Bots: File Inputs

Browser Bots can now use the Files step to interact with file input elements, like <input type="file"/>.

When you choose a file in your script with this step, the file content becomes part of the script, so you can run the script out in the cloud or on a self-hosted engine without needing access to your local filesystem.

There’s also an equivalent way to do this in a code block, but you’ll have to encode the file’s content as Base64 yourself, like this:

browser.chooseFiles('input[type=file]', [
    {
        name: 'cat',
        contentType: 'image/jpeg',
        contentBase64: 'UklGRuZ/AABXRUJQVlA4INp/AABwrAGdASr0AQACPjkYi0QiIaET...'
    }
]);

Report URL Simplification

Your Loadster reports include a graph with a breakdown of response times by URL. Each unique URL from your load test is a separate graph series. Normally this is super useful, but it gets messy if your test visits too many unique URLs. For example, your bots might get redirected to a dynamic URL that’s different each time, and showing each of these dynamic URLs as a separate graph series is unhelpful.

To tidy up your graphs, we’ve added a new setting to Settings, called Report URL Simplification. Possible values are:

  • Leave URLs as-is (in their full unaltered glory)
  • Truncate URL query strings (remove the whole query string, starting with the question mark)
  • Strip URL parameter values (keep the query params, but replace values with underscores)

Improvements & Bug Fixes

  • Fixed a bug that caused iterations per group to be ignored with small numbers of bots.
  • Made the Halt script execution on any error setting apply to individual actions within a code block, not just the entire code block.
  • Stopped background navigations within nested iframes from showing up in the Response Times.
  • Fixed a bug that sometimes caused the Timeline and Logs to get stuck when stopping a script early in the editor.
  • Made our home-brewed iframe selectors work with all the CSS attributes.
  • Added the step number to traces so you can tell which step generated the trace.
2021.10

Clobber-Resistant Script Editing

If you and someone else on your team happened to be editing the same script, there was a danger that you might clobber each other’s changes. We’ve added some guardrails to prevent this with a recent update.

You’ll now see a user badge appear at the top of the script editor whenever someone else on your team also has that script open. The editor will also double-check that you have the latest copy when you go to save it, and alert you if someone else saves a copy in the meantime.

Protocol Bots: Global Headers Per Domain

Since time immemorial, Protocol Bots could specify custom headers for each individual request, but that could get pretty tedious if you’re testing an API that requires the same headers on every request. Thankfully there’s now a way to set a default header per host in a code block anywhere in your script, like this:

// Add a header to all future requests to a host
http.addHostHeader('slothereum.cc', 'X-Slothentication', 'ymmv2880');

// Remove host headers matching a host/name/value http.removeHostHeaders('slothereum.cc');

Once you set a host header, all requests your Protocol Bot makes to that host will automatically have the header, until the end of the script or until you remove it.

Improvements & Bug Fixes

  • Clarified the error message when trying to choose a non-existent option from an HTML select.
  • Added the monthly test hours consumption to the billing dashboard, so if you have a plan with an hours limit you can see how many you’ve used.
  • Updated the Loadster Recorder browser extension to ignore _ngcontent-* and similar unreliable properties when crafting selectors.
  • Fixed buggy pagination on the Total Time Spent table of the test report.
  • Improved the quality and specificity of error messages from Evaluate steps.
2021.09

Browser Bots: Select Options by Value, Text, or Index

We’ve made it easier to choose the option you want from Browser Bot Select steps. Now, you can specify an option by text, by value, or by index. Consider the following HTML:

<select name="countries">
  <option value="CR">Costa Rica</option>
  <option value="HR">Croatia</option>
  <option value="CU">Cuba</option>
</select>

To choose Croatia, your step can specify CR to select by value, "Croatia" with double quotes to select by text, or [1] with square brackets to select by index.

Browser Bots: Manage Multiple Browser Windows

We used to assume that each Browser Bot would only control a single browser window or tab at a time. Not anymore! Now you can toggle between browser windows, close a window, and list the bot’s browser windows programmatically in a code block.

// List all of the bot's browser windows/tabs
browser.listWindows();

// Get the bot's currently active browser window/tab browser.getActiveWindow(); // 0, 1, 2… // Focus a different browser window/tab browser.setActiveWindow(0); // the bot's original tab browser.setActiveWindow(1); // the first opened tab browser.setActiveWindow(2); // and so on… // Close a browser window/tab browser.closeWindow(1);

Each Browser Bot starts out with a single window, but if your site opens links in another tab or pops up another window, it will be added to the list.

Speedway Site & API Monitoring

We’re pleased to announce Loadster’s sidekick application, Speedway, for Site & API monitoring!

You probably noticed the monitoring feature in Loadster this past year: run a Loadster script on a schedule and get alerted if anything goes wrong. It’s kind of like Pingdom or Uptime, but with more powerful scripting.

This monitoring approach is often called active monitoring or synthetic monitoring, and it’s an important part of the site reliability stack. Active monitoring is highly recommended if you want to be alerted of site downtime and breakage, especially if you want to test multiple pages or endpoints back to back.

The scripting is the same, but the motivations and methodology are a bit different between load testing and monitoring.

Reusing your load test scripts for active monitoring (and vice versa) saves time on script creation and reduces the effort of maintaining your scripts, while making sure you can react quickly to problems and be proactive about it.

Read more about Speedway »

Improvements & Bug Fixes

  • Added the full results from Scrape and Evaluate steps to the result details, which you can see by clicking on the card in the Timeline.
  • Clarified the users per team limit on the Team page.
  • Clarified the confusing error message when a Wait For step times out.
2021.08

Traces

Browser Bots now capture traces whenever an error occurs, and the first bot in each group captures traces of every step regardless.

Traces show up on the Traces tab of your live test, and in the Traces section of the test report.

They include:

  • A screenshot of what the browser looked like at that moment
  • A waterfall chart of resource timings from the page
  • Detailed error messages from the browser automation library when available
  • The bot number, step number, and URL where the error occurred

Read more about Traces »

2021.07

Browser Bots: Wait For Element Steps

Web applications often have overlays, progress indicators, or deferred loading of components to improve the user experience, particularly for slower actions that can take a few seconds to complete. This makes sense from a UI perspective, but it can present a challenge for automated testing because the thing you want to interact with might not be there yet, or might be covered up by something else.

With the new Wait For steps, your Browser Bots can wait until the element achieves a certain state before continuing.

Browser Bots: Select Steps

We seem to have overlooked <select/> dropdowns in the initial Browser Bots release, so there was no easy way at first to select an option. That’s fixed with Select steps.

Browser Bots: Hover Steps

Most of the time, building automated tests for a web application doesn’t require explicitly hovering on things before clicking them… but sometimes it does. The most obvious example is a fly-out menu, where you have to hover the menu title and then the contents fly out, exposing things you can click on.

If you need to hover something, you can now do so with the new Hover steps.

Include Scripts in Scripts

Reusability! Composability! Finally, you can include one script in another, so you can keep frequently used sequences of steps in one place.

For example, you might want to have your login flow in a script called Login, and include this at the beginning of all the scripts that require logging in.

Read more about how it works in the Include Script FAQ.

2021.05

Multiple Team Support

User accounts and Loadster teams are now a many-to-many relationship! Before, your Loadster account was tied to a single team, but you can now join multiple teams and easily switch between them.

This is helpful if you consult with different companies, or just want to use Loadster for personal projects without intermingling them with your company’s account.

If you’re linked to more than one team, you’ll see a team switcher at the top of your dashboard. Just choose another team from the team switcher to switch teams.

If you’re an admin on your Loadster team, you can invite someone else to join on the Team page just like before. If they already have a Loadster account at that email address, they’ll simply be linked to your team upon accepting the invitation. Your friend can then bounce between your team and any other teams they are associated with.

Similarly, if you’re an admin on a team and want to remove someone from the team, you can also do it from the Team page. Once you remove someone, they’ll still have a Loadster account and will still be able to see their own personal projects and those of any other teams they’re associated with… they just won’t have access to yours anymore.

2020.10

Browser Bots Have Entered the Arena!

Most web load testing tools, including Loadster up until now, require you to automate your load tests at the HTTP protocol layer. Scripts were basically a sequence of HTTP/S requests, chained together, with validators and capturers bolted on when necessary. This approach made testing pretty much any web application possible, but not always easy.

For some web apps, testing at the protocol layer is actually quite difficult, especially when you have to capture parameters from a server response and use them in a subsequent request. Scripting OAuth and SAML flows at the protocol layer can be particularly cumbersome because these flows require a lot of capturing and regurgitation of special tokens.

Our new Browser Bots make scripting such complicated interactions a whole lot easier, because they control real headless Chromium browsers.

Scripting with Browser Bots is made up of user actions like navigate to URL, click on element, type text into an input field, and so on. You don’t have to worry about every individual HTTP request, because the browser figures that out for you. Automation at the browser level especially shines for testing complicated web applications with a lot of client-side logic or convoluted authentication flows.

What about the old v-users or virtual users? They aren’t going away, but from now on we’ll call them Protocol Bots. Protocol Bots are still ideal for load testing HTTP APIs (REST, GraphQL, etc) because they give you precise control of each request. They generally work fine for simple static sites too. And testing with Protocol Bots, when practical, is very affordable: they only consume 1/4th as much Loadster Fuel as Browser Bots.

In short, every time you create a script, you’re free to choose the right bots for the job: Protocol Bots when you want to work at the protocol layer, and Browser Bots when you want to automate real browsers.

2020.07

Loadster + Slack, Opsgenie, and VictorOps

We’re pleased to announce three new Loadster integrations: Slack, Opsgenie, and VictorOps. Whenever a monitor fails or recovers, you and your team will get notified through the right channels so you can take action quickly.

Read the full announcement about Slack, Opsgenie, and VictorOps »

2020.06

Loadster + PagerDuty

Loadster now integrates with PagerDuty! If you’re using Loadster’s Site & API Monitoring, and want amped up notifications, escalations, and on-call rotations, look no further than PagerDuty.

Read the full announcement of our PagerDuty integration »

2020.05

Goodbye, Loadster Workbench

Rumors of Loadster Workbench’s demise have not been exaggerated. It’s officially EOL as of May 1st, 2020. Let’s thank Loadster Workbench for all the good times, and look forward to more good times to come while moving faster on the web platform.

Read the full Loadster Workbench EOL Announcement »