首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用REST进行UI测试

用REST进行UI测试
EN

Stack Overflow用户
提问于 2019-12-06 04:50:40
回答 2查看 1.3K关注 0票数 0

在自动化中,我有一个要求一次测试UI和API。从UI中获取参数,并将它们传递给API并获得响应。

步骤如下:

  • 步骤1:在搜索字段中输入文本
  • 步骤2:单击“搜索”按钮
  • 步骤3:从搜索字段读取文本并传递给API
  • 步骤4:获取响应
  • 步骤5:比较UI和API响应。

自动化是可能的吗?

请帮我提你的建议。

EN

回答 2

Stack Overflow用户

发布于 2019-12-06 04:57:55

您可以使用Protractor E2E测试来这样做:

对于步骤1步骤3,您可以使用'element selector in protractor'获取或设置任何web元素的文本。您可以在这里找到文档:https://www.protractortest.org/#/api

步骤4的

您可以使用"http""request"模块对服务器进行调用。我建议api调用返回一个承诺,以便在测试中您可以使用browser.wait()函数并等待调用完成。

代码语言:javascript
复制
let apiCall = function () {
    return new Promise((resolve, reject) => {
        request.get(url, function (error, response, json) {
            if (!error && response.statusCode == 200) {
               return resolve(JSON.parse(json));
            } else {
                return reject(error);
            }
        });
    });
}

在你的测试中

代码语言:javascript
复制
it("validates something",()=>{
 //...
  browser.wait(apiCall(),timeout).then(json => {
              //do stuff with json
            });
 // Continue with your test
}

希望这能有所帮助。如果您有任何疑问,请告诉我。谢谢。

票数 0
EN

Stack Overflow用户

发布于 2019-12-13 18:06:08

关于e2e流道,您可以同时定义UI和Rest测试,在您的情况下,您只需要定义w测试工作流:

末端test.yaml

@test.yaml

代码语言:javascript
复制
pipeline:
  init:
    action: selenium:start
    version: 3.4.0
    port: 8085
    sdk: jdk
    sdkVersion: 1.8
  testUI:
    action: selenium:run
    browser: firefox
    remoteSelenium:
      URL: http://127.0.0.1:8085
    commands:
      - get(http://UIEndpoint)
      - (#searchText).clear
      - (#searchText).sendKeys(my scarch criteria)
      - (#run).click
      - command: output = (#output).text
        exit: $output.Text:/done crtieria here/
        sleepTimeMs: 1000
        repeat: 10
      - close
    expect:
      output:
        Text: /may validate outut here/
  testREST:
    action: http/runner:send
      requests:
        - url: 'http://RESTAPIEndpoint'
          method: POST
          Body: ${testUI.output.Text}
          expect:
            Code: 200

参考文献:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59207055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档