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
|
public class ControllerLoadTester
|
||||||
{
|
{
|
||||||
private readonly HttpClient client = new();
|
private readonly HttpClient client = new();
|
||||||
|
private readonly Random rand = new();
|
||||||
|
|
||||||
//Пример роута: "api/telemetryDataSaub/123123_";
|
//Пример роута: "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>()
|
var json = JsonSerializer.Serialize(new List<TelemetryDataSaubDto>()
|
||||||
{
|
{
|
||||||
new 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}"),
|
await Task.Delay(rand.Next(1000, 5000), token);
|
||||||
stringContent, token);
|
var dataSaubUri = new Uri($"http://localhost:5000/api/telemetryDataSaub/{uid}");
|
||||||
|
var saubResponse = await client.PostAsync(dataSaubUri, stringContent, token);
|
||||||
|
|
||||||
tasks[i] = res;
|
Console.WriteLine(saubResponse.StatusCode);
|
||||||
};
|
}
|
||||||
|
|
||||||
Task.WaitAll(tasks, token);
|
|
||||||
|
|
||||||
Console.WriteLine("End");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace AsbCloudDevOperations
|
|||||||
{
|
{
|
||||||
var controllerTester = new ControllerLoadTester();
|
var controllerTester = new ControllerLoadTester();
|
||||||
|
|
||||||
controllerTester.TestControllerRoute("api/telemetryDataSaub/123123_");
|
controllerTester.TestControllerRoute();
|
||||||
//.GetAwaiter().GetResult();
|
//.GetAwaiter().GetResult();
|
||||||
|
|
||||||
Console.WriteLine("End of Test");
|
Console.WriteLine("End of Test");
|
||||||
|
Loading…
Reference in New Issue
Block a user