2013-07-18 5 views
2

Я использую gatling в терминале 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. Спасибо за любую помощь.

ответ

1

Проблема возникает из usersCount users части setUp.

В Scala это интерпретируется как usersCount.users, который в нашем случае не существует, поскольку Integer не имеет метода пользователей.

Я думаю (но я не уверен, так как я не могу проверить его прямо сейчас), что вы должны сделать usersCount Int следующим образом: val usersCount: Int = Integer.getInteger("users", 1).toInt.

Надеюсь, это поможет!

PS: Причина, по которой вам следует преобразовать Integer в Int, является результатом неявных преобразований. Это действительно мощная функция Scala.

PPS: Документация Вики была действительна для Гатлинга 1.X, он будет обновляться соответственно для Гатлинга 2.X

+0

Совершенных :) Она работает, спасибо большое :) –

+0

«Я думаю, что (но я я не уверен, так как я не могу проверить его прямо сейчас), что вы должны сделать usersCount Int таким, что «Если это необходимо, достаточно одного из': Int' и '.toInt' (и это не обязательно, если он используется там, где требуется «Int», но я также не могу его протестировать). –

+0

Действительно, вы правы. Я бы предпочел в этом случае '.toInt', чем': Int'. –

Смежные вопросы