在我的测试中,我需要发出一个需要不记名令牌的 API 请求。我已经设法使用静态的预定义令牌来做到这一点,但我每次都需要通过 GET 请求获取一个新令牌,并且需要在测试运行时完成。我可以获得这个令牌,但不知道如何在 extraHTTPHeaders 中设置它。这是我目前拥有的:
规格:
const { test, expect } = require('@playwright/test');
const { ApiRequests } = require('../api/apiRequests.js');
test.use({
extraHTTPHeaders: {
Authorization: 'Bearer token'
}
})
test("My Test", async({ page }) => {
const apiReq = new ApiRequests(page)
await apiReq.postRequest('apiURL', requestBody, 200)
})
apiRequests.js:
const { expect } = require('@playwright/test');
export class ApiRequests {
constructor(page) {
this.page = page
}
async postRequest(url, requestBody, statusCode) {
const response = await this.page.request.post(url, {
data: requestBody
})
expect(response.status()).toBe(statusCode)
return(response)
}
}
所以我希望能够执行 test.use 块在测试块内所做的事情。
我似乎找到了解决办法。我现在在发出请求时设置令牌:
apiRequests.js:
const { expect } = require('@playwright/test');
export class ApiRequests {
constructor(page) {
this.page = page
}
async postRequest(url, requestBody, statusCode) {
const response = await this.page.request.post(url, {
headers: {
Authorization: 'Bearer token'
},
data: requestBody
})
expect(response.status()).toBe(statusCode)
return(response)
}
}