pilipaladd 2025-10-29 22:42 采纳率: 50%
浏览 9

使用apifox做接口自动化测试,在接口管理能运行成功,自动化测试运行却失败

总共三个接口,第一个接口登录系统。第二个接口是用第一个接口返回地址的重定向,并提取Cookie中的token,用的是全局变量。第三个接口是业务接口,header里引用全局变量,。
接口管理一个一个运行就能成功,自动化测试组合一起跑第三个接口就市场,业务接口的请求token写成了固定值,请问怎么能获取成动态的呢?

img

img

img

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-10-29 22:46
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    你使用 Apifox 进行接口自动化测试,接口管理中可以正常运行,但是在自动化测试中却失败了。你的测试场景包括三个接口:

    1. 登录系统的第一个接口
    2. 使用第一个接口返回的重定向地址和 Cookie 中的 token 进行的第二个接口
    3. 使用全局变量中的 token 在 header 中进行的第三个业务接口

    可能的原因

    1. 全局变量的获取和使用: Apifox 的全局变量可能在接口管理中可以正常获取和使用,但是在自动化测试中可能会出现问题。请检查是否正确获取和使用全局变量。
    2. Cookie 的处理: Cookie 的处理可能会导致问题。请检查是否正确处理 Cookie 中的 token。
    3. 接口之间的依赖关系: 请检查接口之间的依赖关系是否正确。是否需要在每个接口中都进行登录和 Cookie 的处理。

    解决方案

    1. 检查全局变量的获取和使用: 请检查是否正确获取和使用全局变量。可以尝试在每个接口中都进行登录和 Cookie 的处理。
    2. 检查 Cookie 的处理: 请检查是否正确处理 Cookie 中的 token。可以尝试使用其他方式获取 token。
    3. 检查接口之间的依赖关系: 请检查接口之间的依赖关系是否正确。是否需要在每个接口中都进行登录和 Cookie 的处理。

    核心代码

    // 获取全局变量中的 token
    const token = apifox.getGlobalVariable('token');
    
    // 使用 token 进行登录
    apifox.request({
      method: 'POST',
      url: 'https://example.com/login',
      headers: {
        'Cookie': `token=${token}`
      }
    });
    
    // 使用 token 进行业务接口
    apifox.request({
      method: 'POST',
      url: 'https://example.com/business',
      headers: {
        'Cookie': `token=${token}`
      }
    });
    

    注意

    上述代码仅供参考,请根据实际情况进行调整。

    评论

报告相同问题?

问题事件

  • 修改了问题 10月29日
  • 修改了问题 10月29日
  • 创建了问题 10月29日