Skip to content

[Performance degradation] slower integration tests when using WebApplicatoryFactory, jump from 3.0.1 to 3.1.0 #3227

@tiaringhio

Description

@tiaringhio

When upgrading my dotnet web api from dotnet 8 to dotnet 9 i noticed that my integration tests that run via WebApplicationFactory run noticeably slower (orders of magnitude).

my small suits of tests to compare is made of 10 test that make various HTTP calls to my server including calls to the services that run in containers via testcontainers such as:

  • SQL Server
  • Azurite for storage
  • Redis

The startup up times are about the same (give or take a couple of seconds) but the single HTTP calls are slower, the test have not been modified since changing the version

i have previously opened an issue on AspNetCore's repo and then found out why my tests were running slowly, it's the jump from Microsoft.Identity.Web 3.0.1 to Microsoft.Identity.Web 3.1.0, something there has been causing slowdowns in my tests.

i previously thought the issues was in Microsoft.AspNetCore.Authentication.JwtBearer but i did some tests and i found out that the real culprit is Microsoft.Identity.Web.GraphServiceClient

here's the before and after

with version 3.1.10

Image

with version 3.0.1

Image

as you can see the difference is there, it's a small difference for the small number of tests but a huge one for my whole suite that consists of around 1k.

i don't know what changed, can someone look into it? i can provide profiling if that helps.

i also tried upgrading to the latest version (3.6.2) but the performance hit it's the same

thank you

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions