赛普拉斯不会等待响应表单 API 调用

时间:2021-04-21 07:04:49

标签: javascript api automation automated-tests cypress

我有一个用 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 秒,它直接执行 {{1 }} 陈述。当 expect 被注释时,测试成功结束。

我尝试用

编辑 cypress.json 文件 <块引用>

{ “请求超时”:300000, "responseTimeout":300000 }

但是这个东西对我也没有用。

如何让 cypress 等待响应?

1 个答案:

答案 0 :(得分: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)
             }
         })
})