【问题标题】:How to run a java file inside of Gatling script?如何在 Gatling 脚本中运行 java 文件?
【发布时间】:2018-06-29 01:29:05
【问题描述】:

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

【问题讨论】:

    标签: java scala cucumber performance-testing gatling


    【解决方案1】:

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

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

    这个blog post 可以帮助你。

    【讨论】:

      【解决方案2】:

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

      使用 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

      【讨论】:

        【解决方案3】:

        Gatling 主要用于 http 测试。我要做的是从 gatling 测试中调用 java 代码,这将返回我检查 ex 的值:我从下面的 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))
        

        【讨论】:

          猜你喜欢
          • 2018-08-10
          • 1970-01-01
          • 2019-02-19
          • 2018-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-05
          • 2015-12-02
          相关资源
          最近更新 更多