压力测试在 600 个线程的压力测试期间遇到 HTTP 错误 400
Stress Test hit an HTTP error 400 during stress test with 600 threads
我正在为我的 API 进行两个端点的压力测试。第一个是 /api/register 第二个是 /api/verify_tac/
/api/register 上的请求正文是
{
"provider_id": "lifecare.com.my",
"user_id": ${random},
"secure_word": "Aa123456",
"id_type": "0",
"id_number": "${id_number}",
"full_name": "test",
"gender": "F",
"dob": "2009/11/11",
"phone_number": ${random},
"nationality": "MY"
}
其中 ${random} 和 ${id_number} 是来自 csv 数据配置的列表。
而 verify_tac 的请求正文是
{
"temp_token": "${temp_token}",
"tac":"123456"
}
${temp_token} 是来自 /api/register 响应正文的响应摘录。
为了测试。我已经完成了 5 种类型的测试,没有 return 出现所有错误。
100 位用户有 60 秒的加速期。全部成功。
200 位用户有 60 秒的加速期。全部成功。
300 位用户有 60 秒的加速期。全部成功。
400 位用户有 60 秒的加速期。全部成功。
500 位用户有 60 秒的加速期。全部成功。
600 位用户有 60 秒的加速期。大多数 /api/register 响应数据为空,导致 /api/verify_tac return 出现错误。从 /api/verify_tac 请求数据 return 错误是
{
"temp_token": "未找到",
“战术”:“123456”
}
如何测试第 6 个 return 有错误,而所有其他 5 个没有 return 错误。他们有相同的参数。
这是否意味着我的 api 请求过载?或者天气我的测试参数是错误的?
如果对于 600 个用户的响应 body 为空 - 那么我的预期是您的应用程序只是过载并且无法处理 600 个用户。
您可以添加一个侦听器 Simple Data Writer 配置如下:
这样您将能够看到失败请求的请求和响应详细信息。如果取消选中 Errors
框,JMeter 将存储所有请求的请求和响应详细信息。这样你就可以看到之前请求的响应消息,headers,body等,并确定失败原因。
还可以:
- 监控被测应用程序的基本资源使用情况(如CPU、RAM、磁盘、网络、Swap 使用情况等),可以使用 JMeter PerfMon Plugin
- 检查您的应用程序日志是否有任何可疑条目
- Re-run 使用 .NET 分析器工具进行测试,例如 YourKit,这样您将能够看到最“昂贵”的功能,并确定应用程序在哪里花费最多的时间以及什么是问题的根本原因
我正在为我的 API 进行两个端点的压力测试。第一个是 /api/register 第二个是 /api/verify_tac/
/api/register 上的请求正文是
{
"provider_id": "lifecare.com.my",
"user_id": ${random},
"secure_word": "Aa123456",
"id_type": "0",
"id_number": "${id_number}",
"full_name": "test",
"gender": "F",
"dob": "2009/11/11",
"phone_number": ${random},
"nationality": "MY"
}
其中 ${random} 和 ${id_number} 是来自 csv 数据配置的列表。
而 verify_tac 的请求正文是
{
"temp_token": "${temp_token}",
"tac":"123456"
}
${temp_token} 是来自 /api/register 响应正文的响应摘录。
为了测试。我已经完成了 5 种类型的测试,没有 return 出现所有错误。
100 位用户有 60 秒的加速期。全部成功。
200 位用户有 60 秒的加速期。全部成功。
300 位用户有 60 秒的加速期。全部成功。
400 位用户有 60 秒的加速期。全部成功。
500 位用户有 60 秒的加速期。全部成功。
600 位用户有 60 秒的加速期。大多数 /api/register 响应数据为空,导致 /api/verify_tac return 出现错误。从 /api/verify_tac 请求数据 return 错误是
{ "temp_token": "未找到", “战术”:“123456” }
如何测试第 6 个 return 有错误,而所有其他 5 个没有 return 错误。他们有相同的参数。
这是否意味着我的 api 请求过载?或者天气我的测试参数是错误的?
如果对于 600 个用户的响应 body 为空 - 那么我的预期是您的应用程序只是过载并且无法处理 600 个用户。
您可以添加一个侦听器 Simple Data Writer 配置如下:
这样您将能够看到失败请求的请求和响应详细信息。如果取消选中 Errors
框,JMeter 将存储所有请求的请求和响应详细信息。这样你就可以看到之前请求的响应消息,headers,body等,并确定失败原因。
还可以:
- 监控被测应用程序的基本资源使用情况(如CPU、RAM、磁盘、网络、Swap 使用情况等),可以使用 JMeter PerfMon Plugin
- 检查您的应用程序日志是否有任何可疑条目
- Re-run 使用 .NET 分析器工具进行测试,例如 YourKit,这样您将能够看到最“昂贵”的功能,并确定应用程序在哪里花费最多的时间以及什么是问题的根本原因