K6性能测试出现Invalid URL GoError及连接失败问题求助
排查K6 HTTP请求异常的问题
我一眼就看到你代码里的两个关键问题,咱们逐个解决:
1. 核心代码错误:把HTTP响应对象当成URL传入
你第一行代码写了let url = http.get("http://test.loadimpact.com");,但http.get()返回的是K6的Response对象,不是字符串格式的URL。当你第二行再用这个对象调用http.get(url)时,K6根本没法把一个对象解析成合法的URL,这就是你看到invalid URL value错误的根本原因。
修正方法特别简单:把URL单独存成字符串变量,别用响应对象覆盖它:
export default function() { // 把URL定义成字符串,而不是http.get的返回结果 const url = "http://test.k6.io"; // 注意:原域名test.loadimpact.com已失效,建议用官方当前推荐的测试域名 let res = http.get(url); check(res, { "status was 200": (r) => r.status == 200, "transaction time OK": (r) => r.timings.duration < 200 }); sleep(1); }
2. 连接超时警告的原因
你遇到的connectex: A connection attempt failed警告,大概率是因为test.loadimpact.com这个旧测试域名已经停止服务了。K6官方现在推荐的稳定测试域名是http://test.k6.io,换成这个域名基本能解决连接问题。
另外也可以排查下自身网络环境:
- 用浏览器或
curl命令测试下能否正常访问目标域名 - 如果是企业内网环境,可能需要配置代理才能访问外部公共域名
验证修正效果
改成上面的代码后,应该能正常发起请求,不会再出现URL无效的错误。如果还是有连接问题,可以换用其他公开测试API(比如https://httpbin.org/get)来验证K6本身的功能是否正常。
内容的提问来源于stack exchange,提问作者techie
相关产品推荐
相关产品推荐

