You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Playwright的playwright.config文件中自动存储Access Token

如何将登录API返回的Access Token自动存入playwright.config文件

方法一:直接修改playwright.config文件

这种方式会直接修改配置文件内容,适合需要把Token硬编码到配置中的场景:

  1. 编写登录脚本获取Token
    创建get-token.js文件,用Playwright请求模块调用登录API并提取Token:

    const { request } = require('@playwright/test');
    
    async function fetchAccessToken() {
      const context = await request.newContext();
      const loginResponse = await context.post('https://你的登录API地址', {
        data: {
          username: '你的用户名',
          password: '你的密码'
        }
      });
      const responseData = await loginResponse.json();
      return responseData.access_token; // 根据实际API返回字段调整
    }
    
    module.exports = fetchAccessToken;
    
  2. 编写配置更新脚本
    创建update-config.js文件,读取现有配置并替换/添加Token:

    const fs = require('fs');
    const fetchAccessToken = require('./get-token');
    
    async function updateConfig() {
      const token = await fetchAccessToken();
      const configPath = './playwright.config.js';
      let configContent = fs.readFileSync(configPath, 'utf8');
    
      // 替换已存在的Authorization配置
      const updatedContent = configContent.replace(
        /Authorization: `Bearer .*?`/,
        `Authorization: \`Bearer ${token}\``
      );
    
      // 如果配置中没有Authorization字段,添加到use区块
      if (!updatedContent.includes('Authorization')) {
        const useBlockRegex = /use: {\s*([\s\S]*?)\s*}/;
        configContent = configContent.replace(
          useBlockRegex,
          `use: {
    

$1,
extraHTTPHeaders: {
Authorization: `Bearer ${token}`
}
}`
);
} else {
configContent = updatedContent;
}

fs.writeFileSync(configPath, configContent, 'utf8');
 console.log('Token已成功写入playwright.config.js');

}

updateConfig();

3. **执行脚本**
在终端运行:
```bash
node update-config.js

方法二:通过环境变量注入(推荐)

这种方式不直接修改配置文件,将Token存入环境变量后由配置文件读取,更安全灵活:

  1. 将Token写入.env文件
    修改get-token.js,把Token写入.env文件:

    const fs = require('fs');
    const { request } = require('@playwright/test');
    
    async function saveTokenToEnv() {
      const context = await request.newContext();
      const loginResponse = await context.post('https://你的登录API地址', {
        data: {
          username: '你的用户名',
          password: '你的密码'
        }
      });
      const responseData = await loginResponse.json();
      fs.writeFileSync('.env', `ACCESS_TOKEN=${responseData.access_token}`, 'utf8');
      console.log('Token已存入.env文件');
    }
    
    saveTokenToEnv();
    
  2. 在playwright.config中读取环境变量
    安装dotenv依赖:

    npm install dotenv --save-dev
    

    修改playwright.config.js,引入并读取环境变量:

    require('dotenv').config();
    
    module.exports = {
      use: {
        extraHTTPHeaders: {
          Authorization: `Bearer ${process.env.ACCESS_TOKEN}`
        }
      }
    };
    
  3. 执行脚本并运行测试
    先运行脚本生成.env:

    node get-token.js
    

    之后直接运行Playwright测试即可,配置会自动读取环境变量中的Token。

内容的提问来源于stack exchange,提问作者Gopal Sakhiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:37:51