当前位置: 首页 > 知识库问答 >
问题:

Gatling:随机进纸器POST请求:未找到:值电子邮件(Gatling 3.0.0)

齐献
2023-03-14

**使用Gatling进行随机负载测试**我想测试我构建的API以获得更高的负载,因此,我必须生成大量随机电子邮件(我知道目前服务器上没有电子邮件检查,所以我只创建随机字符串)。我使用的工具是gatling-charts-highcharts-bundle-3.0.0,我查看了关于如何解决这个问题的其他问题和网页,并获得了使用feeders的信息。我尝试了下面的代码,但我不明白为什么总是会出现一个值not error。基本上:我正在尝试创建一个随机字符串馈送器,并在gatling 3.0.0中使用它,但当我以以下方式执行时,我总是收到一个“未找到:值电子邮件”错误:

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个答案

姜德泽
2023-03-14

我找到了解决方案:而不是:

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

使用:

StringBody("""{ "testmail": ${email}, "testmailagain": ${email}, }""")).asJson
 类似资料:
  • 我有一个非常简单的场景,可以从只包含一个标题为的列的CSV文件中获取随机值。然后,我想把这个值粘贴到POST请求的主体中。我的请求主体的示例如下:。因此,我需要使用CSV文件中的值,而不是。以下是我的反馈和场景: 这个例子是我迄今为止所做的最接近的实现。但它并不像我预期的那样有效。我无法将进纸器中的值粘贴到

  • 我正试图让盖特林为每个POST请求创建随机数据。我关注了stackoverflow和其他地方的一些帖子。我想出了这个方案- 然而,当我运行这段代码时,它只调用我的feeder一次,以创建一个UUID,并在整个负载测试中重新使用相同的UUID。 在遵循这条线索之后,我创建了上面的代码。我用的是加特林2.2.5。这是我的sbt配置-

  • 我有一个文件,其中包含Json请求体。我想使用constantUsersPerSec(...)对每秒发送恒定数量请求的Web进行基准测试。 但是,每次发送请求时,我都希望从请求列表中获取请求(随机或循环,我不在乎)。 我不知道该怎么对付加特林。使用以下代码,请求被随机选择一次,同一请求被反复发送。这不是我想要的 我的代码:

  • 我正在为api编写负载测试,并希望创建一个提要器,该提要器生成随机值以注入POST请求的正文。我最初尝试从留档复制随机电子邮件示例并将其他字段添加到生成的映射中,但当这不起作用时,我进入了一个字段,基本上复制了留档;然而,即使这样也不起作用,出于某种原因。这里有很多解决方案也使用这种语法,但我正在做的一些事情导致我尝试注入正文的字段在请求发出时为空。 当前代码: 理想情况下,我希望能够扩展馈线,以

  • 我一直在尝试设置AWS简单电子邮件服务,作为一种将收到的电子邮件转发到我的自定义域到我的Gmail帐户的方式,而不需要任何电子邮件托管服务。 我已经设置并验证了我的自定义域(mycustomdomain.com),还验证了它们将转发到的电子邮件地址(myemail@gmail.com)因为我仍然处于沙箱模式。 在电子邮件接收下- 没有指定收件人,我认为这应该允许为我的自定义域下的所有收件人触发此规

  • 我编写了一个Java应用程序,通过LDAP搜索Active directory以获取用户信息。我有一个传入的自定义Person类实例列表。在它我有DN或电子邮件定义。我正在相应地修改搜索条件。代码如下: 代码工作时没有错误,但当指定DN时,它确实找到了一个人,但当定义email时,它什么也找不到。但是,如果复制生成的筛选器字符串并将其以以下形式传递给ldapsearch命令: ldapsearch