我要使用Cypress.io测试REST API,但要使用链接请求,它要像这样工作,第一个API上的JSON响应正文将在下一个API头中进行授权
我已经尝试通过使用cypress命令并在console.log上进行打印,但是似乎它没有在日志中捕获,或者是否有任何线索,或者我只是在使用另一个命令,例如cy.route?
Cypress.Commands.add("session", () => {
return cy.request({
method: 'POST',
url: '/auth/',
headers: {
'Content-Type': 'application/json',
},
body: {
"client_secret" : ""+config.clientSecret_staging,
"username": ""+config.email_staging,
"password": ""+config.password_staging
}
}).then(response => {
const target = (response.body)
})
})
it('GET /capture', () => {
cy.session().then(abc =>{
cy.request({
method: 'GET',
url: '/capture/'+target
})
})
})
目标是从target = (response.body)
捕获JSON数组的解析
答案 0 :(得分:0)
您有两个选择:
.then(response => {
const target = (response.body)
})
代码未返回任何内容,因此cy.session().then(abc =>{ ...
代码获得了整个response
(abc
是第一个.then
的响应)
.then(response => {
const target = (response.body)
return target // I added this return
})
,那么您的abc
参数将等于response.body
而不是response
这是因为,如果您不从可链接呼叫中返回主题,则默认主题将传递给下一个.then
函数。
让我知道它是否满足您的问题。
p.s。欢迎