Sto provando a modulare una serie di test delle prestazioni in Gatling.Scenari di modularizzazione da eseguire in sequenza usando Gatling
Diversi test eseguono lo stesso percorso iniziale attraverso le pagine, quindi ho pensato che potevo suddividerli in una serie di scenari, ogni scenario essendo una serie di azioni condivise definite nel proprio file e quindi una finale Definizione della simulazione che ha semplicemente eseguito gli scenari specificati uno dopo l'altro.
Quello che mi serve quindi è che la mia simulazione esegua questi scenari in sequenza; ma posso solo trovare come eseguirli contemporaneamente o con un ritardo specifico tra ciascuno. Esiste un'opzione di impostazione Simulazione per eseguire gli scenari definiti uno dopo l'altro senza specificare un ritardo arbitrario?
EDIT
Attualmente, ho la seguente serie di file:
homepageHeaders.scala
package advanced
object homepageHeaders {
val homepage_headers_1 = Map(
"Accept" -> """text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8""",
"If-Modified-Since" -> """Wed, 20 Mar 2013 15:36:31 +0000""",
"If-None-Match" -> """"1363793791""""
)
}
homepageChain.scala
package advanced
import com.excilys.ebi.gatling.core.Predef._
import com.excilys.ebi.gatling.http.Predef._
import com.excilys.ebi.gatling.jdbc.Predef._
import akka.util.duration._
import homepageHeaders._
object homepageChain {
val homepageChain =
//Homepage
exec(http("homepage")
.get("/")
.headers(homepageHeaders.homepage_headers_1)
)
}
pageHeaders.scala
012.351.package advanced
object pageHeaders {
val page_headers_1 = Map(
"Accept" -> """text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"""
)
}
pageChain.scala
package advanced
import com.excilys.ebi.gatling.core.Predef._
import com.excilys.ebi.gatling.http.Predef._
import com.excilys.ebi.gatling.jdbc.Predef._
import akka.util.duration._
import pageHeaders._
object pageChain {
val pageChain =
//Page Menu
exec(http("page request")
.get("/page1")
.headers(pageHeaders.page_headers_1)
)
}
pageSimulation.scala
package advanced
import com.excilys.ebi.gatling.core.Predef._
import com.excilys.ebi.gatling.http.Predef._
import com.excilys.ebi.gatling.jdbc.Predef._
import homepageChain._
import pageChain._
class pageSimulation extends Simulation {
val urlBase = "http://www.mytestsite.com"
val httpConf = httpConfig
.baseURL(urlBase)
.acceptHeader("image/png,image/*;q=0.8,*/*;q=0.5")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("en-gb,en;q=0.5")
.userAgentHeader("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0")
val pageScenario = scenario("Bodycare Scenario")
.exec(homepageChain.homepageChain)
.exec(pageChain.pageChain)
setUp(
homepageScenario.users(1).protocolConfig(httpConf)
)
}
L'errore che sto ricevendo è:
14:40:50.800 [ERROR] c.e.e.g.a.ZincCompiler$ - /Gatling/user-files/simulations/advanced/pageChain.scala:13: not found: value exec
14:40:50.807 [ERROR] c.e.e.g.a.ZincCompiler$ - exec(http("page request")
14:40:50.808 [ERROR] c.e.e.g.a.ZincCompiler$ - ^
14:40:53.988 [ERROR] c.e.e.g.a.ZincCompiler$ - /Gatling/user-files/simulations/advanced/homepageChain.scala:13: not found: value exec
14:40:53.989 [ERROR] c.e.e.g.a.ZincCompiler$ - exec(http("homepage")
14:40:53.989 [ERROR] c.e.e.g.a.ZincCompiler$ - ^
14:41:17.274 [ERROR] c.e.e.g.a.ZincCompiler$ - two errors found
Exception in thread "main" Compilation failed
Chiaramente mi manca qualcosa nella mia definizione, ma non capisco cosa sia
posso vedere il principio generale, ma sto lottando per implementarlo nella pratica - la mia mancanza di java/scala sta davvero cominciando a colpire a casa –
A questo punto, è più un problema di Gatling DSL (docu, forse) che uno di Scala. Ecco un esempio: https://github.com/excilys/gatling-hands-on/blob/master/gatling-hands-on-demo/src/test/scala/computerdatabase/Step10.scala –
Per quanto riguarda la modifica: mancano alcune importazioni (erano qui sicuramente se si utilizzava il registratore). Qui, quello mancante per la compilazione è il bootstrap, ma prima o poi ne colpisci gli altri. Si prega di dare un'occhiata al campione che ho fornito e aggiungerli tutti. –