如何在 Playwright-API 框架中创建和维护多个“setWorldConstructor”?

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

我已经为 API 自动化测试创建了一个 Playwright-Typescript 框架。该应用程序有多个“参与者”,如买方/卖方/代理,每个都有自己的 Cookie。所以,各个API都需要对应的Cookie来进行鉴权。 目前,我已经创建了一个“world.ts”文件,它在一个类中设置了 extrahttpHeaders,并通过“setWorldConstructor”使其在全球可用。 我的问题是,我如何传递对应于该 API 的特定于 Actor 的 cookie? .

“world.ts”文件如下:

import playwright, {APIRequestContext} from "playwright";
import { World,IWorldOptions,setWorldConstructor } from "@cucumber/cucumber";
import { GlobalAPIResponseVariables, GlobalConfig } from "../../env/global";
import { env } from "../../env/parseEnv";

export type Api = {
 request: APIRequestContext
}
export class ScenarioWorld extends World{
    constructor(options: IWorldOptions){    
        super(options);
        this.globalAPIResponseVariables ={}
        this.globalConfig = options.parameters as GlobalConfig
    }
    globalConfig : GlobalConfig
    globalAPIResponseVariables:GlobalAPIResponseVariables
    api!: Api 


    async init(): Promise<Api>{
        const request = await this.newRequest()
        this.api = {request }
        return this.api
    }
    
    private newRequest = async (): Promise<APIRequestContext> =>{
       
        const request = await playwright.request.newContext({
            extraHTTPHeaders : {
                  'Content-type':'application/json;charset=UTF-8',
                  
                  "Cookie": env('cookieID')
            }
        })
        return request
    }

    
}

setWorldConstructor(ScenarioWorld)






typescript playwright cucumberjs playwright-test playwright-typescript
© www.soinside.com 2019 - 2024. All rights reserved.