gatting 表单参数:如何将自定义表单数据传递给发布请求

问题描述 投票:0回答:4

我是加特林脚本新手。 我正在尝试针对我们应用程序的 POST api 之一执行性能测试。此 POST 请求 API 需要传递表单数据。

EG:请求正文的邮递员集合的打印屏幕

enter image description here

为此,我准备了一个加特林代码片段,如下:

      .exec(http("POST Explore JSON")
        .post("/sunrise/explore_json/")
        .header("Content-Type", "application/x-www-form-urlencoded")
        .header("Referer", "https://example.com/sunrise/dashboard/dummy_dashboard/")
        .header("x-csrftoken", "${csrf_token1}")
        .queryParam("form_data","{\"slice_id\":4}")
      //.formParam("form_data","datasource":"2__table") ----------> Tried Method 1
      //.formParamSeq(Seq(("form_data", "datasource":"2__table")))  ----------> Tried Method 2
      //.formParamMap(Map("form_data" ->  "datasource":"2__table")) ----------> Tried Method 3
      //.form("""form_data={"datasource":"2__table"}""") ----------> Tried Method 4

不幸的是,加特林没有按照我想要的方式传递表单数据,目前加特林如何传递表单数据:

form_data: {"datasource":"2__table"}

我想通过的方式是:(请注意我已经删除了“:”和后面的“空格”)

form_data={"datasource":"2__table"}

我尝试了很多很多方法,但无法成功传递上面的表单数据 有什么办法可以让我通过

form_data={"datasource":"2__table"}
吗?

scala performance-testing gatling scala-gatling
4个回答
0
投票

试试这个

 .formParam("form_data", "{\"datasource\":\"2__table\"}")

0
投票

我想分享一下,我们是如何解决这个问题的,我猜这是表示 form_data 的另一种方式?

    .exec(http("POST Explore JSON")
       .post("/sunrise/explore_json/")
       .header("Content-Type", "application/x-www-form-urlencoded")   
       .header("Referer","https://example.com/sunrise/dashboard/dummy_dashboard/")
       .header("x-csrftoken", "${csrf_token1}")
       .queryParam("form_data","{\"slice_id\":4}")
       .bodyPart(StringBodyPart("form_data", s"""{"datasource":"2__table"}"""))
       .check(status.is(200))


0
投票

我面临着同样的“问题”,您可以根据您的要求尝试使用'.formParam'。 有关更多信息和示例,请查看以下内容: Gattle 文档:表单参数


0
投票

我在更新图像时也遇到问题:-我尝试了所有方法:-

.header("用户代理","insomnia/9.1.0") // .bodyPart(ByteArrayBodyPart("头像").fileName("image.jpg").contentType("image/jpg")).asMultipartForm // .bodyPart(RawFileBodyPart("头像","data/image.jpg").contentType("multipart/form").fileName("image.jpg").contentId("image/jpeg").transferEncoding("二进制").charset("utf-8").header("Content-Type","multipart/form").dispositionType("form-data; name=avatar; filename=image.jpg")) //.bodyPart(StringBodyPart("头像","文件").contentType("image/jpeg").fileName("data/image.jpg")).asMultipartForm // .body(RawFileBody("data/CDPS/bffImageRequestBody.json")).asMultipartForm // .formParam("头像", "data/image.jpg") // .multivaluedFormParam("avatar", "data/image.jpg").asMultipartForm .bodyPart(RawFileBodyPart("头像","data/image.jpg").contentType("multipart/form").fileName("image.jpg")).asMultipartForm

© www.soinside.com 2019 - 2024. All rights reserved.