Add Fake Checkin for K6 Test

This commit is contained in:
Suphonchai Phoonsawat 2024-08-19 17:18:58 +07:00
parent e1533a5c23
commit 127f21dc43
3 changed files with 65 additions and 7 deletions

View file

@ -61,14 +61,9 @@ consumer.Received += async (model, ea) =>
channel.BasicConsume(queue: "checkin-queue", autoAck: true, consumer: consumer);
Console.WriteLine("\nPress 'Enter' to exit the process...");
// another use of "Console.ReadKey()" method
// here it asks to press the enter key to exit
while (Console.ReadKey().Key != ConsoleKey.Enter)
{
}
//Console.WriteLine("\nPress 'Enter' to exit the process...");
await Task.Delay(-1);
static void WriteToConsole(string message)
{

View file

@ -483,6 +483,48 @@ namespace BMA.EHR.Leave.Service.Controllers
return Success(new { date = currentDate });
}
/// <summary>
/// Fake Check in
/// </summary>
/// <returns>
/// </returns>
/// <response code="200">เมื่อทำรายการสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("check-in"), DisableRequestSizeLimit]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
[AllowAnonymous]
public ActionResult<ResponseObject> FakeCheckIn([FromBody] FakeCheckTimeDto data)
{
var currentDate = DateTime.Now;
// create connection
var factory = new ConnectionFactory()
{
HostName = _configuration["Rabbit:Host"],
UserName = _configuration["Rabbit:User"],
Password = _configuration["Rabbit:Password"],
};
// create channel
using var connection = factory.CreateConnection();
using var channel = connection.CreateModel();
channel.QueueDeclare(queue: "fake-checkin-queue", durable: false, exclusive: false, autoDelete: false, arguments: null);
// แปลง Object เป็น JSON สตริง
var serializedObject = JsonConvert.SerializeObject(data);
// แปลง JSON สตริงเป็น byte array
var body = Encoding.UTF8.GetBytes(serializedObject);
channel.BasicPublish(exchange: "", routingKey: "fake-checkin-queue", basicProperties: null, body: body);
Console.WriteLine($"Send to Queue: {serializedObject}");
return Success(new { date = currentDate });
}
/// <summary>
/// Check in Processing
/// </summary>

View file

@ -27,6 +27,27 @@ namespace BMA.EHR.Leave.Service.DTOs.CheckIn
public string? Remark { get; set; } = string.Empty;
}
public class FakeCheckTimeDto
{
public Guid? CheckInId { get; set; }
[Required]
public double Lat { get; set; } = 0;
[Required]
public double Lon { get; set; } = 0;
[Required]
public string POI { get; set; } = string.Empty;
[Required]
public bool IsLocation { get; set; } = true;
public string? LocationName { get; set; } = string.Empty;
public string? Remark { get; set; } = string.Empty;
}
public class CheckTimeDtoRB
{
public string Token { get; set; } = "";