接口测试行动派-API 测试冒险之旅

纸上得来终觉浅,绝知此事要躬行

听了那么多理念,看了那么多文章,可以为什么我还是这样呢? 所以我决定自己动手,自己尝试,自己体会.
所以我觉得写出我的体会,写出我的感受,写出我的结果.

在一个小公司进行的 API 测试冒险之旅,先开一个头,达成什么很重要,但是中间学到什么也很关键.
没有太多华丽的图标,只有现实的代码和截图, 解决问题在行动.

API 接口测试尝试

每一次尝试都已需要一个目标,所以进行这次尝试的目标是:

  1. 减少接口测试工作量,也就是代码量
  2. 能够让不同部门的人一起协作:
  3. 作为 TEAM Leader 的需求:
  4. 低成本的实现以上内容

2. 实际实现的内容和效果

这是实际实现过程中的大体思路和想法:

2.1 测试代码生成实现内容

  1. 根据 API 开发定义接口文档生成 postman 文件和部分 python 代码

golang 代码片段:

  1. 生成 python 代码: python 返回和请求都是采用类的方式而不是 json,方便维护
    python 代码更好的结构化:

  2. postman 文件可以少自己写一些很多请求,方便零时调用请求

postman 该有的前置脚本该有的也都有,:

  1. 根据 postman 文件生成接口调用和测试代码: 同时通过 postman 文件的方式, 让代码生成更通用化,而不是只正对公司自定义协议

2.2 测试数据生成和测试用例生成

测试数据生成主要有两块内容:

  1. 通过协议生成的数据结构,这块在 postman 中可以看到
  2. 通过日常页面操作产生的数据获取
  3. 融合 1 和 2 的数据,生成测试数据

具体怎么做?

  1. 使用 mitmproxy,获取运行测试过程中的数据,并且保存到数据库,算是某种录制方式
  2. 通过一个管理平台让同学们可以通过页面操作生成测试用例数据
  3. 测试用例数据可以直接在 python 代码中使用

同学问实现这些难吗?其实也没有那么难,因为有工具可以方便的给你用:

2.3 接口清单变化和测试用例生成

接口可能有些变化,所以有必要让 API 可以有一个清单让同学们了解 API 的变化情况,具体怎么做?

  1. 上传生成的 POSTMAN 文件保存到数据库

  2. 保存 POSTMAN 中的接口,并且标注出那些是新加的,那些是改变的,那些是已经知道的

  3. 测试数据生成: 已经知道接口定义和有部分录制数据,直接点击生成原始接口测试用例就可以

  4. 生成的测试数据/测试用例可以编辑和导出:

  5. 下载测试用例数据之后,接可以在 python 代码中运行

  6. 如果有额外需要加的测试用例,可以直接在代码中做修改

3. 总结一些在实现这些化的成本

  1. golang 代码生成: 1.5 天
  2. python 接口自动化代码: 5 天
  3. mitm proxy 数据录制: 1 天
  4. 接口后台管理工具: 3 天

4. 收获是什么?

  1. 工具有很多,如何组合起来使用满足自身需求
  2. python 收获: 重新认识了新的 python 的一些库
  3. 内部平台收获: 使用低代码工具能够极大的帮助开发效率
  4. 一些观念的变化
  5. 一小点一小点的知识和代码使用,大部分可以在 30 分钟说完,最主要的是练习熟练程度 各种知识点的 30 分钟的介绍,正在准备中,希望可以给我们 TEAM 的同学有些帮助
  6. 知己知彼,可以更深入的测试,在自己写的过程了解开发细节,也可以推测和你差不多的开发在哪里容易出错


↙↙↙阅读原文可查看相关链接,并与作者交流