news 2026/7/14 23:31:28

掌握一个面试小心机,这就是比同事涨薪快的秘诀!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
掌握一个面试小心机,这就是比同事涨薪快的秘诀!

01. 什么是接口依赖

接口依赖指的是,在接口测试的过程中一个接口的测试经常需要依赖另一个或多个接口成功请求后的返回数据。

那怎么处理呢?不同场景的处理方式有所不同。

02. 接口依赖的多种场景

2.1 单接口测试

在单接口测试时接口依赖有两种场景。

1,在整个接口用例测试前的依赖

例如:需要登录后的接口,需要在测试前先访问登录接口获取对应的鉴权凭证,例如 token。

2,在接口的每一个用例测试前的依赖

例如:项目审核接口,需要在每次测试前都创建一个项目

2.2 业务流测试

多接口测试业务流时,下一个接口依赖上一个接口的执行结果。

03. 解决方案

不同场景下的解决方案不同。

我们在做接口自动化时不管是 python 语言还是 Java 语言,都会使用单元测试框架。这里我们主要以 python 的 unittest 框架为主,不同框架只是实现方式有所不同,但是思想架构都大同小异。

不管是那种场景的接口依赖都可以通过单元测试框架的前置条件/脚手架代码进行处理,不同的是如何传递依赖的数据。

几乎是所有的单元测试框架中用例都被设计成隔离的,也即是用例对象和用例对象间是隔离的,独立的。所以传递依赖数据需要一个第三方容器。一般有两种方案:

1,定义一个全局变量来共享

2,通过当前测试用例类的类属性共享

3.1 单接口测试场景 1 解决方案

在整个接口用例测试前的依赖,我们放在 unittest 框架的类级前置方法 setUpClass 中进行处理。数据传递通过全局变量和类属性进行共享都可以,代码示例如下:

import unittest def do_something(): """ 模拟表示前置接口 """ return 3.14 # 定义一个全局变量类 class EnvData: pass class SomeTestCase(unittest.TestCase): @classmethod def setUpClass(cls) -> None: # 执行前置操作 data = do_something() # 将data绑定到全局变量类的类属性上 EnvData.data = data # 将data绑定到当前类的类属性上 cls.data = data def test_something(self): print('执行测试') # 获取前置方法中产生的数据 # 从全局变量中获取 print(EnvData.data) # 从当前用例的类属性中获取 print(self.__class__.data) # 如果当前用例对象没有同名对象属性,也可以直接从对象属性中获取 print(self.data) if __name__ == '__main__': unittest.main()

推荐使用类属性进行传递。

3.2 单接口测试场景 2 解决方案

在接口的每一个用例测试前的依赖,放到 unittest 框架的方法级前置方法 setUp 中进行处理。数据可以通过全局变量,类属性,对象属性进行传递,推荐使用对象属性。代码示例如下:

import unittest def do_something(): """ 模拟表示前置接口 """ return 3.14 class SomeTestCase(unittest.TestCase): def setUp(self) -> None: # 执行前置操作 data = do_something() # 将data绑定到当前对象的属性上 self.data = data def test_something(self): print('执行测试') # 获取前置方法中产生的数据 # 从对象属性中获取 print(self.data) if __name__ == '__main__': unittest.main()

    3.3 业务流测试场景解决方案

    业务流测试时,需要将前一个用例的结果传递给后面的用例。因为用例间是隔离的,所以可以通过全局变量和类属性进行传递。代码示例如下:

    import unittest # 定义一个全局变量类 class EnvData: pass class SomeTestCase(unittest.TestCase): def test_01case(self): # 模拟接口返回需要传递的数据 res1 = 1 # 将需要传递的数据保存到全局变量类的属性中 EnvData.res1 = res1 # 也可以绑定到当前用例类中进行传递 self.__class__.res1 = res1 def test_02case(self): # 获取上一个接口传递的数据 # 通过全局变量类获取 res1 = EnvData.res1 # 通过类属性获取 res1 = self.__class__.res1 # 如果没有同名的对象属性也可以直接通过对象属性获取 res1 = self.res1

    04. 总结

    了解了上面的类容,我们来总结一下,接口自动化时怎么处理接口依赖 这个问题的回答如下:

    对于单接口测试如果依赖接口只需要在测试开始执行一次,那么可以将依赖接口的请求放在类级前置方法中,然后通过全局变量或者当前用例类属性来传递依赖数据。

    对于单接口测试如果依赖接口需要在每个用例前执行,那么可以将依赖接口的请求放在方法级前置方法中,然后通过用例对象属性来传递依赖数据

    对于多接口的业务流测试,可以将下一个接口需要依赖的数据通过当前用例类属性来传递依赖数据。

    总结:

    感谢每一个认真阅读我文章的人!!!

    作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

    软件测试面试文档

    我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

    视频文档获取方式:
    这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

    版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
    网站建设 2026/7/14 11:28:39

    行业内沙特二手车清关证书推荐几家

    行业内沙特二手车清关证书推荐机构分析在沙特二手车出口贸易中,清关证书是极为关键的一环,直接影响着车辆能否顺利进入沙特市场。自 2025 年起,SASO 将所有出口至沙特的货物(含二手车)纳入“SABER”在线认证系统的强制…

    作者头像 李华
    网站建设 2026/7/14 17:49:26

    计算机毕业设计springboot基于JAVA的校园网络跳蚤市场系统的设计与应用 基于Spring Boot框架的校园二手交易平台系统设计与开发 Java技术驱动的校园网络二手市场系统构建与应用

    计算机毕业设计springboot基于JAVA的校园网络跳蚤市场系统的设计与应用i5l6k9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着互联网技术的飞速发展,校园生活也逐…

    作者头像 李华
    网站建设 2026/7/14 4:08:35

    DevSecOps实战:从威胁识别到自动化防护的持续安全实践

    在数字化转型加速的今天,传统安全防护已无法满足快速迭代的开发需求。DevSecOps通过将安全左移,在软件开发生命周期早期识别威胁并实施自动化防护,帮助企业构建主动防御体系。本文将系统讲解威胁建模的理论框架,展示如何搭建自动化…

    作者头像 李华
    网站建设 2026/7/14 4:16:41

    工程AI的“合规红线”:什么必须阻断,什么可以建议?

    ​摘要:在电力工程设计中,AI不能“越界”做决策,也不能“缺位”不提醒。良策金宝基于自主智能理念,将规范条款划分为“强制阻断类”与“优化建议类”——前者自动拦截违规操作,后者提供可选方案。通过规则可配置、逻辑…

    作者头像 李华
    网站建设 2026/7/13 23:33:22

    设计院为何陷入“三高困境”?高负荷、高流失、高风险

    摘要:项目激增,人却越干越累;骨干出走,新人难扛重任;图纸频返,合规屡踩红线——设计院正深陷“高负荷、高流失、高风险”的恶性循环。根源不在人力短缺,而在知识无法沉淀、经验无法复用、规则无…

    作者头像 李华