Added telemetry info and data saub requests to ControllersLoadTester.cs

This commit is contained in:
KharchenkoVV 2021-10-01 15:27:54 +05:00
parent 28b60250be
commit 1ff5f3b6c8
2 changed files with 33 additions and 16 deletions

View File

@ -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);
}
}
}
}

View File

@ -12,7 +12,7 @@ namespace AsbCloudDevOperations
{
var controllerTester = new ControllerLoadTester();
controllerTester.TestControllerRoute("api/telemetryDataSaub/123123_");
controllerTester.TestControllerRoute();
//.GetAwaiter().GetResult();
Console.WriteLine("End of Test");