Initial version of the load test (?)

This commit is contained in:
2025-03-20 17:12:55 +01:00
parent 0e4787c1a4
commit f98de6504c

View File

@@ -1,9 +1,109 @@
namespace LoadTest; //creare un programma che genera tante chiamate HTTP con inserimento di
//URL + eventuale Token
//Body
//Per quanto tempo fare il test
//Metodo HTTP
//Numero Thread(?)
class Program using System.Diagnostics;
using System.Net.Sockets;
namespace LoadTest;
internal class Program
{ {
static void Main(string[] args) private static void Main(string[] args)
{ {
Console.WriteLine("Hello, World!"); string? url = null;
string? body = null;
string? header = null;
string? token = null;
string? methodHttp = null;
string? time;
long? lTime;
string? yn;
Stopwatch sw;
Console.WriteLine("Load Test");
do
{
Console.WriteLine("Insert Method Http (GET/POST): ");
methodHttp = Console.ReadLine();
} while (string.IsNullOrEmpty(methodHttp) && (methodHttp?.ToUpper() != "GET" || methodHttp?.ToUpper() != "POST"));
do
{
Console.WriteLine("Insert URL: ");
url = Console.ReadLine();
url = "https://" + url;
} while (string.IsNullOrEmpty(url) && url != "https://");
if (methodHttp == "POST")
{
do
{
Console.WriteLine("Insert Body: ");
body = Console.ReadLine();
} while (string.IsNullOrEmpty(body));
}
do
{
Console.WriteLine("Is Authentication required? (Y/N)");
yn = Console.ReadLine();
} while(string.IsNullOrEmpty(yn) && (yn?.ToLower() != ConsoleKey.Y.ToString().ToLower() || yn?.ToLower() != ConsoleKey.N.ToString().ToLower()));
if (yn?.ToLower() == "y")
{
do
{
Console.WriteLine("Header");
header = Console.ReadLine();
} while (string.IsNullOrEmpty(header));
do
{
Console.WriteLine("Token: ");
token = Console.ReadLine();
} while (string.IsNullOrEmpty(token));
}
do
{
Console.WriteLine("Insert Time in seconds: ");
time = Console.ReadLine();
} while (string.IsNullOrEmpty(time));
lTime = long.Parse(time) * 1000;
using var client = new HttpClient() ;
if (yn == "y" && !string.IsNullOrEmpty(token) && !string.IsNullOrEmpty(header))
{
client.DefaultRequestHeaders.Add(header, token);
}
switch (methodHttp.ToUpper())
{
case "GET":
sw = Stopwatch.StartNew();
while (sw.ElapsedMilliseconds < lTime)
{
Console.WriteLine("GET " + url + $" [{sw.ElapsedMilliseconds / 1000.0} s]");
client.GetAsync(url);
}
sw.Stop();
break;
case "POST":
if (!string.IsNullOrEmpty(body))
{
sw = Stopwatch.StartNew();
while (sw.ElapsedMilliseconds < lTime)
{
Console.WriteLine("POST" + url + $" [{sw.ElapsedMilliseconds / 1000.0} s]");
client.PostAsync(url, new StringContent(body));
}
sw.Stop();
}
break;
}
} }
} }