Artillery.IO 记录和调试
Artillery.IO Logging and Debugging
我正在尝试 Artillery.io (http://artillery.io) 作为加载和性能工具,但我似乎无法进行调试。
我看到了输出和生成的报告,但是对于某些 HTTP 响应 (404/401/500.x),我想回顾一下发送的数据包和接收的响应。
https://artillery.io/docs/debugging.html#logging-everything 的文档说我可以 运行
set DEBUG=http,http:capture,http:response
然后使用 运行 命令启动我的脚本(我在 Windows)。
这完全没有区别,在控制台或生成的报告中都没有跟踪数据包 sent/received。
有谁知道如何让火炮逐个请求和响应地追踪它在做什么?最好添加到报告文件中,但如果必须的话,我会单独使用控制台。
运行 这是来自 Powershell 控制台。下降到良好的旧 CMD,它按照记录工作。
更新:似乎更改了 http 调试。有关修订后的调试文档,请参阅 https://artillery.io/docs/examples/#debugging-http-tests。
在 Powershell 中,您必须像这样将环境变量 DEBUG 设置为 http:
$Env:DEBUG = "http"
您可以通过以下方式查看当前值:
$Env:DEBUG
请参阅 Using and changing environment variables 上的 Powershell 文档。
在 Windows Git Bash 终端上测试。
设置调试:
export DEBUG=http,http:capture,http:response
测试:
echo $DEBUG
运行 测试脚本
对于Artillery v2
创建文件script.yml:
config:
target: "https://httpbin.org/"
phases:
- duration: 3
arrivalRate: 1
scenarios:
- name: "Get"
flow:
- get:
url: "/get"
运行它:artillery run script.yml
关于 Artillery v1 参见 docs。
artillery quick -c 1 -n 1 https://httpbin.org/get
调试响应:
Started phase 0, duration: 1s @ 16:20:02(+0200) 2021-05-11
/ http request: {
"url": "https://httpbin.org/get",
"method": "GET",
"headers": {
"user-agent": "Artillery (https://artillery.io)"
}
} +0ms
http:response {
http:response "date": "Tue, 11 May 2021 14:20:03 GMT",
http:response "content-type": "application/json",
http:response "content-length": "254",
http:response "connection": "keep-alive",
http:response "server": "gunicorn/19.9.0",
http:response "access-control-allow-origin": "*",
http:response "access-control-allow-credentials": "true"
http:response } +1ms
http:response "{\n \"args\": {}, \n \"headers\": {\n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"Artillery (https://artillery.io)\", \n \"X-Amzn-Trace-Id\": \"Root=1-609a9293-031b2371069a353d0cbb4131\"\n }, \n \"origin\": \"213.76.55.123\", \n \"url\": \"https://httpbin.org/get\"\n}\n" +1ms
Report @ 16:20:04(+0200) 2021-05-11
我正在尝试 Artillery.io (http://artillery.io) 作为加载和性能工具,但我似乎无法进行调试。
我看到了输出和生成的报告,但是对于某些 HTTP 响应 (404/401/500.x),我想回顾一下发送的数据包和接收的响应。
https://artillery.io/docs/debugging.html#logging-everything 的文档说我可以 运行
set DEBUG=http,http:capture,http:response
然后使用 运行 命令启动我的脚本(我在 Windows)。
这完全没有区别,在控制台或生成的报告中都没有跟踪数据包 sent/received。
有谁知道如何让火炮逐个请求和响应地追踪它在做什么?最好添加到报告文件中,但如果必须的话,我会单独使用控制台。
运行 这是来自 Powershell 控制台。下降到良好的旧 CMD,它按照记录工作。
更新:似乎更改了 http 调试。有关修订后的调试文档,请参阅 https://artillery.io/docs/examples/#debugging-http-tests。
在 Powershell 中,您必须像这样将环境变量 DEBUG 设置为 http:
$Env:DEBUG = "http"
您可以通过以下方式查看当前值:
$Env:DEBUG
请参阅 Using and changing environment variables 上的 Powershell 文档。
在 Windows Git Bash 终端上测试。
设置调试:
export DEBUG=http,http:capture,http:response
测试:
echo $DEBUG
运行 测试脚本
对于Artillery v2
创建文件script.yml:
config:
target: "https://httpbin.org/"
phases:
- duration: 3
arrivalRate: 1
scenarios:
- name: "Get"
flow:
- get:
url: "/get"
运行它:artillery run script.yml
关于 Artillery v1 参见 docs。
artillery quick -c 1 -n 1 https://httpbin.org/get
调试响应:
Started phase 0, duration: 1s @ 16:20:02(+0200) 2021-05-11
/ http request: {
"url": "https://httpbin.org/get",
"method": "GET",
"headers": {
"user-agent": "Artillery (https://artillery.io)"
}
} +0ms
http:response {
http:response "date": "Tue, 11 May 2021 14:20:03 GMT",
http:response "content-type": "application/json",
http:response "content-length": "254",
http:response "connection": "keep-alive",
http:response "server": "gunicorn/19.9.0",
http:response "access-control-allow-origin": "*",
http:response "access-control-allow-credentials": "true"
http:response } +1ms
http:response "{\n \"args\": {}, \n \"headers\": {\n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"Artillery (https://artillery.io)\", \n \"X-Amzn-Trace-Id\": \"Root=1-609a9293-031b2371069a353d0cbb4131\"\n }, \n \"origin\": \"213.76.55.123\", \n \"url\": \"https://httpbin.org/get\"\n}\n" +1ms
Report @ 16:20:04(+0200) 2021-05-11