GithubHelp home page GithubHelp logo

znsio / perfiz Goto Github PK

View Code? Open in Web Editor NEW
15.0 9.0 5.0 23.15 MB

A Dockerised API Performance Test Setup based on Gatling with Grafana Dashboards and Prometheus Monitoring

Home Page: https://perfiz.com/

License: MIT License

Shell 23.56% Scala 76.44%
gatling-tests docker metrics-monitor docker-compose karate-tests karate-framework grafana prometheus karate-gatling gatling-metrics

perfiz's People

Contributors

dependabot[bot] avatar harikrishnan83 avatar nashjain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

perfiz's Issues

Abnormal command

image
"Docker-compose up-d" is what we use when we use the command, but your document is docker compose up-d, the official is the same as mine, it's really weird, and it doesn't start up

Scala dependency issue while trying to use karate 1.0.1

What we tried already:

Changed the version in pom.xml
<karate.version>1.0.1</karate.version>

Deleted the dependency according to this upgrade guide.

<dependency>
   <groupId>com.intuit.karate</groupId>
   <artifactId>karate-apache</artifactId>
   <version>${karate.version}</version>
   <scope>test</scope>
 </dependency>

perfiz start works fine but perfiz test gives me the following error while downloading some scala dependency

Downloaded from jcenter: https://jcenter.bintray.com/org/scala-sbt/zinc-persist-core-assembly/1.4.3/zinc-persist-core-assembly-1.4.3.jar (2.6 MB at 463 kB/s)
2021/06/25 12:42:25 07:12:25.244 [main] INFO  io.gatling.compiler.ZincCompiler$ - compiling 2 Scala sources to /usr/src/performance-testing/target/test-classes ...
2021/06/25 12:42:37 07:12:37.730 [main] ERROR io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:63:51: type mismatch;
2021/06/25 12:42:37  found   : scala.collection.mutable.Buffer[(String, scala.collection.immutable.Nil.type)]
2021/06/25 12:42:37  required: Seq[(String, Seq[com.intuit.karate.gatling.MethodPause])]
2021/06/25 12:42:37       karateFeatureConfig.uriPatterns.asScala.map { uriPattern => uriPattern -> Nil }: _*
2021/06/25 12:42:37                                                   ^
2021/06/25 12:42:37 07:12:37.971 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:23:65: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getKarateFeatures,
2021/06/25 12:42:37 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:37 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:37   private val builders: List[PopulationBuilder] = configuration.getKarateFeatures.asScala.toList.map(karateFeatureConfig => {
2021/06/25 12:42:37                                                                 ^
2021/06/25 12:42:37 07:12:37.990 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:24:50: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getLoadPattern,
2021/06/25 12:42:37 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:37 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:37     val openInjectionSteps = karateFeatureConfig.getLoadPattern.asScala.toList.filter(loadPattern => {
2021/06/25 12:42:37                                                  ^
2021/06/25 12:42:37 07:12:37.998 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:28:43: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getPatternType,
2021/06/25 12:42:37 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:37 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:37       val openInjectionStep = loadPattern.getPatternType match {
2021/06/25 12:42:37                                           ^
2021/06/25 12:42:37 07:12:38.003 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:30:53: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getUserCount,
2021/06/25 12:42:37 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:37 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:37         case AtOnceUsers => atOnceUsers(loadPattern.getUserCount)
2021/06/25 12:42:37                                                     ^
2021/06/25 12:42:37 07:12:38.008 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:31:49: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getUserCount,
2021/06/25 12:42:37 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:37 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:37         case RampUsers => rampUsers(loadPattern.getUserCount) during
2021/06/25 12:42:37                                                 ^
2021/06/25 12:42:37 07:12:38.018 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:33:72: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getUserCount,
2021/06/25 12:42:37 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:37 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:37         case ConstantUsersPerSecond => constantUsersPerSec(loadPattern.getUserCount) during
2021/06/25 12:42:37                                                                        ^
2021/06/25 12:42:37 07:12:38.022 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:35:64: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getUserCount,
2021/06/25 12:42:37 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:37 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:37         case RampUsersPerSecond => rampUsersPerSec(loadPattern.getUserCount) to
2021/06/25 12:42:37                                                                ^
2021/06/25 12:42:37 07:12:38.025 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:38:59: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getUserCount,
2021/06/25 12:42:37 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:37 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:37         case HeavisideUsers => heavisideUsers(loadPattern.getUserCount) during
2021/06/25 12:42:37                                                           ^
2021/06/25 12:42:38 07:12:38.029 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:50:52: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getLoadPattern,
2021/06/25 12:42:38 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:38 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:38     val closedInjectionSteps = karateFeatureConfig.getLoadPattern.asScala.toList.filter(loadPattern => {
2021/06/25 12:42:38                                                    ^
2021/06/25 12:42:38 07:12:38.032 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:54:19: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getPatternType,
2021/06/25 12:42:38 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:38 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:38       loadPattern.getPatternType match {
2021/06/25 12:42:38                   ^
2021/06/25 12:42:38 07:12:38.035 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:55:77: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getUserCount,
2021/06/25 12:42:38 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:38 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:38         case ConstantConcurrentUsers => constantConcurrentUsers(loadPattern.getUserCount) during
2021/06/25 12:42:38                                                                             ^
2021/06/25 12:42:38 07:12:38.039 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:57:69: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getUserCount,
2021/06/25 12:42:38 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:38 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:38         case RampConcurrentUsers => rampConcurrentUsers(loadPattern.getUserCount) to
2021/06/25 12:42:38                                                                     ^
2021/06/25 12:42:38 07:12:38.051 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:66:36: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getGatlingSimulationName,
2021/06/25 12:42:38 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:38 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:38       scenario(karateFeatureConfig.getGatlingSimulationName).
2021/06/25 12:42:38                                    ^
2021/06/25 12:42:38 07:12:38.054 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:67:63: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getKarateFile,
2021/06/25 12:42:38 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:38 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:38         exec(karateFeature("classpath:" + karateFeatureConfig.getKarateFile)).
2021/06/25 12:42:38                                                               ^
2021/06/25 12:42:38 07:12:38.058 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:71:36: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getGatlingSimulationName,
2021/06/25 12:42:38 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:38 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:38       scenario(karateFeatureConfig.getGatlingSimulationName).
2021/06/25 12:42:38                                    ^
2021/06/25 12:42:38 07:12:38.062 [main] WARN  io.gatling.compiler.ZincCompiler$ - /usr/src/performance-testing/src/test/scala/org/znsio/perfiz/PerfizSimulation.scala:72:63: Auto-application to `()` is deprecated. Supply the empty argument list `()` explicitly to invoke method getKarateFile,
2021/06/25 12:42:38 or remove the empty argument list from its definition (Java-defined methods are exempt).
2021/06/25 12:42:38 In Scala 3, an unapplied method like this will be eta-expanded into a function.
2021/06/25 12:42:38         exec(karateFeature("classpath:" + karateFeatureConfig.getKarateFile)).
2021/06/25 12:42:38                                                               ^
2021/06/25 12:42:38 07:12:38.098 [main] WARN  io.gatling.compiler.ZincCompiler$ - 16 warnings found
2021/06/25 12:42:38 07:12:38.111 [main] ERROR io.gatling.compiler.ZincCompiler$ - one error found
2021/06/25 12:42:38 07:12:38.156 [main] ERROR io.gatling.compiler.ZincCompiler$ - Compilation crashed
2021/06/25 12:42:38 sbt.internal.inc.CompileFailed: null
2021/06/25 12:42:38 	at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:335)
2021/06/25 12:42:38 	at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:420)
2021/06/25 12:42:38 	at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
2021/06/25 12:42:38 	at io.gatling.compiler.ZincCompiler$.doCompile(ZincCompiler.scala:255)
2021/06/25 12:42:38 	at io.gatling.compiler.ZincCompiler$.delayedEndpoint$io$gatling$compiler$ZincCompiler$1(ZincCompiler.scala:262)
2021/06/25 12:42:38 	at io.gatling.compiler.ZincCompiler$delayedInit$body.apply(ZincCompiler.scala:40)
2021/06/25 12:42:38 	at scala.Function0.apply$mcV$sp(Function0.scala:39)
2021/06/25 12:42:38 	at scala.Function0.apply$mcV$sp$(Function0.scala:39)
2021/06/25 12:42:38 	at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
2021/06/25 12:42:38 	at scala.App.$anonfun$main$1(App.scala:73)
2021/06/25 12:42:38 	at scala.App.$anonfun$main$1$adapted(App.scala:73)
2021/06/25 12:42:38 	at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
2021/06/25 12:42:38 	at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
2021/06/25 12:42:38 	at scala.collection.AbstractIterable.foreach(Iterable.scala:920)
2021/06/25 12:42:38 	at scala.App.main(App.scala:73)
2021/06/25 12:42:38 	at scala.App.main$(App.scala:71)
2021/06/25 12:42:38 	at io.gatling.compiler.ZincCompiler$.main(ZincCompiler.scala:40)
2021/06/25 12:42:38 	at io.gatling.compiler.ZincCompiler.main(ZincCompiler.scala)
2021/06/25 12:42:38 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2021/06/25 12:42:38 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2021/06/25 12:42:38 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2021/06/25 12:42:38 	at java.lang.reflect.Method.invoke(Method.java:498)
2021/06/25 12:42:38 	at io.gatling.mojo.MainWithArgsInFile.runMain(MainWithArgsInFile.java:53)
2021/06/25 12:42:38 	at io.gatling.mojo.MainWithArgsInFile.main(MainWithArgsInFile.java:34)
2021/06/25 12:42:38 [INFO] ------------------------------------------------------------------------
2021/06/25 12:42:38 [INFO] BUILD FAILURE
2021/06/25 12:42:38 [INFO] ------------------------------------------------------------------------
2021/06/25 12:42:38 [INFO] Total time:  02:10 min
2021/06/25 12:42:38 [INFO] Finished at: 2021-06-25T07:12:38Z
2021/06/25 12:42:38 [INFO] ------------------------------------------------------------------------
2021/06/25 12:42:38 [ERROR] Failed to execute goal io.gatling:gatling-maven-plugin:3.1.2:test (default-cli) on project perfiz: Gatling failed.: Simulations compilation failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]
2021/06/25 12:42:38 [ERROR] 
2021/06/25 12:42:38 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
2021/06/25 12:42:38 [ERROR] Re-run Maven using the -X switch to enable full debug logging.
2021/06/25 12:42:38 [ERROR] 
2021/06/25 12:42:38 [ERROR] For more information about the errors and possible solutions, please read the following articles:
2021/06/25 12:42:38 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Metrics on Grafana dashboard is not visible.

Describe the bug
On running the command: $PERFIZ_HOME/perfiz.sh start to Start Performance Test Monitoring Stack on Docker. I don't see prometheus container. Hence, Metrics on Grafana dashboard is not visible.

To Reproduce

Steps to reproduce the behavior:

  1. Follow steps mentioned in the Perfiz Github Instruction Section

Expected behavior

  1. There should be a prometheus container along with other Perfiz Monitoring stack.
  2. On importing all the sample dashboards on Grafana and on running load test command: $PERFIZ_HOME/perfiz.sh test. All the metrics should be visible on the Grafana Dashboard.

Screenshots
Docker containers List:
image
Grafana Dashboard - Metrics Not visible:
image
Promethues server not running:
image

Desktop (please complete the following information):

  • OS: [Mac OS Catalina]

Windows Support

Write bat file or powershell script that is similar to perfiz.sh. Any other mechanisms / ideas to get Perfiz running on Windows are welcome as long as they solve below problems.

Also need to write upgrade scripts similar to linux / mac

Upgrade Scripts

Add upgrade command to the CLI which allows users to move to the latest version of Perfiz. Also need to make sure we keep Grafana and Prometheus Data.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.