forked from ddrilling/AsbCloudServer
Added telemetry info and data saub requests to ControllersLoadTester.cs
This commit is contained in:
parent
28b60250be
commit
1ff5f3b6c8
@ -12,35 +12,52 @@ namespace AsbCloudDevOperations
|
||||
public class ControllerLoadTester
|
||||
{
|
||||
private readonly HttpClient client = new();
|
||||
private readonly Random rand = new();
|
||||
|
||||
//Пример роута: "api/telemetryDataSaub/123123_";
|
||||
|
||||
public void TestControllerRoute(string route, CancellationToken token = default)
|
||||
{
|
||||
var host = "http://localhost:5000";
|
||||
|
||||
public void TestControllerRoute(CancellationToken token = default)
|
||||
{
|
||||
var tasks = new List<Task>();
|
||||
|
||||
for (var i = 0; i < 30; i++)
|
||||
{
|
||||
tasks.Add(SendRequestsAsync(i, token));
|
||||
};
|
||||
|
||||
Task.WaitAll(tasks.ToArray(), token);
|
||||
|
||||
Console.WriteLine("End");
|
||||
}
|
||||
|
||||
private async Task SendRequestsAsync(int i, CancellationToken token)
|
||||
{
|
||||
var json = JsonSerializer.Serialize(new List<TelemetryDataSaubDto>()
|
||||
{
|
||||
new TelemetryDataSaubDto()
|
||||
});
|
||||
|
||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||
var stringContent = new StringContent(json, Encoding.UTF8,
|
||||
"application/json");
|
||||
|
||||
Console.WriteLine("Start");
|
||||
var uid = $"123123_1";
|
||||
|
||||
var tasks = new Task[100];
|
||||
Console.WriteLine($"Sending telemetry info with uid: {uid}");
|
||||
|
||||
for (var i = 0; i < 100; i++)
|
||||
var tInfoUri = new Uri($"http://localhost:5000/api/telemetry/{uid}/info");
|
||||
var infoResponse = await client.PostAsync(tInfoUri, stringContent, token);
|
||||
|
||||
Console.WriteLine($"Передана telemetry info с: {infoResponse.StatusCode}");
|
||||
|
||||
for (var j = 0; j <= 10; j++)
|
||||
{
|
||||
var res = client.PostAsync(new Uri($"{host}/{route}{i}"),
|
||||
stringContent, token);
|
||||
await Task.Delay(rand.Next(1000, 5000), token);
|
||||
var dataSaubUri = new Uri($"http://localhost:5000/api/telemetryDataSaub/{uid}");
|
||||
var saubResponse = await client.PostAsync(dataSaubUri, stringContent, token);
|
||||
|
||||
tasks[i] = res;
|
||||
};
|
||||
|
||||
Task.WaitAll(tasks, token);
|
||||
|
||||
Console.WriteLine("End");
|
||||
Console.WriteLine(saubResponse.StatusCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ namespace AsbCloudDevOperations
|
||||
{
|
||||
var controllerTester = new ControllerLoadTester();
|
||||
|
||||
controllerTester.TestControllerRoute("api/telemetryDataSaub/123123_");
|
||||
controllerTester.TestControllerRoute();
|
||||
//.GetAwaiter().GetResult();
|
||||
|
||||
Console.WriteLine("End of Test");
|
||||
|
Loading…
Reference in New Issue
Block a user