testing - 赛普拉斯 cy.request 401 未经授权
问题描述
我进行了需要授权的登录测试和电子邮件更改,以更改我需要来自登录过程的数据的电子邮件。通过 UI 登录(输入输入数据 + 单击按钮),然后转到输入并更改电子邮件。我按下按钮,弹出 401 错误,是否可以保存有关会话的早期数据以避免 401?
解决方案:
要在 cypress 会话之间保存数据,请在 beforeEach 挂钩中使用 cy.preserveAllCookiesOnce()。
也许您还需要在 beforeEach 钩子中提供 API_KEY 。您可以通过 cy.intercept 提供。下面是一些例子:
例如
cy.intercept(/e.g: regex to match url /, req => {
req.headers['your header'] = true;
});
to intercept all request:
cy.intercept(/**, req => {
req.headers['your header'] = true;
});
cy.request({
method: 'GET',
url: '',
headers: { Authorization: `apikey-v1 ${apiKey}` }
}).then(async response => {
cy.task('your task').then(task => {
cy.get('input[placeholder="Enter code..."]').type(task);
});
});
按钮触发的修改请求:
cy.contains('Confirm')
.click()
.then(() => {
cy.url().then(urlValue =>
cy.visit({ url: urlValue, qs: { add params to match condition for regex } })
);
})
解决方案
推荐阅读
- asp.net-core - Asp.net 核心未使用正确的证书
- terraform - 使用 terraform 将对象(地图)转换为不同的列表
- delphi - 德尔福的 Round() 似乎是不确定的
- javascript - 在异步函数中捕获异步函数中的错误
- angular - 使用角度平移作为通知函数的参数
- spring-boot - java.net.UnknownHostException:host.docker.internal:AWS EC2 上的名称或服务未知
- python - 在python中分隔“\”之前的所有值 - 扫描字符串文字时的EOL
- ffmpeg - ffmpeg 添加标志和照片和字幕
- json - 从颤动的列表中获取数据
- django - 如何将 post_save 转换为 pre_save 信号?