GATLING Rest API 测试 - java.nio.channels.ClosedChannelException: null
Posted
技术标签:
【中文标题】GATLING Rest API 测试 - java.nio.channels.ClosedChannelException: null【英文标题】:GATLING Rest API testing - java.nio.channels.ClosedChannelException: null 【发布时间】:2021-03-03 00:50:44 【问题描述】:我正在尝试对 REST API 进行性能测试,我正在使用以下代码:
val httpConf = http. baseUrl("http://localhost:8080")
.header("Accept","application/json")
.header("content-type","application/json") //scenario
val scn = scenario("get user")
.exec(http("get user request")
.get("/endpoint")
.check(status is 200))
setUp(scn.inject(atOnceUsers(1)))
.protocols(httpConf)
但我收到此错误:
DEBUG io.gatling.http.client.impl.DefaultHttpClient - Failed to connect to remoteAddress=gatling.io/34.77.242.251:443 from localAddress=null
java.nio.channels.ClosedChannelException: null
我也尝试添加代理 .proxy(Proxy("localhost", 8080))
但添加代理后我看到以下错误
Caused by: io.netty.handler.proxy.HttpProxyHandler$HttpProxyConnectException: http, none, localhost/127.0.0.1:8080 => gatling.io/<unresolved>:443, status: 400**
关于如何解决这个问题的任何建议?
【问题讨论】:
【参考方案1】:这不是错误,而是调试日志。你可以忽略这一点。此外,您真的不应该在运行负载测试时启用 DEBUG 日志记录,否则会破坏性能。
此调试日志发生在 Gatling 无法执行预热请求时,通常是因为您使用企业代理。 请查看documentation。
【讨论】:
我认为这是一个问题,因为当我运行测试时,负载测试失败了。我正在 Mac 中尝试此操作,但是当我在我的个人电脑(即 Windows)中执行相同步骤时,一切正常 没有。这是一个调试日志,不可能导致您的测试失败。如果您的测试不起作用,则原因不同。请提供适当的信息,例如完整的堆栈跟踪。【参考方案2】:如果您想使用Gatling Frontline 对位于http://localhost:8080
的本地应用程序进行负载测试 - 您需要能够访问前线服务器,如果您在corporate proxy server 后面 - 您需要specify these proxy details .但请确保指定您的公司代理主机和端口,而不是被测应用程序的主机和端口。
如果您不打算使用 Gatling Frontline - 下载 Gatling Open Source,它不需要访问任何远程主机。如果需要,请参阅How to Run a Simple Load Test with Gatling 文章了解更多详细信息。
【讨论】:
嗨,Dmitri,我只尝试使用 Gatling Open Source,但仍然看到此错误。以上是关于GATLING Rest API 测试 - java.nio.channels.ClosedChannelException: null的主要内容,如果未能解决你的问题,请参考以下文章
REST API 自动化测试 利器Rest Assured(API接口自动化测试框架体系)
如何使用 Scala 在具有请求正文的 REST API 上执行 GET 请求?