如何在 Playwright 测试中设置 extraHTTPHeaders

问题描述 投票:0回答:1

在我的测试中,我需要发出一个需要不记名令牌的 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 块在测试块内所做的事情。

javascript api playwright
1个回答
0
投票

我似乎找到了解决办法。我现在在发出请求时设置令牌:

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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.