我在linux终端中使用gatling。当我传递github中描述的参数时,我收到错误:
value users is not a member of Integer
这是我的代码:
package mypackage
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._
import io.gatling.http.Headers.Names._
import scala.concurrent.duration._
import bootstrap._
import assertions._
import util.Random
class MySimulation extends Simulation {
val usersCount = Integer.getInteger("users", 1)
val links = csv("links.csv").random
val httpProtocol = http
.baseURL("http://mywebsite.com:8080/")
.acceptCharsetHeader("ISO-8859-1,utf-8;q=0.7,*;q=0.7")
.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")
.disableFollowRedirect
val headers_1 = Map(
"Keep-Alive" -> "115")
val headers_3 = Map(
"Keep-Alive" -> "115",
"Content-Type" -> "application/x-www-form-urlencoded")
val scn = scenario("big project benchmark")
.repeat(50) {
feed(links)
.exec(
http("request_1")
.get("${pageUri}")
.headers(headers_1)).pause(1000 millisecond)
}
setUp(scn.inject(ramp(usersCount users) over (30 seconds)))
.protocols(httpProtocol)
.assertions(global.successfulRequests.percent.is(100), details("request_1").responseTime.max.lessThan(1000))
我在终端开始使用:
JAVA_OPTS="-Dusers=300" ./gatling.sh -s mypackage.mySimulation -on testing -sd test1
请耐心等待,因为我对scala和gatling完全不熟悉。谢谢你的帮助。
答案 0 :(得分:1)
问题来自setUp的usersCount users
部分。
在Scala中,这被解释为usersCount.users
,在我们的情况下不存在,因为Integer没有用户方法。
我认为(但我不确定,因为我现在无法对其进行测试),您应该将usersCount设为Int
,如此:val usersCount: Int = Integer.getInteger("users", 1).toInt
。
希望这有帮助!
PS:您应将Integer
转换为Int
的原因是隐式转换。这是Scala的一个非常强大的功能。
PPS:维基文档对Gatling 1.X有效,它将根据Gatling 2.X进行相应更新