Я пытаюсь модулизовать серию тестов производительности в Gatling.Сценарии модуляции для запуска в последовательности с использованием Gatling
Некоторые из тестов выполняют один и тот же начальный путь по страницам, поэтому я подумал, что могу разбить их на ряд сценариев, каждый из которых представляет собой серию общих действий, определенных в его собственном файле, а затем окончательный Определение моделирования, которое просто выполняло указанные сценарии один за другим.
Что мне тогда нужно для моего моделирования для последовательного запуска этих сценариев; но я могу только найти, как запускать их либо одновременно, либо с определенной задержкой между ними. Существует ли какой-либо параметр настройки Simulation для запуска определенных сценариев один за другим без указания произвольной задержки?
EDIT
В настоящее время, я следующий набор файлов:
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
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)
)
}
ошибка, что я получаю:
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
Очевидно, что я что-то не хватает моего определение, но я просто не понимаю, что это такое
Я могу видеть общий принцип, но борюсь чтобы реализовать его на практике - мой недостаток java/scala действительно начинает ударяться домой –
На данный момент это больше проблема DSL Gatling (возможно, документ), чем Scala. Вот пример: https://github.com/excilys/gatling-hands-on/blob/master/gatling-hands-on-demo/src/test/scala/computerdatabase/Step10.scala –
Что касается вашего редактирования: вам не хватает импорта (они были здесь наверняка, если вы использовали Recorder). Здесь, отсутствующий для компиляции, является bootstrap, но вы рано или поздно попадете в другие. Пожалуйста, ознакомьтесь с образцом, который я предоставил, и добавьте все из них. –