加特林测试的模块化

问题描述 投票:0回答:1

好吧,我是个新手,之前我一直只做JMeter和Selenium测试。由于后者,我想把我的测试模块化一点。但是由于某些原因,每次当我试图从不同的页面输入一个val时,我都会得到 "Cannot resolve overloaded method 'exec'"。现在是这样的。在我看来,所有的包都是正确的,此外,当我简单地把loginPage.scala的内容复制到baseScenario中时,所有的工作都很正常。可能是我没有完全理解Scala的工作原理,因为我的主要经验是基于Java的。

enter image description here

基础场景.scala

   package tscgatling.base

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import tscgatling.loginPage._

class baseScenario extends Simulation{

  val urlBase = "xx"

  val httpProtocol = http
    .baseUrl(urlBase)
    .acceptHeader("image/webp,image/apng,image/*,*/*;q=0.8")
    .acceptEncodingHeader("gzip, deflate")
    .acceptLanguageHeader("pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7")
    .userAgentHeader("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36")

  val loginNoAction = exec(loginPage.loginNoAction)

  val scn = scenario("Test")
    .exec(loginPage.loginNoAction)

  setUp(scn.inject(atOnceUsers(1)).protocols(httpProtocol))

}

登录页面.scala

package tscgatling.loginPage

object loginPage {

  val loginNoAction = exec(http("LoginNoAction")
  .get("/workplace/faces/portlets/pages/portletlogin.xhtml")
  .headers(loginHeaders.headers_12))
  .pause(1)
}

loginHeaders.scala

package tscgatling.loginPage

object loginHeaders {

  val headers_12 = Map(
    "Accept" -> "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "Proxy-Connection" -> "keep-alive",
    "Upgrade-Insecure-Requests" -> "1")

}
scala performance gatling
1个回答
1
投票

作为 在正式文件中解释你应该在每一个你想使用Gatling DSL的文件中导入Predefs。

© www.soinside.com 2019 - 2024. All rights reserved.