自动化工具 致敬社区开源接口平台并二次开发

面对疾风吧 · 2020年08月16日 · 最后由 点点 回复于 2021年06月15日 · 2754 次阅读

背景

  • 由于年初开发了 UI 测试平台https://testerhome.com/topics/23434, 反响不错,于是这段日子开始着手接口平台的开发,社区里有很多开源并且成熟的平台,所以我选择了和我技术栈一样的 python+DRF+elementUI。原作者链接https://testerhome.com/opensource_projects/37。为什么从众多项目中选择这个呢,首先大前提是技术栈一样,我便于二次开发。另一个原因就是,这个平台的颜值、布局、设计都是一流水准,实在太佩服作者将这么好的平台开源给大家了。

于是我开始搭建并体验这个平台,他的优点如下

  • 布局优美,设计优雅,代码可维护性强
  • mock 功能,支持 swagger 导入
  • 自带接口文档,编写自动化接口用例时,可以从接口文档导入
  • 测试报告优美,好看,众多优点大家可以去体验下

由于作者不再进行维护了,一些想要的功能只能自己来搞了,我二次开发了以下的功能

  • 由于自带的 swagger 导入跟公司的 swagger 格式不符合,导致导入失败,我进行了调整,并且导入后会自动分组
  • 原来的定时任务功能只支持在 linux 上部署,并且还要放到特定的文件夹下,易用性不高,我在此做了调整,windows、linux 都可以用,并且有定时计划可以看到任务下次执行的时间
  • 原平台没有一个执行项目所有用例的功能,通过研读代码,加上了 ‘执行全部的功能’
  • 经过再次体验,发现每个接口都要在头部写 token 验证,于是做了配置化(登录名、密码、url)来自动获取 token,不用每次都要手动去关联登录接口来获取 token 了
  • 于此同时,在我们使用平台的时候,很多用例或者接口只需要复制 并且修改下就可以了,对此我加入了复制用例、复制接口的功能,大大提高了维护的效率
  • 原平台功能的关联是默认存储了返回值最外层的 key,以至于想关联多层嵌套的时候,没办法满足。于是我修改了关联逻辑,不自动生成关联需要的 key 值了。让用户通过 jsonpath 来自己找,没接触过 jsonpath 的不要紧哈,只需要记住 $..data,类似这样的几乎通吃了,语法很简单。
  • 在从返回值做关联之后,发现有些场景还需要从之前的接口的请求参数里拿数据,以此来关联,于是我又做了叫做 ‘参数关联’ 的功能
  • 至此改造后,基本可以满足公司对接口平台的需求了,在此非常感谢作者无私的奉献!
  • 给大家看下原作者开发的测试报告,非常的好看

注:原开源代码,由于打包链接的是外网的 js、css 文件,最近发现那个网站老师访问失败,所以导致该平台有时候没法访问,最好将这些外部文件下载到本地访问

后续计划

  • 准备做数据库的关联校验,和集成 locust 做性能测试平台
  • 需要源码或者有问题咨询的可以加我微信 liuxiaolu4986
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 5 条回复 时间 点赞

源码开源到 github 或者国内的 gitee 呗

2楼 已删除
仅楼主可见
恒温 回复

嗯呢 现在为了满足功能,代码写得有点乱,待我整理下 😁

面对疾风吧 求一个开源接口 /UI 测试框架 中提及了此贴 08月18日 19:14
面对疾风吧 Docker 部署 Django+Uwsgi+Nginx+Vue 中提及了此贴 09月13日 13:32

楼主发布到开源平台了吗?😁

赞一个

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