GUI based load testing for Blazor Application

Viewed 544

Blazor is a new Microsoft technology that we have used to build Blazor App.

We want to do GUI based performance testing simulating user action like login.

Traditional load testing tool like Jmeter, NeoLoad which we were using for web app testing fails here as Blazor makes socket calls instead of http calls.

Can anyone please suggest a tool which can help me here.

Regards, Abhishek

1 Answers

Well, if you really want to use GUI-based tools for load testing the most obvious choice is Selenium browser automation framework. There is WebDriver Sampler plugin providing JMeter integration with Selenium.

However be informed that it's not recommended option, as per Selenium documentation

Performance testing using Selenium and WebDriver is generally not advised. Not because it is incapable, but because it is not optimised for the job and you are unlikely to get good results.

The main reasons are:


Also looking into Blazor page at Wikipedia:

Five different editions of Blazor apps have been announced.

  • Blazor Server: These apps are hosted on an ASP.NET Core server in ASP.NET Razor format. Remote clients act as thin clients, meaning that the bulk of the processing load is on the server. The client's web browser downloads a small page and updates its UI over a SignalR connection. Blazor Server was released as a part of .NET Core 3.
  • Blazor WebAssembly: Single-page apps that are downloaded to the client's web browser before running. The size of the download is larger than for Blazor Server, depends on the app, and the processing is entirely done on the client hardware. However, this app type enjoys rapid response time. As its name suggests, this client-side framework is written in WebAssembly, as opposed to JavaScript (while they can be used together).

Microsoft plans to release Blazor PWA and Blazor Hybrid editions. The former supports progressive web apps (PWA). The latter is a platform-native framework (as opposed to a web framework) but still renders the user interface using web technologies (e.g. HTML and CSS). A third, Blazor Native – platform-native framework that renders a platform-native user interface – has also been considered but has not reached the planning stage.

It looks like it makes sense to test only Blazor Server because WebAssembly is being run mainly in the client, you can test only downloading speed if needed and the Blazor Server relies on SignalR which in its turn mainly uses WebSocket and there is WebSocket Samplers plugin for JMeter which you could use for simulating the browser network footprint

Related