Karate 当文件为--form时,如何使用空手道进行适当的多部分请求?

Karate 当文件为--form时,如何使用空手道进行适当的多部分请求?,karate,Karate,我需要在空手道中实现这样的要求 curl --location --request POST 'http://test.env.com:8080/runner/runners' \ --header 'authorization: Bearer TOKEN' \ --header 'content-type: multipart/form-data; boundary=---011000010111000001101001' \ --form 'createRunnerRequest={ &

我需要在空手道中实现这样的要求

curl --location --request POST 'http://test.env.com:8080/runner/runners' \
--header 'authorization: Bearer TOKEN' \
--header 'content-type: multipart/form-data; boundary=---011000010111000001101001' \
--form 'createRunnerRequest={
  "name": "Test banner - 1",
  "header": "Test banner - 1 header",
  "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
  "priority": "1000",
  "button": {
    "objectType": "Button"
  },
  "isPersonalized": true,
  "startDate":"2020.01.01"
}' \
--form 'image=@/Users/me/Downloads/jpeg2000-home.jpg' \
--form 'ebrList='
因此,我的第一次尝试是为所有字段调用multipart

  Scenario: 000
    Given url bannerServiceUrl + 'banners'
    And header content-type = 'multipart/form-data; boundary=---011000010111000001101001'
    And header Authorization = 'Bearer ' + token
    And multipart file image = { read: 'tst800x400.jpg', contentType: 'image/jpeg'}
    And multipart field createBannerRequest = read('personal-test-runner-1.json')
    When method post
    Then status 200
回复通知我,我没有要求零件图片。 所以我在这里意识到,我需要在这里使用表单。。。所以我做了

  Scenario: 000
    Given url bannerServiceUrl + 'banners'
    And header content-type = 'multipart/form-data; boundary=---011000010111000001101001'
    And header Authorization = 'Bearer ' + token
    And form field image = read('tst800x400.jpg')
    And form field createBannerRequest = read('personal-test-runner-1.json')
    When method post
    Then status 200
现在我有一个错误,上面说application/x-www-form-urlencoded;charset=UTF-8-不支持内容类型

我知道,当我们使用表单时,它是默认的内容类型-application/x-www-form-urlencoded;字符集=UTF-8


所以,我怎样才能正确地编写测试?

我认为
表单字段
不起作用,这是多部分的,所以使用
多部分文件
字段
。不要担心
边界
空手道可以完成这一部分

你能试试这样的东西吗

* url 'https://httpbin.org/anything'
* header Authorization = 'Bearer foo'
* multipart file image = { read: 'test.pdf', contentType: 'image/jpeg' }
* multipart file createBannerRequest = { read: 'test.json', contentType: 'application/json' }
* method post
* status 200

你好,彼得!谢谢它起作用了,但我使用了多部分字段而不是文件,比如*url'*头授权='Bearner foo'*多部分字段image=read('test.pdf')*多部分字段createBannerRequest=read('test.json')*方法post*状态200