我试图捕获测试期间发生的所有请求。
我的应用程序使用 WebSocket,并且使用拦截命令我无法捕获 wss 请求。
有什么办法可以做到这一点吗?
我认为拦截命令不能直接捕获网络套接字。
一种方法是观察 ws 通信的结果,如下所示使用 Cypress 测试 Websocket 应用程序 https://filiphric.com/testing-websocket-application-with-cypress在 Cypress 跑步者的两个实例之间。
如果您的应用程序在应用程序和服务器之间进行通信,则启动服务器/cypress/plugins/index.js
并使用cy.task()
获取通信的服务器端。
还有一个图书馆赛普拉斯 websocket 测试 https://github.com/lensesio/cypress-websocket-testing它使用 rxjs,它非常强大,但需要一些时间来适应。
cy.streamRequest(config, options).then(results => {
expect(results).to.not.be.undefined;
})
// When in need of a bit more flexibility
cy.stream(config).then(subject => {
subject
.pipe(
takeUntil(timer(1000)),
reduce((acc , val) => acc.concat([val]), [])
)
.subscribe({
next: (results) => {
expect(results).to.not.be.undefined;
},
error: (err) => {},
complete: done
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)