【发布时间】:2017-11-08 09:32:14
【问题描述】:
在发出 k6 HTTP 请求时,如何验证事务是使用 HTTP/1.1 还是 HTTP/2 发生的?
此代码不起作用:
let res = http.get("http://some.url/");
check(res, { "HTTP/2": (r) => r.headers.match(/HTTP\/2/)}); //fail
【问题讨论】:
标签: javascript load-testing k6
在发出 k6 HTTP 请求时,如何验证事务是使用 HTTP/1.1 还是 HTTP/2 发生的?
此代码不起作用:
let res = http.get("http://some.url/");
check(res, { "HTTP/2": (r) => r.headers.match(/HTTP\/2/)}); //fail
【问题讨论】:
标签: javascript load-testing k6
您可以检查http.Response 对象中的Proto 字段,它会告诉您使用的协议。 k6 将与服务器协商协议,如果支持,则使用 HTTP/2。
这段代码应该可以工作:
let res = http.get("http://some.url");
check(res, { "HTTP/2": (r) => r.Proto == "h2" });
另见:
【讨论】: