我想在使用 Vegeta 的 POST 请求之间引入延迟。我认为减少“-rate”数字不是正确的方法,因为它是我想要的请求数量。有没有办法在请求之间包含延迟/睡眠?
问问题
184 次
1 回答
0
这是一个很好的问题;我一直在寻找相同的东西,但没有看到任何这样的选项(还)——我考虑过的(但现在无法测试):
创建一个脚本
genload.sh
,以 json 格式(由 vegeta 定义)以您想要的时间方式(以您想要的节奏出现线条)将待办事项打印到标准输出。它甚至可能只是一个 shell 行:while true; do echo '{method: "GET", url: "http://goku", body: "Punch!" | @base64, header: {"Content-Type": ["text/plain"]}}'; sleep 0.05 | done
(当然这只是 20 req/s,所以你需要为你的用例提供更高级的逻辑)
执行请求生成器,作为请求执行器流式传输到 vegeta:
./genload.sh | vegeta -lazy -target /dev/stdin -format json (.. more options ..)
我不知道
- 如果这行得通 - 也就是说,如果 vegeta 现在将服从您的 ./genload.sh 脚本规定的节奏。如果你尝试,请告诉我!
- 这将在多大程度上引入新的性能瓶颈
- 既然您必须维护一个生成负载的脚本,这是否会让您的生活更轻松。
如果有效,请告诉我!
于 2018-11-09T15:01:03.703 回答