这可能是因为Artillery默认情况下使用HTTP/1.1连接,而您的服务器使用HTTP/2连接。解决此问题的方法之一是在Artillery配置中明确指定使用HTTP/2连接。具体地,您可以将以下内容添加到Artillery配置文件中:
config: target: "https://yourserver.com" phases: - duration: 60 arrivalRate: 10 http: version: 2
这将告诉Artillery使用HTTP/2连接来模拟负载测试。如果您使用的是Javascript API,则可以在使用Artillery时将http.version选项传递给构造函数。例如:
const { ArtilleryEngine } = require('artillery-core');
const engine = new ArtilleryEngine({ http: { version: 2 }, config: { target: "https://yourserver.com", phases: [ { duration: 60, arrivalRate: 10 } ] } });
// Run the test scenario engine.runScenario().then((result) => { console.log(result); });
在此示例中,we指定了http.version选项为2,用于指定使用HTTP/2协议。您可以根据您希望测试的服务器的设置来选择使用HTTP/1.1或HTTP/2连接。
参考文章:https://artillery.io/docs/http-reference.html#http-version