Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tools for stress-profiling Blazor Server application #27457

Open
mkArtakMSFT opened this issue Nov 2, 2020 · 11 comments
Open

Tools for stress-profiling Blazor Server application #27457

mkArtakMSFT opened this issue Nov 2, 2020 · 11 comments
Labels
affected-few This issue impacts only small number of customers area-blazor Includes: Blazor, Razor Components enhancement This issue represents an ask for new feature or an enhancement to an existing one feature-blazor-server Pillar: Technical Debt severity-major This label is used by an internal tool
Milestone

Comments

@mkArtakMSFT
Copy link
Member

We had the internal Ignitor tool which we used to stress Blazor apps and measure different characteristics of sample apps.
This issue tracks the potential for productizing that tool so customers can use it to measure the load for their apps.

@mkArtakMSFT mkArtakMSFT added enhancement This issue represents an ask for new feature or an enhancement to an existing one area-blazor Includes: Blazor, Razor Components labels Nov 2, 2020
@mkArtakMSFT mkArtakMSFT added this to the Next sprint planning milestone Nov 2, 2020
@ghost
Copy link

ghost commented Nov 2, 2020

Thanks for contacting us.
We're moving this issue to the Next sprint planning milestone for future evaluation / consideration. We will evaluate the request when we are planning the work for the next milestone. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.

@captainsafia captainsafia added affected-few This issue impacts only small number of customers severity-major This label is used by an internal tool labels Nov 6, 2020
@CommonLoon102
Copy link

CommonLoon102 commented Apr 17, 2021

I wouldn't agree with the affected-few label. If Blazor Server-side wants to be more than just a PoC, or a quick solution for a school project (similarly what LINQ to SQL was), then this is a strong requirement. Serious projects won't be started on this technology if it is not possible to verify that it will fulfill the needs later. Management won't allow to start something serious and huge in a new technology if they can't make sure that when it comes to that point when it will serve thousands of users simultaneously, then it won't break. Or it won't break, but will be too slow for the use-case.

Stress-testing can also reveal hidden concurrency issues before they surface for the users.

@ghost
Copy link

ghost commented Jul 20, 2021

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

@javiercn javiercn added the jcn-p1 label Nov 5, 2021
@TheXenocide
Copy link

Hi there! We use the Ignitor tool for stress testing internally and I can't help but notice that the project has been deleted in the main branch. Does this mean this ticket is being abandoned? How will we stress test our Blazor-server app in the future?

@CommonLoon102
Copy link

@TheXenocide Hi! Can you point me to that Ignitor tool? Is it publicly available for everyone?

@TheXenocide
Copy link

TheXenocide commented Apr 11, 2022

@CommonLoon102 it wasn't officially supported and is no longer in the main branch, but you can still find it in the 6.x tags:

https://github.com/dotnet/aspnetcore/tree/v6.0.4/src/Components/Ignitor

Unfortunately, without it I'm not aware of any efficiently scalable option for generating significant load on the Blazor server circuits without using thousands of actual browsers (not feasible in our environment). It is limited without an actual script engine, but you can connect/maintain open connections on/navigate through pages which can be used in conjunction with a much smaller number of actual browsers reasonably well. Performing actions within a page (text changes, button clicks, etc.) starts to become a much more challenging proposition very quickly, but it suits our needs well enough (and as I mentioned, there really aren't any good alternatives I'm aware of)

@amcasey amcasey added area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework and removed feature-infrastructure-improvements labels Jun 1, 2023
@mkArtakMSFT mkArtakMSFT modified the milestones: Backlog, BlazorPlanning Nov 5, 2023
@TheXenocide
Copy link

I was following up on this after my question was picked up in .NET Conf and I see here that some tags have been applied recently, which is promising. One possible suggestion presented during the presentation was to use playwright but given the number of concurrent connections we need to simulate load we've found it to be somewhat cost prohibitive, though it has been useful in conjunction with Ignitor to validate responsiveness and other more complete UX scenarios not suitable for Ignitor.

@mkArtakMSFT mkArtakMSFT added Pillar: Technical Debt and removed area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework labels Nov 19, 2023
@mkArtakMSFT mkArtakMSFT modified the milestones: Planning: WebUI, Backlog Dec 12, 2023
@ghost
Copy link

ghost commented Dec 12, 2023

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

@siata13
Copy link

siata13 commented Sep 13, 2024

Any update or recommendation about how to execute stress tests for Blazor Server project?

@garrettlondon1
Copy link

Is anything being done to help developers stress test the interactivity passing through InteractiveServer websockets rather than just http?

@TheXenocide
Copy link

Hey there, just checking in on this again because it came up in a meeting this morning. As I understand it, our performance team had some challenges setting up the old Ignitor codebase against our current .NET 8 version of the app and we will continue to need some functionality for generating load affordably going forward into new versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affected-few This issue impacts only small number of customers area-blazor Includes: Blazor, Razor Components enhancement This issue represents an ask for new feature or an enhancement to an existing one feature-blazor-server Pillar: Technical Debt severity-major This label is used by an internal tool
Projects
None yet
Development

No branches or pull requests

8 participants