2

我在linux终端中使用加特林。当我传递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 完全陌生。谢谢你的帮助。

4

1 回答 1

1

问题来自usersCount userssetUp的一部分。

在 Scala 中,这被解释为usersCount.users在我们的例子中不存在,因为 Integer 没有 users 方法。

我认为(但我不确定,因为我现在无法测试它),你应该让 usersCountInt像这样:val usersCount: Int = Integer.getInteger("users", 1).toInt

希望这可以帮助!

PS:您应该转换Integer为的原因Int是因为隐式转换。这是 Scala 的一个非常强大的特性。

PPS:wiki 文档对 Gatling 1.X 有效,它将针对 Gatling 2.X 进行相应更新

于 2013-07-18T08:36:28.043 回答