接口自动化测试实践指导(上):接口自动化测试基础篇,软件测试面试没项目经验

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

测试环境准备可分为两部分:被测系统环境准备和测试客户端环境准备

  • 1)被测系统环境准备

该环境就是被测系统的运行环境准备,进行测试前,我们肯定需要知道要测试哪个系统,这个系统的访问地址是多少,这样我们才能进行后续的测试工作。

测试环境最好由测试人员自己维护起来,这样避免依赖开发人员,也能加强测试人员对测试环境管控,避免环境被人随意改动,影响测试工作。

最开始的测试环境部署,最好要请教开发人员,尽量保证测试环境各项配置与生产基本一致,避免因为配置不同,遗漏某些bug。当然像数据库这样的配置肯定要使用测试环境专用的配置,连接测试数据库,决不能直接连接生产数据库进行测试。

  • 2)测试客户端环境准备

该环境的准备比较简单,就是部署有测试工具的客户端环境,最简单的方式就是本机部署安装测试工具,当然也有比较复杂的客户端环境准备,如你要做持续集成测试,可能要集成 Jenkins,环境部署上就会复杂好多,初学者可以先不关注。

因采用不同的测试工具,客户端环境准备上会有所不同,具体的依据自己采用的测试工具来准备。

注:目前我采用的测试工具是 Jmeter,客户端环境准备比较简单,只需安装好 java 运行环境,从官网下载 Jmeter 安装包解压即可使用。

获取接口文档

测试工具和测试环境准备就绪之后,那下一步是不是就可以开始测试了,当然还不行,按照正常思路,你得知道要测试什么,依据什么来测试,搞清楚这些才能开始下一步的测试工作。

在传统的瀑布软件流程中,测试人员在做某个系统的手工功能测试时,测试人员会首先从业务人员或开发人员那边获取需求文档、系统设计文档,通过这些文档了解学习被测系统,测试用例也会依据这些文档来进行编写。

如果你的项目采用敏捷开发模式,文档虽然不多,但依然可以从产品经理那里获取产品设计原型、PRD 文档等,据此来了解被测系统,进行用例分析和编写工作。

说了上面这么些,只是给大家一个对照,对于接口测试,同样也需要首先获取一些文档,依据这些文档来了解被测接口,并进行用例分析和编写。不过需要注意,接口文档形式比较多样,有的项目组可能采用 word 文档,更多可能采用一个系统维护接口文档(如:RAP、eolink 等),也有的组采用 Swagger 工具生成。

目前测试最多的是 http 类的接口(一般以 RESTful API 居多),也有 WebService 类接口,本篇演示内容会以 RESTful API 风格的 http 类接口来进行展示。

实际项目展示

目前这个项目采用 eolink 这款工具来维护接口文档,使用这块工具来维护接口文档还是非常方便(该项目使用的是老版本的 eolink,新版本 eolink 丰富了很多更易用的功能,更多功能介绍可参见文末),具体展示如下:

  • 接口列表展示

  • 删除应用”接口维护内容展示

测试数据准备和设计测试用例

上面内容准备就绪后,就可以开始接口测试用例的设计,用例设计完毕后只需要再准备一些初始测试数据,就可以开始进行接口的调试与测试工作了。

测试数据准备和设计测试用例可以同步进行,说起测试数据准备,我们要准备哪些内容呢?这个就要看具体的项目了,举个例子:如果你这个项目是需要用户登录的,那至少你要准备你的测试用户。当然你要明确一点,并不是所有数据都是测试前要准备好的,很多测试数据可能是一边测试一边准备的,因为只有测试到某个接口,才知道需要准备哪些数据,对于数据准备这块,依据实际情况灵活处理即可。

对于测试数据按照我自己总结的思路可以从如下三个角度考虑:

测试数据准备思路

个人感觉做接口自动化最麻烦的地方是对测试数据的准备和规划,测试数据准备的好不好非常影响脚本的健壮性,经常会因为测试数据问题,造成用例跑不过,影响接口自动化的成效。

对于测试数据准备,我的一般把测试数据分为两类:①死数据;②活数据。

  • 1)死数据

死数据指在测试前准备好的测试数据,这些数据往往都是手工在被测系统中准备好的,直接作为脚本的初始化参数供脚本使用。这部分的数据建议不要太多,不然会导致前期准备时间比较长。能够当做死数据来准备的数据,建议是一些比较固定的、后续测试中不太容易发生变化的数据,像类似用户名密码这样的数据,在后续测试中不易发生变化,对后续数据维护成本不会太大。

  • 2)活数据

建议更多的测试数据以活数据的形式准备,这样可以提高脚本的自动化率,减少后续手工的干预,活数据的准备手段比较多,我主要使用如下几种方式:

  • 编写SQL查库
  • 通过执行相关接口来提取准备
  • 编写脚本自动生成

测试数据准备实战演示
为帮助大家更好的理解,这里拿之前用 Jmeter 做的接口自动化中的数据准备案例给大家做一下演示:

死数据

上图是目前我这个项目设置的死数据,有用户方面数据,团队方面数据、应用方面数据,这些数据一般手工创建好后,后续一般不会有太多调整。

活数据

  • 编写 SQL 查库

图中 SQL 脚本用来获取删除状态的用户名,用于后面用例(“错误值检查(传入已经删除的username),接口返回失败”)的测试数据。

  • 通过执行相关接口来提取准备

图中通过创建应用和查询应用列表接口来准备测试数据“拥有所有环境的应用 id”,用于后面用例的测试。

  • 编写脚本自动生成

图中为了生成 appName 这字段值,用了Jmeter 的自带函数“${__time(MMdd-HHmm-SSS,tt)}” 来生成不会重复的应用名称,保证后续测试该字段不会重复(后台程序不允许该字段重复),从而使脚本能够多次成功运行。

以上是对接口自动化需要做哪些工作的整体思路阐述,进一步思考,细心的同学会发现,对前期的准备工作,包括接口文档,环境等,需要一个平台管理,这样可以起到极大提升效率的作用,包括后续的脚本编写,Jmeter 工具虽然很简单易用,也能满足需求,但脚本结构上还是过于灵活,比较适合单兵作战,不太适合团队协作。

这里呢,推荐大家一款好用的既能兼顾接口文档维护、环境管理,又能用来做接口自动化的测试平台:eolink,官网:https://www.eolink.com/。 最新版本的 eolink 有着丰富易用的功能,帮助项目团队更好的对 API 接口进行管理和测试。

这里简单介绍一下该平台对于 API 接口设计维护、环境管理、测试数据维护、Mock 的功能:

  • 1)API 接口设计维护

平台提供了多种 API 维护方式:手工表单维护、通过模板创建、自动生成 API 文档等,并对 API 有状态和历史版本的管理。

想了解更多可以参见:https://help.eolink.com/#/tut…

  • 2)环境管理

在接口测试中往往需要在不同环境中进行测试,对于环境,eoLink也提供了项目环境的管理模块,方便统一对环境进行管理。

想了解更多可以参见:https://help.eolink.com/#/tut…

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

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-BZcbL0zZ-1713223312744)]

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值