Javascript 如何在PWA应用程序中使用cypress运行脱机测试?
在我们的Javascript 如何在PWA应用程序中使用cypress运行脱机测试?,javascript,puppeteer,cypress,Javascript,Puppeteer,Cypress,在我们的渐进式Web应用程序中[PWA]我们必须使用Cypress测试两个离线业务案例 当用户处于脱机状态时,他们仍然可以执行大部分正常业务操作,当他们处于联机状态时,所有内容都将被推送并与服务器同步。 用户使用Microsoft凭据(SSO)登录 知道如何使用cypress运行这些离线测试吗? 我们可以使用puppeter测试离线案例吗 context('Actions',()=>{ beforeEach(() => { cy.reload(true);
渐进式Web应用程序中
[PWA]我们必须使用Cypress测试两个离线
业务案例
当用户处于脱机状态时,他们仍然可以执行大部分正常业务操作,当他们处于联机状态时,所有内容都将被推送并与服务器同步。用户使用Microsoft凭据(SSO)登录 知道如何使用cypress运行这些离线测试吗? 我们可以使用
puppeter
测试离线案例吗
context('Actions',()=>{
beforeEach(() => {
cy.reload(true);
cy.loadTokens();
cy.saveLocalStorage();
cy.visit('https://sometest.windows.net/home');
})
it('Verify the creation of something is possible in Offline',()=>{
Cypress.currentTest.retries(1);
cy.viewport(2000, 1000);
cy.wait(3000);
// In offline as a user, I need to perform some of the normal business functions here...
})
})
在木偶游戏中,你可以选择和DevTools对话,并在页面上节拍,考虑下面的例子:
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
// Create a new tab
const page = await browser.newPage()
// Connect to Chrome DevTools
const client = await page.target().createCDPSession()
// Set throttling property
await client.send('Network.emulateNetworkConditions', {
'offline': true,
'downloadThroughput': 200 * 1024 / 8,
'uploadThroughput': 200 * 1024 / 8,
'latency': 20
})
// Navigate and take a screenshot
await page.goto('https://sometest.windows.net/home')
await page.screenshot({path: 'screenshot.png'})
await browser.close()
})
因此,如果我们执行页面限制,用户是否可以访问页面并在脱机状态下执行操作?非常感谢您的回复,如上所述,如果我创建一个方法作为
offlineLogin()
,并在commands.js
文件中添加一些要在该方法中执行的操作,当他下次上线时,这些动作会显示在网页上吗?只需实现一个简单的示例,并找出发生了什么。我在commands.js文件中创建了一个示例offlineLoginCheck()
,并添加了上面的木偶代码,在index.js文件中还包括'require('puppeter')`。Cypress不喜欢它,错误显示错误:无法从'C:\work\UiTests
中找到模块'C:\work\UiTests\node\u modules\puppeter\utils\browser\WebSocket',我在测试中调用了离线登录检查()
,它抱怨上述错误,