在 Cypress 中检查主机是否在线
Checking if host is online in Cypress
我在通过网络界面控制的 IOT 设备上进行测试 运行。我想创建一个出厂重置测试,其中涉及设备的重启,并且我想检查设备是否再次在线(“可 ping”)。有没有办法在赛普拉斯内部执行 ping 命令并获取它的 return 值。
假设您指的是标准 ping 协议,这就是表格。替换您的设备地址和回复消息。
cy.exec('ping google.com')
.then(reply => {
expect(reply.code).to.eq(0)
const expectedMsg = 'Pinging google.com [142.250.66.206] with 32 bytes of data:\r\nReply from 142.250.66.206: bytes=32'
expect(reply.stdout).to.satisfy(msg => msg.startsWith(expectedMsg))
})
可能不需要循环,但如果需要,我会使用递归函数
function doPing(count = 0) {
if (count === 10) throw 'Failed to ping';
cy.exec('ping google.com')
.then(reply => {
if (reply.code > 0) {
cy.wait(1000) // whatever back-off time is required
doPing(++count)
} else {
expect(reply.stdout).to.satisfy(msg => ...)
}
})
}
doPing()
我在通过网络界面控制的 IOT 设备上进行测试 运行。我想创建一个出厂重置测试,其中涉及设备的重启,并且我想检查设备是否再次在线(“可 ping”)。有没有办法在赛普拉斯内部执行 ping 命令并获取它的 return 值。
假设您指的是标准 ping 协议,这就是表格。替换您的设备地址和回复消息。
cy.exec('ping google.com')
.then(reply => {
expect(reply.code).to.eq(0)
const expectedMsg = 'Pinging google.com [142.250.66.206] with 32 bytes of data:\r\nReply from 142.250.66.206: bytes=32'
expect(reply.stdout).to.satisfy(msg => msg.startsWith(expectedMsg))
})
可能不需要循环,但如果需要,我会使用递归函数
function doPing(count = 0) {
if (count === 10) throw 'Failed to ping';
cy.exec('ping google.com')
.then(reply => {
if (reply.code > 0) {
cy.wait(1000) // whatever back-off time is required
doPing(++count)
} else {
expect(reply.stdout).to.satisfy(msg => ...)
}
})
}
doPing()