web-services - 我们如何在 OpenTest 中进行采用 formdata 而不是 json 的 POST 服务调用?

标签 web-services yaml multipartform-data form-data opentest

我们有一个 WebService,它将 formData 键值对作为请求而不是 json。使用 openTest 我们如何传递这些 formData?基本上,我们需要一个代码片段来使用 OpenTest yaml 脚本发布 formData

下面是我们需要使用 OpenTest 发布的示例 curl 命令,其 Content-Type 为 multipart/form-data

`
curl --location --request POST 'https://serviceurl.com/getacb' \
--form 'userKey=a1b23' \
--form 'apiKey=1_ffER_hk6Rb89--2EElfsdeF3' \
--form 'secret=Ude+6NIjojo89/gyAB7huGS5' \
--form 'targetUID=ulknnk4kjlkj5'
`

我们正在寻找一个示例片段来发布上面的 multipart/form-data。

最佳答案

在将其传递给下一个操作之前,您需要自己构建 FormData() 对象。

var data = new FormData();
data.append("userKey", "a1b23");
data.append("apiKey", "1_ffER_hk6Rb89--2EElfsdeF3");
data.append("secret", "Ude+6NIjojo89/gyAB7huGS5");
data.append("targetUID", "ulknnk4kjlkj5");

这是对 OpenTest API testing YAML 进行了一些修改的示例.

description: Example Post based off SO Question
actors:
  - actor: ACTOR1
    segments:
      - segment: 1
        actions:
          - description: Create a random post ID
            script: | 
              var data = new FormData();
              data.append("userKey", "a1b23");
              data.append("apiKey", "1_ffER_hk6Rb89--2EElfsdeF3");
              data.append("secret", "Ude+6NIjojo89/gyAB7huGS5");
              data.append("targetUID", "ulknnk4kjlkj5");

          - description: Send a request to getacb
            action: org.getopentest.actions.HttpRequest
            args:
              url: https://serviceurl.com/getacb
              headers:
                Content-Type: multipart/form-data
              verb: POST
              body: data

          - description: Extract the response's status code and body
            script: |
              var statusCode = $output.statusCode;
              var postInfo = $output.body;

          - description: Validate the response status code
            script: |
              if (statusCode != 201) {
                $fail($format(
                  "We expected the status code to be {0} but it was {1}",
                  201,
                  statusCode));
              }

关于web-services - 我们如何在 OpenTest 中进行采用 formdata 而不是 json 的 POST 服务调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63129835/

相关文章:

c# - 将 Page.Request 传递给 Web 服务?

java - Clickatell SOAP wsdl 到 JAXB java 类

ruby-on-rails - Ruby/Rails 和 Sharepoint Web 服务

java - 解析 YAML 字符串时不能使用制表符缩进

yaml - Swagger 模式中的 oneOf 不起作用

java - 解析多部分响应

python - 使用 Python WSGI 解析表单数据/多部分请求

ios - 使用多方将图像从 ipad 应用程序上传到 Node js 服务器

java - Spring 启动 : Use specific alias form keystore to consume HTTPS SOAP webservice

json - 何时使用 YAML 而不是 JSON