在我们的Progressive Web App
[PWA]中,我们必须使用赛普拉斯测试几个Offline
商业案例。
当用户处于脱机状态时,他们仍然可以执行大多数正常的业务操作,并且当他们联机时,所有内容都将被推送并与服务器同步。
用户使用Microsoft凭据(SSO)登录
您知道我们如何使用赛普拉斯运行这些离线测试吗?
我们可以使用puppeteer
来测试离线案例吗?
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...
})
})
答案 0 :(得分:1)
在Puppeteer中,您可以选择与DevTools对话并使用CDPSession class限制页面,请考虑以下示例:
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()
})