当前位置: 首页 > 知识库问答 >
问题:

如何在gatling模拟中运行多个空手道功能文件?

华升
2023-03-14

如何在gatling模拟中运行多个空手道功能文件?

以下是我gatling模拟的代码片段:

class TestGatlingScalaSimulation extends Simulation {

  val log: Logger = LoggerFactory.getLogger(classOf[TestGatlingScalaSimulation])

  /*val environmentVars = System.getenv().asScala
  for ((k,v) <- environmentVars) println(s"key: $k, value: $v")*/

  val properties: mutable.Map[String, String] = System.getProperties.asScala
  //for ((k,v) <- properties) println(s"key: $k, value: $v")
  val activeUsers: Int = properties.getOrElse("SIM_ACTIVE_USERS", "10").asInstanceOf[String].toInt
  val rampUpPeriod: Int = properties.getOrElse("SIM_RAMP_UP_PERIOD", "10").asInstanceOf[String].toInt
  val karateFeatureFile: String = properties.getOrElse("SIM_FEATURE", "karate/example.feature")

  val protocol: KarateProtocol = karateProtocol()

  protocol.nameResolver = (req, ctx) => req.getHeader("karate-name")

  val create: ScenarioBuilder = scenario("create").exec(karateFeature(s"classpath:$karateFeatureFile"))
  log.info("Running simulation of feature [{}] with [{}] users ramped up in [{}]", karateFeatureFile, activeUsers.toString, rampUpPeriod.toString)
  setUp(
    create.inject(rampUsers(activeUsers) during (rampUpPeriod seconds)).protocols(protocol)
  )
}

我每次只能运行一个功能文件,如下所示:

./gradlew -Pgatling_simulation=performance.TestGatlingScalaSimulation -DSIM_ACTIVE_USERS=100 -DSIM_RAMP
_UP_PERIOD=10 -DSIM_FEATURE="karate/flight/myfeature.feature" gatlingRun

共有1个答案

梁晋鹏
2023-03-14

这在文档中描述得很清楚:https://github.com/intuit/karate/tree/master/karate-gatling#usage

val create = scenario("create").exec(karateFeature("classpath:mock/cats-create.feature"))
val delete = scenario("delete").exec(karateFeature("classpath:mock/cats-delete.feature@name=delete"))

setUp(
  create.inject(rampUsers(10) during (5 seconds)).protocols(protocol),
  delete.inject(rampUsers(5) during (5 seconds)).protocols(protocol)
)
 类似资料:
  • 我有两个空手道特征文件 一个用于创建用户(CreateUser.feature) 一个用于获取创建的用户数(GetUserCount.feature) 我还有一个Gatling Scala文件 这将调用CreateUser。rampUser(100)超过(5秒)的功能 这工作完美。我想知道的是,在加特林完成模拟后,我如何调用GetUserCount.feature?只能调用一次以获取最终创建的用户

  • 我有五个不同的URLendpoint(环境)用于生产和QA,我需要在一次运行中在所有这些生产环境中执行相同的特性,并在一个cucumber报告中得到结果-(在TestNG中,我将每个环境作为参数传递到单独的XML文件中,然后使用一个公共的TestNG.XML文件,该文件包含所有这些不同环境的XML)。 我如何在Karate-config文件中管理这个? 我有以下生产环境ProdV1、ProdV2、

  • 有人能帮我重新运行空手道中失败的功能吗?下面是cucumber选项和跑步者测试,用于并行-

  • 我尝试用空手道设置一个集成/应用编程接口测试套件,并考虑使用空手道网络来模拟所需的服务。对于测试设置,测试A(Spring Boot应用程序)下的系统完全启动。空手道测试然后由针对该实例的Maven测试运行执行。 服务A依赖于多个其他服务,这些服务需要在测试中被模拟掉。为此,我的想法是将正在运行的KarateNetty独立实例配置为HTTP代理(由服务a的JVM参数完成)。 现在我的想法是创建一个

  • 我希望只通过代码通过空手道UI运行多个功能文件。空手道UI提供了一个又一个执行cucumber特性文件的特性,但我希望通过代码打开UI,使用但在那里我不能使用三个参数。 如果我放置多个,然后它只拾取第一个feature1文件。

  • 我已经安装了cucumber eclipse插件。我已经用空手道编写了我的简单功能文件,当我试图将其作为cucumber测试运行时,我被要求实现缺少的步骤。当我使用专用的运行程序运行同一个功能文件时,它的执行不会出现任何问题。请你帮忙。我正在尝试在不使用专用跑步者的情况下进行这项测试