我想在我的mac(Mac OS 10.8.1)上使用Gatling 2.0.0-M3在我的服务器上执行负载测试。
我有两个要测试的REST服务:版本和运行状况检查。这些服务不连接到任何数据库,并且相对简单。他们在身体中返回一些文字。当我尝试一次加载测试一个服务时,响应时间似乎是正确的(小于10毫秒)。 但是,当我将呼叫混合到这些服务时,响应时间超过12,000毫秒。
这是我为测试我的服务而编写的代码:
class MonitoringServices extends Simulation {
val httpProtocol = http.baseURL("http://10.12.84.19:5000")
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3")
.connection("keep-alive")
.userAgentHeader("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0")
val headers_1 = Map(
"Accept" -> "application/json;q=0.9,*/*;q=0.8",
"Accept-Charset" -> "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Cache-Control" -> "max-age=0"
)
val scn1 = scenario("Monitoring services: version")
.exec(http("version")
.get("/mood-engine/v1/version")
.headers(headers_1)
.check(status.is(200))
)
val scn2 = scenario("Monitoring services: health-check")
.exec(http("version")
.get("/mood-engine/v1/health-check")
.headers(headers_1)
.check(status.is(200))
)
setUp(
scn1.inject(
atOnce(1 user),
constantRate(1 usersPerSec) during (10 seconds)
),
scn2.inject(
atOnce(1 user),
constantRate(1 usersPerSec) during (10 seconds)
)
).protocols(httpProtocol)
.assertions(global.responseTime.max.lessThan(350))
}
你有任何线索吗?
答案 0 :(得分:0)
问题出在被测系统中的可能性很大(死锁?)。 你能监控服务器端吗?如果它在JVM上运行,您可以尝试VisualVM或YourKit,看看你的线程做了什么。
PS:请升级到M3a,这是我们在M3之后不久发布的修复。