我是加特林脚本新手。 我正在尝试针对我们应用程序的 POST api 之一执行性能测试。此 POST 请求 API 需要传递表单数据。
EG:请求正文的邮递员集合的打印屏幕
为此,我准备了一个加特林代码片段,如下:
.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"}
吗?
试试这个
.formParam("form_data", "{\"datasource\":\"2__table\"}")
我想分享一下,我们是如何解决这个问题的,我猜这是表示 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))
我面临着同样的“问题”,您可以根据您的要求尝试使用'.formParam'。 有关更多信息和示例,请查看以下内容: Gattle 文档:表单参数
我在更新图像时也遇到问题:-我尝试了所有方法:-
.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