【问题标题】:Cypress wont wait for a response form API call赛普拉斯不会等待 API 调用的响应
【发布时间】:2021-07-15 08:27:06
【问题描述】:

我有一个用 Flask 编写的 API,带有 URI

"http://127.0.0.1:5000/idpa/isIPv6"

它的作用是检查我尝试与之通信的设备是否具有属于 IPv6 的网络地址。 根据回复,我正在尝试进行进一步的活动, 我写的柏树测试是

it("Website testing",function(){
        cy.request({
            method: 'GET',
            url: "http://127.0.0.1:5000/isIPv6",
            timeout:300000
        }).then(network_result => {
            cy.log(network_result.body)
            if(network_result.body.isIPv6 == false)
            {
               statements
            }
            else
            {
                cy.log("IPv6 device, stopping the test")
                cy.wait(10000)
                expect(true).to.equal(false)
             }
         })
})

API 调用需要大约 90 秒才能返回响应。

在运行测试文件时,cypress 有时不等待响应,在执行控制直接进入 else 块时,它不记录消息或不等待 10 秒,它直接执行expect陈述。当expect 被评论时,测试成功结束。

我尝试使用

编辑 cypress.json 文件

{ “请求超时”:300000, “响应超时”:300000 }

但这件事对我也不起作用。

如何让 cypress 等待响应?

【问题讨论】:

    标签: javascript api automation automated-tests cypress


    【解决方案1】:

    尝试使用别名:

    it("Website testing",function(){
            cy.request({
                method: 'GET',
                url: "http://127.0.0.1:5000/isIPv6",
                timeout:300000
            }).as("getData");
    
            cy.wait('@getData'); // <--- wait explicitly for this route to finish
            cy.get("@getData").then(network_result => {
                cy.log(network_result.body)
                if(network_result.body.isIPv6 == false)
                {
                   statements
                }
                else
                {
                    cy.log("IPv6 device, stopping the test")
                    //cy.wait(10000)
                    expect(true).to.equal(false)
                 }
             })
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-02
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      相关资源
      最近更新 更多