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

Playwright API测试复用方法异常:调用封装函数返回404而非200

问题原因排查及解决办法

核心问题分析

1. URL缺少协议头导致请求地址错误

你传递给封装函数的apiBaseUrl未添加https://或http://协议头,Playwright的request.get方法会将这类无协议的URL识别为相对路径,自动拼接测试配置中的baseURL(若未配置则默认指向本地服务),实际请求地址并非目标API服务器,因此返回404 Not Found。

而直接在测试用例中调用request.get时,你应该使用了完整的带协议头的URL,所以能正常请求到目标接口。

2. 封装函数未返回响应数据

在subscriptionapi.js中,你注释了return response;语句,导致测试用例里的response变量为undefined,无法获取接口返回内容。

解决步骤

步骤1:修正URL格式,添加完整协议头

修改subscriptionApitests.spec.js中的apiBaseUrl:

// 原代码
const apiBaseUrl = "apiv3.apifootball.com/?action=get_countries"

// 修改后
const apiBaseUrl = "https://apiv3.apifootball.com/?action=get_countries"

步骤2:恢复封装函数的响应返回

修改subscriptionapi.js,取消返回语句的注释:

async function getSubscriptionsFromAPI(request, apiURL) {
    const response = await request.get(apiURL, {
        headers: {
          "X-Auth-Token": "abcdef",
        },
      });
    
    console.log(response.status());
    console.log(response);
    return response; // 取消注释,返回响应对象
}

验证修改

重新运行测试用例,此时request.get会请求正确的完整API地址,同时测试用例能获取到封装函数返回的响应对象,应返回200 OK的正常响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:20:56