我已经为 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)