如何在Gatling脚本中运行java文件?

如何在Gatling脚本中运行java文件?,java,scala,cucumber,performance-testing,gatling,Java,Scala,Cucumber,Performance Testing,Gatling,我第一次使用加特林。我有一些用java/cucumber编写的功能测试。我想从Gatling scala脚本运行这些功能测试,以对我的应用程序进行性能测试。有什么办法吗? 我们的想法是使用现有的功能测试,并将它们包装在gatling脚本中,以便它们可以为多个用户并发执行。您要做的是从Scala调用Java方法 确保要调用的方法在Scala看到的类路径上可用。然后引用要调用的方法 这可能会对您有所帮助。如果您是第一次使用Gatling,您是否考虑过使用其他一些性能工具来为您提供这些选项?对于您的案

我第一次使用加特林。我有一些用java/cucumber编写的功能测试。我想从Gatling scala脚本运行这些功能测试,以对我的应用程序进行性能测试。有什么办法吗?
我们的想法是使用现有的功能测试,并将它们包装在gatling脚本中,以便它们可以为多个用户并发执行。

您要做的是从Scala调用Java方法

确保要调用的方法在Scala看到的类路径上可用。然后引用要调用的方法


这可能会对您有所帮助。

如果您是第一次使用Gatling,您是否考虑过使用其他一些性能工具来为您提供这些选项?对于您的案例(如果您想在Java上创建功能测试)和以后使用加载工具运行它们,我建议您检查蝗虫

使用蝗虫,您可以使用Java甚至Kotlin编写测试。您可以通过以下链接找到方便的教程:

另一个更好的选择可能是使用Taurus框架,它允许您立即运行JUnit/TestNG测试:

Gatling主要用于http测试。我要做的是从gatling测试中调用java代码,该测试将返回一个我检查的值,例如:我从下面的java代码中返回一个布尔值,用于执行性能测试(对于需要扩展GatlingHttpFunSpec而不是模拟类的功能测试也是如此)。还需要使用一个伪端点(比如总是返回200的健康检查url)

val myJavaTest: MyJavaTest = new MyJavaTest()
val baseURL="http://localhost:8080"
val endpoint_headers=Map("header1" -> "val1")
val endPoint="/myurl/healthcheck"
setUp(scenario("Scenario ")
    .exec(
http("run first test")
        .get(endpoint)
        .headers(endpoint_headers)
        .check(bodyString.transform(str => {
          myJavaTest.runTest1()//should return boolean
    }).is(true)))
.inject(atOnceUsers(1))).protocols(http
  .baseURL(baseURL))