接口测试 如何快速从 0 到 1 构建起一个公司的自动化接口

欲野法师 · 2020年10月17日 · 最后由 倒着游泳的鱼 回复于 2023年06月16日 · 3151 次阅读

需求背景

由于自己最近刚刚换了一个新的砖厂,进入新的砖厂报道之后,当天,就被研发总监约谈了,也表明当前测试团队的现状,由于部门是新开的部门,各种资源匮乏,接口文档严重缺乏,需求混乱,每次发版本之后,线上总是出现 bug,环境也一直都不稳定,再加上,公司目前没有接口自动化测试,只有 1+n 个的功能测试.........当时本来想干脆还是跑路吧,但是后面想了一下,要是遇见问题就逃避,那还工作屁啊,回家种田算了吧,毕竟逃避解决不了任何问题,于是自己准备迎难而上,顺便也是对自己的一种挑战,俗话说:强扭的瓜不甜,但是我喜欢把他拧下来,并且享受拧下来的过程

当前团队现状

  • 功能与对应的接口需求混乱,没有人管理,没有归档沉淀
  • 当前团队大部分是外包的功能测试,开发也是外包居多,测试没有流程
  • 接口文档到处分善,公司因没有做过接口测试
  • 自己刚刚入职,对公司业务的不熟悉,各种资源的缺乏
  • 开发和测试挤在一套环境里面,测试环境没有人搭理
  • 公司碎片化需求居多,发版频繁等问题.....

个人解决方案

1.制定一个完善的接口测试流程,制定接口方案 (出方案找领导排版)
2.申请服务器资源,搭建测试环境,强行把开发独立出测试环境 (资源索取,搭建 svn 等文件管理服务器)
3.接口自动化技术调研,最团队接口自动化测试技术栈的准备 (准备造轮子)
4.解决接口需求文档和接口文档严重缺乏的问题 (新环境建立之后,找研发老大强推 swagger 等工具)
5.框架基本模型的设计,初版需求

# 框架选技术选型
经过自己的调研,最终选择如下造轮子的基础技术选型,后续在加入 docker 和对应的性能等

Python+Pytest+requests+allure+Jenkins

接口自动化的理解

以下仅代表个人对 Python+requests 接口自动化的理解,如有不对,各位大佬补充

什么是自动化??

个人理解的自动化:
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了 测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实 际结果与期望结果的比较。
核心观点:
在日常测试中,为了节省人力、时间或硬件资源,提高测试效率。把手工做的事情,根据我们预定设计的程序去运行,去替代原来手工测试的过程 部分的自动化,写一个脚本,工具,去替代一些重复的工作, 在此过程中,需要编程语言基础 全量的自动化,难度系数比较大,成本比较高,这就是我个人理解自动化测试的概念。

自动化原则

  • 尽量是零维护成本
  • 测试数据的维护,闭环
  • 脚本的维护简化
  • 尽量去减少 case 之间的依赖性
  • 覆盖全面性
  • 易理解易阅读

接口场景考虑

自动化接口测试都是基于需求的前提,一般在会遇到以下两种情况:
部分公司,只要做接口的正常场景一个用例就好
部分公司,需要做接口的正常场景与异常场景,分析

轮子设计

低配版设计

公司使用场景

1,一个人独立完成,接口自动化,按照我自己的思维去编写就可以
2,几个人完成,我是做主导(沟通):
2.1,前期做的事情:
2.2,需求的确定,计划的确定,人员安排
2.3,搭建初步框架出来,并且告知所有的测试人员,含义
2.4,建立规则,公共方法 公共方法,自己写好,方便其他人调用 其他人编写公共方法,一定要去说明,一定因为自己这边认可 test_case 根据人员按模块划分
3,我只是辅助(沟通):
3.1,了解代码结构,不懂去问
3.2,再去根据分配的任务去编写
3.3,好的方法,提出改进意见

接下就是框架的封装实现环节,后续上

共收到 16 条回复 时间 点赞

个人感觉还是先把内部流程规范确立起来吧,纯技术手段其实意义不大

不应该先把 测试流程,文档之类的梳理出来吗

cool 回复

目前这些已经整理完成了😺

白痴一号 回复

这些已经整理完成了

1.可以考虑左移,让开发维护接口描述,自动生成测试用例,开发自己也需要测试。
2.根据数据流的流程图自动生成组合用例。

这个还是比较难得。

关注楼主更新

欲野法师 回复

感谢大佬建议,学到了

逃避解决不了任何问题,于是自己准备迎难而上,顺便也是对自己的一种挑战👍

最后四个步骤,建议使用 pipline,避免框架复杂化 数据多的问题。

我觉得还是得根据线上 Bug 来反推问题的根源,到底存在哪些问题,从整体角度去看应该解决哪些问题,优先解决哪些问题。线上 Bug 多必定是多个环节都有问题导致的,譬如楼上有人提到的测试左右,缺乏接口自动化在所有问题当中的占比可能很小,这就意味着即使搭建起了接口自动化,也仅仅是解决了一小部分问题,最终还是会有大量 Bug 上线。

这是个实战 楼主抓紧更新呀 顶顶顶

测试流程搞起来,每个环节有输入,标准,输出,然后有量化标准。接下来,才来搞自动化。不然估计很难~类似 CIMMI,无序 -- 可管理 - 可定义 - 可量化 - 可不断更新~至于你其他在想一想,路子要踏好。你可能是管理人员,那更要把这些整好,运行流程,在来谈自动化落地,不然也许后面就是推不下去,不了了之~

chenyouan 回复

感谢大佬,我其实就是个干活的,只是看不惯,干脆自己理一下,随便看看能不能加薪😀

欲野法师 回复

大佬,有最新的接口自动化分层设计吗

为什么找不到后续了,哈哈哈

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册