【问题标题】:K6 Get reqeust result in error against specific endpoint URLK6 获取针对特定端点 URL 的请求结果错误
【发布时间】:2021-04-01 07:04:38
【问题描述】:

我是 K6 的新手,正在尝试使用该工具通过验证 API 来执行 Get 请求。 执行脚本时,我收到终止脚本的警告。据我了解,这个错误与 Go 有点相关(如果我理解正确的话)。

我想要实现的结果是能够执行对端点 URL 的 Get 请求,但如果我做错了任何反馈或应该尝试其他方法,我将不胜感激。

脚本:

import http from "k6/http";
import { check } from "k6";

export default function () {
  var url =
    "https://endpoint.example.to.cloud/api/reports/v1/SMOKETESTC6KP6NWX";

  var headerParam = {
    headers: {
      "Content-Type": "application/json",
    },
  };

  const response = http.get(url, headerParam);

  check(response, {
    "Response status reciving a 200 response ": (r) => r.status === 200,
  });

  let body = JSON.parse(response.body);
}

输出:

WARN[0000] Request Failed error="Get \"https://endpoint.example.to.cloud/api/reports/v1/SMOKETESTC6KP6NWX\": x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0"

更改 URL 端点: 如果我像下面这样更改 URL 端点(样机 url),则不会出现错误:

...
var url = "https://run.mocky.io/v3/16fa8113-57e0-4e47-99b9-b5c55da93d71";
...

更新了本地运行的解决方案:

为了在本地运行,我必须添加认证和密钥: 示例:

export let options = {
    ...
  
    tlsAuth: [
      {
        cert: open(`${__ENV.Certificate}`),
        key: open(`${__ENV.Key}`),
      },
    ],
  };

另外用--insecure-skip-tls-verify填充执行命令

示例:

k6 run -e Certificate=/home/cert/example_certification.crt -e Key=/home/cert/certification/example_key.key -e example.js --insecure-skip-tls-verify

【问题讨论】:

  • endpoint.example.to.cloud 是您部署的 k6 实例吗?如果可以,您能否生成新证书?
  • 感谢@Christian,这帮助我部分解决了问题,此外我必须在终端中使用“--insecure-skip-tls-verify”在本地执行脚本。

标签: rest go get k6


【解决方案1】:

k6 是用 Go 编写的,最新版本的 Go 在处理 X.509 证书的方式上发生了重大变化:https://golang.org/doc/go1.15#commonname

正如错误消息中所说,您可以通过设置GODEBUG=x509ignoreCN=0 环境变量来暂时允许旧行为,但这很可能是stop working in a few months with Go 1.17。使用insecureSkipTLSVerify k6 option 也可能有效,我没有检查过,但顾名思义,它会停止任何 TLS 验证并且不安全。

所以真正的解决方案是正确地重新生成服务器端证书。

【讨论】:

  • 感谢@na——使用 insecureSkipTLSVerify k6 选项的解决方案也有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 2015-08-20
  • 2019-11-10
  • 2020-05-20
  • 2023-01-02
相关资源
最近更新 更多