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

从Gatling中的cvs文件获取json请求正文

龙弘济
2023-03-14

我有一个csv文件如下:

Id,searchCriterion
18817,"{"basicSearchCriteria":{"name":{"text":"Kas"}}}"

我想在请求正文中将搜索条件作为json发布,并准备了以下代码作为gatling场景,但它不起作用——由于正文中的json不正确,我收到了400个状态代码:

  val feeder = csv("search.csv")
  
  object SearchWithCriteria
  {
    var request =
          feed(feeder)
          .exec(
             http("POST with criteria page 1")
            .post("api/resources?pageNumber=1&pageSize=10&id=${Id}")
            .body(StringBody("""${searchCriterion}"""))
                  .check(status.is(200))
                  )
  }

  val basicSearch = scenario("Basic search (no search criteria)").exec(SearchWithCriteria.request)

  setUp(
    basicSearch.inject(rampUsers(1) during (1 seconds))
  ).protocols(httpProtocol)

当我将json从csv文件转换为body语句(如上所述)时,它可以工作:

.body(StringBody("""{"basicSearchCriteria":{"name":{"text":"Kas"}}}"""))

共有1个答案

麹渊
2023-03-14

您的文件不正确,因为双引号是必须转义的保留字符。

来自rfc4180:

如果字段没有用双引号括起来,则字段内可能不会出现双引号。

如果使用双引号括起字段,则必须通过在字段前面加上另一个双引号来转义字段中出现的双引号。

你应该有:

Id,searchCriterion
18817,"{""basicSearchCriteria"":{""name"":{""text"":""Kas""}}}"
 类似资料:
  • 我用谷歌浏览器创建了一个“.har”文件,创建了一个加特林模拟。我改变了输入参数

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

  • 我使用的是spring boot Version-2.0.6.Release和spring cloud Version-finchley.sr2

  • 问题内容: 我想通过PHP 在Blogger博客中添加帖子。Google提供了以下示例。如何在PHP中使用它? 您可以通过向带有帖子JSON正文的帖子集合URI发送POST请求来为博客添加帖子: 问题答案: 您需要使用cURL库发送此请求。 如果由于某种原因您不想/不想使用cURL,可以这样做:

  • 他们在vertx网站上的文档不太清楚如何接收请求的正文。 我得到错误: 如果他们甚至不把它放在他们的文件里,我怎么知道该怎么称呼它...

  • 问题内容: 我正在写一个注册为Webhook端点的脚本。我知道它已成功注册,因为我正在将每个请求的标头写入服务器日志。这是一个示例: 我已经注册的API是将JSON对象发布到脚本中,我想使用PHP解析该对象。从请求标头可以看到,有一个不错的大胖JSON对象正在等待解析。看起来很简单,但事实并非如此。 最初,我尝试使用或,但是由于数据不在数组中,因此我不确定如何访问数据。 我试过使用和不使用,但没有