😎优化压测接口(增加请求参数)
This commit is contained in:
parent
ae6e183054
commit
544c4f7e48
@ -46,7 +46,7 @@
|
||||
<PackageReference Include="SSH.NET" Version="2024.2.0" />
|
||||
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.5.1" />
|
||||
<PackageReference Include="System.Net.Http" Version="4.3.4" />
|
||||
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1147" />
|
||||
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1148" />
|
||||
<PackageReference Include="UAParser" Version="3.1.47" />
|
||||
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
||||
</ItemGroup>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
namespace Admin.NET.Core.Service;
|
||||
|
||||
/// <summary>
|
||||
/// 性能压力测试输入
|
||||
/// 接口压测输入参数
|
||||
/// </summary>
|
||||
public class StressTestInput
|
||||
{
|
||||
@ -15,24 +15,53 @@ public class StressTestInput
|
||||
/// 请求地址
|
||||
/// </summary>
|
||||
/// <example>https://gitee.com/zuohuaijun/Admin.NET</example>
|
||||
[Required]
|
||||
[Required(ErrorMessage = "接口请求地址不能为空")]
|
||||
public string RequestUri { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 并发请求数量
|
||||
/// </summary>
|
||||
/// <example>100</example>
|
||||
[Required(ErrorMessage = "并发请求数量不能为空"), Range(1, 10000, ErrorMessage = "每轮请求量必须为1-10000")]
|
||||
public int NumberOfRequests { get; set; } = 100;
|
||||
|
||||
/// <summary>
|
||||
/// 压测轮次
|
||||
/// 压测轮数
|
||||
/// </summary>
|
||||
/// <example>1</example>
|
||||
[Required(ErrorMessage = "压测轮数不能为空"), Range(1, 100, ErrorMessage = "压测轮数必须为1-100")]
|
||||
public int NumberOfRounds { get; set; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// 最大并发度
|
||||
/// 最大并发度(默认为当前主机逻辑处理器的数量)
|
||||
/// </summary>
|
||||
/// <example>500</example>
|
||||
public int MaxDegreeOfParallelism { get; set; } = 500;
|
||||
[Range(0, 10000, ErrorMessage = "最大并发度必须为0-10000")]
|
||||
public int MaxDegreeOfParallelism { get; set; } = Environment.ProcessorCount;
|
||||
|
||||
///// <summary>
|
||||
///// 请求方式
|
||||
///// </summary>
|
||||
//[Required(ErrorMessage = "请求方式不能为空")]
|
||||
//public HttpMethod? RequestMethod { get; set; } = HttpMethod.Get;
|
||||
|
||||
/// <summary>
|
||||
/// 请求标头
|
||||
/// </summary>
|
||||
public Dictionary<string, string> Headers { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 请求JSON内容
|
||||
/// </summary>
|
||||
public List<KeyValuePair<string, string>> JsonContent { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 路径参数(模板参数)
|
||||
/// </summary>
|
||||
public Dictionary<string, string> PathParameters { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 查询参数(URL参数)
|
||||
/// </summary>
|
||||
public Dictionary<string, string> QueryParameters { get; set; } = [];
|
||||
}
|
||||
@ -239,7 +239,11 @@ public class SysCommonService : IDynamicApiController, ITransient
|
||||
var stressTestHarnessResult = await httpRemoteService.SendAsync(HttpRequestBuilder.StressTestHarness(input.RequestUri)
|
||||
.SetNumberOfRequests(input.NumberOfRequests) // 并发请求数量
|
||||
.SetNumberOfRounds(input.NumberOfRounds) // 压测轮次
|
||||
.SetMaxDegreeOfParallelism(input.MaxDegreeOfParallelism)); // 最大并发度
|
||||
.SetMaxDegreeOfParallelism(input.MaxDegreeOfParallelism), // 最大并发度
|
||||
builder => builder.WithHeaders(input.Headers)
|
||||
.WithQueryParameters(input.QueryParameters)
|
||||
.WithPathParameters(input.PathParameters)
|
||||
.SetJsonContent(input.JsonContent));
|
||||
return stressTestHarnessResult;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user