performance-testing - In K6 - 如何在单个脚本中打破单个事务的 TPS
问题描述
我想在单个脚本中的不同 API 调用中实现不同的 TPS 集。
目前我正在使用阶段、minIterationDuration 和睡眠功能来进行思考。然而,在 API 级别使用不同的思考时间集无助于实现各种 TPS。已经有 --rps 参数,但它在 API 中均匀分配 tps
下面是我的示例代码,
export default function()
{
group("T01_API1", function1.function); // Example: 50 TPS for API 1
group("T02_API2", function2.function);sleep(2); // Example: 100 TPS for API 2
group("T03_API3", function3.function);sleep(2); // Example: 20 TPS for API 3
}
阶段:
{
"minIterationDuration":"4s",
"stages": [
{ "duration": "15s", "target":15}, // Ramp Up
{ "duration": "1h", "target":15}, // Steady State
{ "duration": "10s", "target": 0} // Ramp down
]
}
请注意上面是使用的示例代码,而不是整个脚本,由于系统限制,我无法执行 K6 的多个实例,我需要在单个脚本文件中进行控制。让我知道你的想法
解决方案
新的 k6 v0.27.0 具有到达率执行器(设置每秒迭代次数,即 TPS),并支持多种场景(每个场景可以有不同的 TPS)。请参阅https://github.com/loadimpact/k6/releases/tag/v0.27.0和https://k6.io/docs/using-k6/scenarios/中的示例
推荐阅读
- elasticsearch - 搜索常用前缀关键字时快速返回
- multithreading - 查找线程启动的原因
- pandas - Pandas - 扩大平均会话时间
- python - 如何使用 opencv-python 将分辨率更改为纵向模式值?
- terraform - 使用 Terraform 从范围中提取 IP
- ruby-on-rails - 如何定义自定义视图以在 Rails 5.2 中生成 xlsx 文件以供下载?
- javascript - 为什么在将文件上传到 Firebase 存储的这段代码中似乎没有执行 RxJS finalize() 箭头函数代码?
- sql-server - 如何使 GETDATE 动态化,以便如果报告在任何日期运行,它应该显示指定日期的信息
- java - 从Apache Hive批量检索百万条记录-Java 8 + Spring Boot + Hive 1.2.1版本
- php - 如何更改 laravel 队列中作业表的表名和列名?