Gatling: POST-запрос на случайную подачу: не найдено: электронная почта (Gatling 3.0.0) - PullRequest
0 голосов
/ 18 ноября 2018

** Рандомизированное нагрузочное тестирование с Гатлингом ** Я хочу проверить мой встроенный API на более высокую нагрузку, и, следовательно, мне нужно генерировать огромное количество случайных электронных писем (я знаю, что в настоящее время на сервере нет проверки электронной почты, поэтому я просто создаю случайные строки). Я использую инструмент gatling-charts-highcharts-bundle-3.0.0, и я проверил другие вопросы и веб-страницы о том, как решить эту проблему, и получил информацию об использовании фидеров. Я попробовал следующий код, но я не понимаю, почему всегда появляется значение, а не ошибка. В принципе: Я пытаюсь создать рандомизированный механизм подачи строк и использовать его в gatling 3.0.0, но когда я делаю это следующим образом, я всегда получаю сообщение об ошибке «not found: value email»:

package computerdatabase

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
import scala.util.Random

class testsimu extends Simulation {


val httpProtocol = http
.baseUrl("http://testurl.com/api") // Here is the root for all    relative URLs
.acceptHeader("application/json") // Here are the common headers
.acceptLanguageHeader("en;q=1.0,de-AT;q=0.9")
.acceptEncodingHeader("gzip;q=1.0,compress;q=0.5")
.userAgentHeader("TestApp/1.3.0(com.test.test;build:1;iOS12.1.0)Alamofire/4.7.0")

val headers_10 = Map("Content-Type" -> "application/json") // Note the  headers specific to a given request

val feeder = Iterator.continually(Map("email" -> (Random.alphanumeric.take(20).mkString)))

val scn = scenario("Login") // A scenario is a chain of requests and pauses
 // Note that Gatling has recorded real time pauses
.feed(feeder)
.exec(http("LoginRequest") // Here's an example of a POST request
  .post("/login")
  .headers(headers_10)
  .body(StringBody(s"""{ "testmail": ${email}, "testmailagain": ${email}, }""")).asJson)

setUp(scn.inject(constantUsersPerSec(10) during(5 seconds) randomized).protocols(httpConf))
}

Вот сообщение об ошибке:

GATLING_HOME is set to  /Users/privat/Documents/test/Development/gatling-charts-highcharts-bundle-3.0.0
15:06:12.819 [ERROR] i.g.c.ZincCompiler$ - /Users/privat/Documents/test/Development/gatling-charts-highcharts-bundle-  3.0.0/user-files/simulations/test/test.scala:45:46: not found: value email
  .body(StringBody(s"""{ "testmail": ${email}, "testmailagain": ${email}, }""")).asJson)
                                         ^
15:06:12.821 [ERROR] i.g.c.ZincCompiler$ - /Users/privat/Documents/test/Development/gatling-charts-highcharts-bundle-3.0.0/user-files/simulations/higgs/higgs-sim.scala:45:103: not found: value email
  .body(StringBody(s"""{ "testmail": ${email}, "testmailagain": ${email}, }""")).asJson)
                                                                                                     ^
15:06:12.856 [ERROR] i.g.c.ZincCompiler$ - two errors found
15:06:12.858 [ERROR] i.g.c.ZincCompiler$ - Compilation crashed
sbt.internal.inc.CompileFailed: null
    ...

Почему появляется ошибка "значение не найдено"?

1 Ответ

0 голосов
/ 18 ноября 2018

Я нашел решение: Вместо:

StringBody(s"""{ "testmail": ${email}, "testmailagain": ${email}, }""")).asJson

Использование:

StringBody("""{ "testmail": ${email}, "testmailagain": ${email}, }""")).asJson
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...