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

时间:2018-01-19 18:22:10

标签: java scala cucumber performance-testing gatling

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

3 个答案:

答案 0 :(得分:1)

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

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

blog post可能会对您有所帮助。

答案 1 :(得分:0)

如果您是第一次使用Gatling,您是否考虑过使用其他可以为您提供此类选项的性能工具?作为你的情况下Gatling的模拟(如果你想在Java上创建功能测试)并在以后使用加载工具运行它我建议你检查蝗虫。

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

https://www.blazemeter.com/blog/locust-performance-testing-using-java-and-kotlin

另一个更好的选择可能是使用Taurus框架,它允许您立即运行JUnit / TestNG测试: https://gettaurus.org/docs/JUnit/ https://www.blazemeter.com/blog/navigating-your-first-steps-using-taurus

答案 2 :(得分:0)

Gatling主要用于http测试。我要做的是从加特林测试中调用Java代码,该测试将返回我检查的值:我从下面的Java代码返回一个布尔值以进行性能测试(功能测试也是如此,需要扩展GatlingHttpFunSpec模拟类)。还需要使用一个虚拟端点(例如运行状况检查网址,它将始终返回200)。

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))