空手道加特林整合:使用自定义http客户端时不会生成报告

时间:2019-01-27 06:01:59

标签: gatling karate

我目前正在使用具有gatling集成的空手道框架(karate-gatling版本为0.8.0.1)。当我使用Apache Http客户端时,它会为我要访问的api生成加特林报告。我的api端点之一要求对请求进行签名(Oauth签名),因此我无法为此API使用ApacheHttpClient,这就是为什么我为此使用以下提供请求签名的开源自定义http客户端

https://github.com/gtnicol/karate-okhttp-signpost

当我使用此客户端时,它不会生成加特林报告并抛出以下错误

Generating reports...
java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at io.gatling.mojo.MainWithArgsInFile.runMain(MainWithArgsInFile.java:50)
  at io.gatling.mojo.MainWithArgsInFile.main(MainWithArgsInFile.java:33)
Caused by: java.lang.UnsupportedOperationException: There were no requests sent during the simulation, reports won't be generated
  at io.gatling.charts.report.ReportsGenerator.generateFor(ReportsGenerator.scala:48)
  at io.gatling.app.RunResultProcessor.generateReports(RunResultProcessor.scala:76)
  at io.gatling.app.RunResultProcessor.processRunResult(RunResultProcessor.scala:55)
  at io.gatling.app.Gatling$.start(Gatling.scala:68)
  at io.gatling.app.Gatling$.fromArgs(Gatling.scala:45)
  at io.gatling.app.Gatling$.main(Gatling.scala:37)
  at io.gatling.app.Gatling.main(Gatling.scala)

请建议在使用上述客户端时如何生成加特林报告。 注意:我需要请求签名,因此我需要以上客户端。

1 个答案:

答案 0 :(得分:1)

首先-您可以轻松地使OAuth与Karate一起使用,请参阅:https://github.com/intuit/karate/tree/master/karate-demo/src/test/java/demo/oauth

第二个-由于只有一个API需要OAuth,因此您可以仅使用Java代码,然后将所有令牌传递回所有其他调用,并且仅使用空手道。

请注意,即使您想在加特林(Gatling)记录自定义调用,也可以执行以下操作:https://github.com/intuit/karate/tree/master/karate-gatling#custom

context.capturePerfEvent("myRpc-" + sleepTime, startTime, endTime);

空手道不支持使用自定义客户端,因此请不要要求它。