当我运行cypress e2e测试时,应用程序会发出XHR请求。如何记录所有这些请求和响应?我不想打扰这些要求。我要获得一个工件,其中包含测试期间做出的所有请求和响应。 Gitlab用作CI。
主要测试代码如下所示。所有这些都是用户定义的命令,可与应用程序交互。与应用程序进行交互会导致提出不同的请求(例如,我单击一个按钮,这会导致请求)。
it('Log response to a file',function(){
cy.request({
method: 'GET',
url: 'https://<site>/home/payments/currency/confirm/*',
headers: {
'Content-Type': 'application/json',
},
body: {},
}).then((response)=>{
const someResponse = response.body;
console.log("hhhh"+someResponse);
cy.writeFile('cypress/fixtures/testResponse.json', someResponse);
cy.login(login_name, pass)
cy.typeOTPpinpad(secret)
cy.makePayment('Currency', 'amount')
cy.typeToken(secret)
cy.logout()
})
})
这是我尝试使用正则表达式来捕获请求的方式(id是唯一的,我需要使用正则表达式)。
https://<mysite>/home/payments/<currency>/confirm/* - asterisk is payment id.
答案 0 :(得分:0)
testrunner具有以下信息: [
答案 1 :(得分:0)
您可以抓住request
和response
并写到如下位置。我已将请求和响应写到fixture
文件夹中,如下所示:尝试以下操作,让我知道
it('Log request to a file',function(){
cy.request({
method: 'GET',
url: 'url_here',
headers: {
'Content-Type': 'application/json',
},
body: {},
}).then((request)=>{
const someRequest = JSON.stringify(request);
console.log("hhhh"+someRequest);
cy.writeFile('cypress/fixtures/testRequest.json', someRequest);
})
})
//以下是响应信息:
it('Log response to a file',function(){
cy.request({
method: 'GET',
url: 'url_here',
headers: {
'Content-Type': 'application/json',
},
body: {},
}).then((response)=>{
const someResponse = response.body;
console.log("hhhh"+someResponse);
cy.writeFile('cypress/fixtures/testResponse.json', someResponse);
})
})