使用 cypress 测试网络请求
Testing the Network request with cypress
我想测试网络请求并使用 Cypress 断言请求的数据。
cy.intercept('POST', '*service=jobsSearch*').as('ajaxRequest')
cy.get(selectors.dataComponent('jobs')).find('button').click()
cy.wait('@ajaxRequest')
cy.get('@ajaxRequest').its('request.body').should('contain', 'jobApprenticeshipType=stelle')
cy.get('@ajaxRequest').its('results.body').should('contain', 'mailAlertSearchTerm=Handwerk & Produktion')
我可以到达 'request.body'
并断言 'jobApprenticeshipType=stelle'
。但是,我无法到达 results.body
断言 'mailAlertSearchTerm=Handwerk & Produktion'
。这是结果的屏幕截图:
响应的键是 response
而不是 results
。我 猜测 你的回复看起来像...
{
"results": {
...
"mailAlertSearchTerm": "foo"
...
}
}
在这种情况下,您希望通过这样的方式引用它:
cy.get('@ajaxRequest')
.its('response.body')
.should('contain', 'mailAlertSearchTerm=Handwerk & Produktion')
// or, more specifically using the JSON properties
cy.get('@ajaxRequest')
.its('response.body.results.mailAlertSearchTerm')
.should('contains', 'Handwerk & Produktion');
})
如果你只是截取并记录整个事情,你可以看到这个。
cy.wait('@ajaxRequest')
.get('@ajaxRequest')
.then((data) => cy.log(data))
我想测试网络请求并使用 Cypress 断言请求的数据。
cy.intercept('POST', '*service=jobsSearch*').as('ajaxRequest')
cy.get(selectors.dataComponent('jobs')).find('button').click()
cy.wait('@ajaxRequest')
cy.get('@ajaxRequest').its('request.body').should('contain', 'jobApprenticeshipType=stelle')
cy.get('@ajaxRequest').its('results.body').should('contain', 'mailAlertSearchTerm=Handwerk & Produktion')
我可以到达 'request.body'
并断言 'jobApprenticeshipType=stelle'
。但是,我无法到达 results.body
断言 'mailAlertSearchTerm=Handwerk & Produktion'
。这是结果的屏幕截图:
响应的键是 response
而不是 results
。我 猜测 你的回复看起来像...
{
"results": {
...
"mailAlertSearchTerm": "foo"
...
}
}
在这种情况下,您希望通过这样的方式引用它:
cy.get('@ajaxRequest')
.its('response.body')
.should('contain', 'mailAlertSearchTerm=Handwerk & Produktion')
// or, more specifically using the JSON properties
cy.get('@ajaxRequest')
.its('response.body.results.mailAlertSearchTerm')
.should('contains', 'Handwerk & Produktion');
})
如果你只是截取并记录整个事情,你可以看到这个。
cy.wait('@ajaxRequest')
.get('@ajaxRequest')
.then((data) => cy.log(data))