一文5000字从0到1构建高效的接口自动化测试框架思路_从0到1搭建接口自动化测试框架

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 持续集成:Jenkins,通过配置定时执行测试用例、查看测试通过率,解决重复发版带来的重复工作,并使用插件unittestreport生成HTML报告和发送邮件;

2. 接口测试流程

接口测试步骤可以概括如下:

  1. 获取接口文档:首先要与开发团队协作,获取接口文档,了解每个接口的功能和参数要求。
  2. 设计接口测试用例:根据接口文档,设计接口测试用例,覆盖正常场景、异常场景以及边界值等情况。
  3. 编写接口测试代码:使用Python Unittest框架,结合Requests库发起接口调用,并在测试用例中进行断言验证。
  4. 执行接口测试用例:执行编写好的接口测试用例,对接口进行验证。
  5. 发现问题与跟踪:如果发现接口问题,及时记录并提交至缺陷管理平台,与开发团队协作解决问题。
  6. 性能测试:对接口的并发情况和响应时间进行测试,确保接口性能满足要求。

3. 接口测试用例设计

接口测试用例设计要从以下几个方面入手:

  1. 正常场景验证:保证接口按照需求返回正确结果,根据接口文档的参数要求传入合适的数据,验证接口返回结果是否符合预期。
  2. 参数组合验证:对于接口有多个参数的情况,验证不同参数组合下接口的行为是否正确,包括必填和可选参数的组合。
  3. 异常验证:测试接口对异常情况的处理,例如输入异常值、多输入、少输入参数等,确保接口能正确处理异常情况并返回合理结果。
  4. 安全性验证:对于涉及安全的接口,例如登录接口,验证用户名和密码的加密是否安全可靠。
  5. 性能测试:测试接口的并发情况和响应时间,确保接口能在高负载下稳定运行。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

4. 接口测试执行中的数据库校验

为了确保接口返回的数据与数据库中的数据一致或者业务流程脚本编写,有时候需要使用数据库:

  1. 数据库预置数据:在测试前,可以预先在数据库中插入需要的测试数据,然后接口测试用例执行时,校验接口返回的数据与预置的数据是否一致。
  2. 接口调用比对:接口测试用例执行时,通过调用数据库查询的方式,获取接口需要的数据,然后与接口返回的数据进行比对,确保一致性。
  3. 数据清理:在接口测试用例执行完毕后,进行数据清理,将测试过程中产生的垃圾数据从数据库中删除,以保持数据库的干净和整洁。
  4. 流程数据预埋:执行某些接口前,先插入固定数据,流程开始后读取固定数据,实现业务流的运转,最好再删除数据。

5. 接口测试质量评估标准

接口测试的质量评估八股文如下:

  1. 业务功能覆盖是否完整:确认接口测试用例是否覆盖了所有的业务功能点。
  2. 业务规则覆盖是否完整:检查接口测试用例是否涵盖了所有的业务规则和边界情况。
  3. 参数验证是否达到要求:验证接口对不同参数的处理是否符合预期,包括参数边界和业务规则。
  4. 接口异常场景覆盖是否完整:测试接口在异常情况下的处理是否正确,确保系统在异常情况下能正确稳定运行。
  5. 接口覆盖率是否达到要求:确认接口测试用例是否覆盖了所有接口,包括不同的场景和输入组合。
  6. 代码覆盖率是否达到要求:检查接口测试代码的覆盖率,确保所有关键逻辑都得到验证。
  7. 性能指标是否满足要求:对接口的性能进行测试,确保在高负载下接口仍能稳定运行。
  8. 安全指标是否满足要求:验证接口的安全性,确保数据传输和存储的安全性。

6. 接口测试中依赖第三方数据的处理

如果依赖第三方数据的接口有时候难以直接调用接口处理时,可如下处理:

  1. 使用Mock工具:利用Mock工具(如:JSON Server、Easy Mock)模拟第三方数据接口的返回数据,降低对第三方数据的依赖性,加快开发和测试速度。
  2. 编写虚拟接口:在接口测试用例中,编写虚拟接口,直接返回模拟的第三方数据,以达到测试的目的。
  3. 编写代理接口:如果无法模拟第三方数据,可以编写代理接口,将测试请求转发到真实的第三方数据接口,并在接口测试用例中校验代理返回的数据是否正确。
  4. 直接往数据库中插入数据或者更改某条数据的信息,达到模拟第三方接口正常的情况
  5. 如果有一些回调接口,直接利用第三方回调的参数格式修改某些变量,自己手动触发回调修改数据,提高稳定。

7. 接口测试项目的数据管理

在接口测试项目中,不同类型的数据需要灵活地进行管理和存储:

  1. Excel数据管理:对于较小规模的数据或者静态数据,可以使用Excel来管理测试数据 (1万条数据以内比较推荐)。Python中的Openpyxl库可以很方便地读取和写入Excel数据,同时支持其他数据格式的转换。
  2. yaml文件:对于非常小规模的数据或者配置文件数据,可以使用yam来管理测试数据 (数据量200以内可以考虑)。Python中yaml库读取和写入yarm文件还是很方便的。同时这个文件可以注释。
  3. 数据库交互:对于大规模的数据或者需要频繁变更的数据,可以使用数据库来存储测试数据。Python中的PyMySQL库可以实现与数据库的交互,方便数据的读取和写入。
  4. 数据驱动思想:数据驱动测试(DDT)是一种测试方法,通过读取测试数据源来动态生成和执行测试用例。这种方式可以使得测试数据和测试用例分离,降低代码的冗余。
  5. 数据缓存:在测试过程中,为了提高测试效率,可以将已经处理过的数据进行缓存,下次测试时直接使用缓存数据,避免重复请求或计算。
  6. 配置文件:一些接口测试中的配置信息,例如接口URL、账号密码等,可以单独放在配置文件中,便于管理和修改。

8. 解决接口文档缺失问题

遇到接口文档缺失的情况,解决思路如下:

  1. 与开发沟通:与开发人员直接沟通,了解接口的参数和预期结果,根据开发人员提供的信息编写测试用例。
  2. 抓包分析:通过抓包工具(如Fiddler、Wireshark)来分析接口的请求和响应,从中提取接口的参数和数据,以及接口的行为和返回结果。
  3. 数据库查询:对于接口数据存储在数据库中的情况,可以通过查询数据库来获取接口的数据,并根据数据设计测试用例。
  4. 源码接口分析:对于代码能力强的童鞋,可以直接拉去开发的项目代码去分析有哪些接口及参数去设计测试用例(有这个能力还写个毛接口测试 )。
  5. 日志分析:通过日志查询(如elk,tail)等等获取接口的请求和响应,从而设计测试用例。

9. 自动化测试框架的好处

搭建一个自动化测试框架对于接口测试项目有很多好处:

  1. 提高测试效率:自动化测试可以快速执行大量测试用例,提高测试效率和执行速度。
  2. 减少重复工作:通过自动化测试,可以减少人工测试中的重复性工作,提高测试人员的生产力。
  3. 提高测试准确性:自动化测试可以避免人为因素对测试结果的影响,提高测试的准确性。
  4. 持续集成和持续交付:通过自动化测试框架,可以实现持续集成和持续交付,加快软件的开发和交付速度。
  5. 灵活性和可扩展性:自动化测试框架可以根据项目的需要进行定制和扩展,适应不同项目的需求。

当然,很多童鞋会觉得市面那么多开源工具及框架,直接拿来主义使用就好,为啥还要自己整呢?嗯确实没错,但是在座的各位还是得考虑一下换工作(被迫换工作)时,坐在你对面的面试官要怎么应付吧…

10. 解决接口产生的垃圾数据

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

/forums/4f45ff00ff254613a03fab5e56a57acb)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值