首页 > 解决方案 > 赛普拉斯不会等待响应表单 API 调用

问题描述

我有一个用 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 文件

{ "requestTimeout":300000, "responseTimeout":300000 }

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

如何让柏树等待响应?

标签: javascriptapiautomationautomated-testscypress

解决方案


尝试使用别名:

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)
             }
         })
})

推荐阅读