From 2cba3041d9b3299e57ebdf281ce2bfc6a63b3e0f Mon Sep 17 00:00:00 2001 From: hello Date: Tue, 2 Jul 2024 07:57:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=8B=E5=8A=9B=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/helloshop/dot-net-core-testing.md | 18 +-------- notes/helloshop/load-tests.md | 50 +++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 17 deletions(-) create mode 100644 notes/helloshop/load-tests.md diff --git a/notes/helloshop/dot-net-core-testing.md b/notes/helloshop/dot-net-core-testing.md index 768b992..f1bba01 100644 --- a/notes/helloshop/dot-net-core-testing.md +++ b/notes/helloshop/dot-net-core-testing.md @@ -92,20 +92,4 @@ public class ServiceTest: IClassFixture> Assert.NotNull(model); } } -``` - -## 负载测试和压力测试 - -负载测试:测试应用是否可以在特定情况下处理指定的用户负载,同时仍满足响应目标,应用在正常状态下运行。 - -压力测试:在极端条件下(通常为长时间)运行时测试应用的稳定性,测试会对应用施加高用户负载(峰值或逐渐增加的负载)或限制应用的计算资源。 - -压力测试可确定压力下的应用是否能够从故障中恢复,并正常返回到预期的行为,在压力下,应用在异常高的压力下运行。 - -## 在 Blazor 中测试 Razor 组件 - - Playwright for .NET 就是一个可用于 Blazor 应用的 E2E 测试框架。没有面向 Blazor 的官方 Microsoft 测试框架,但社区驱动的项目 bUnit 提供一种方便的方法来对 Razor 组件进行单元测试。bUnit 适用于常规用途的测试框架,例如 MSTest、NUnit 和 xUnit。 - -## 基准测试 - -基准测试是一种测试方法,用于确定应用程序的性能基准。基准测试通常用于确定应用程序的性能基准,以便在应用程序的生命周期中进行性能优化。使用 `BenchmarkDotNet` 进行基准测试。 \ No newline at end of file +``` \ No newline at end of file diff --git a/notes/helloshop/load-tests.md b/notes/helloshop/load-tests.md new file mode 100644 index 0000000..92b2dd3 --- /dev/null +++ b/notes/helloshop/load-tests.md @@ -0,0 +1,50 @@ +# 负载测试和压力测试 + +## 负载测试 + +测试应用是否可以在特定情况下处理指定的用户负载,同时仍满足响应目标,应用在正常状态下运行。 + +## 压力测试 + +在极端条件下(通常为长时间)运行时测试应用的稳定性,测试会对应用施加高用户负载(峰值或逐渐增加的负载)或限制应用的计算资源。压力测试可确定压力下的应用是否能够从故障中恢复,并正常返回到预期的行为,在压力下,应用在异常高的压力下运行。 + +## 测试工具 + +云端测试 和 Apache JMeter 是两种流行的负载测试工具。负载测试和压力测试应在发布和生产模式下完成,而不是在调试和开发模式下进行。 + +## 使用 Apache JMeter 工具 + +Apache JMeter 是一个开源的 Java 应用程序,用于执行负载测试、功能测试和性能测试。JMeter 可以模拟多种类型的负载,包括负载测试、压力测试、功能测试、基准测试等。 + +提供强大的图形化界面,可以通过图形化界面创建测试计划,然后执行测试计划。JMeter 支持多种协议,包括 HTTP、HTTPS、FTP、JMS、SOAP、TCP 和 LDAP,还可以通过插件支持其他协议。 + +https://jmeter.apache.org/usermanual/build-web-test-plan.html + + +## 基准测试 + +基准测试是一种测试方法,用于确定应用程序的性能基准,以便在应用程序的生命周期中进行性能优化。使用 `BenchmarkDotNet` 可以在 .NET 应用程序中进行基准测试。 + +```shell +dotnet add package BenchmarkDotNet +``` + +```csharp +public class Md5VsSha256 +{ + [Benchmark] + public byte[] Sha256() => sha256.ComputeHash(data); + + [Benchmark] + public byte[] Md5() => md5.ComputeHash(data); +} +``` +```csharp +public class Program +{ + public static void Main(string[] args) + { + BenchmarkRunner.Run(); + } +} +``` \ No newline at end of file