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',我在测试中调用了
离线登录检查()
,它抱怨上述错误,