开源的 Restful Api 集成测试工具 Hitchhiker

Hitchhiker 是一款开源的 Restful Api 集成测试工具,你可以在轻松部署到本地,和你的team成员一起管理Api。

先上图看看:

简单介绍

背景是Team在开发一些Api,这些Api依赖于其他Team的Api,依赖的Api是比较底层且比较大的,用起来不太方便且没有详细文档。

在开发Api的过程中有一个问题让我比较在意,我们Team是我先研究那个依赖的Api,过程不太容易,需要找文档,找那个Team的人协作,找case 等,研究了一些后做了一些东西,后面隔了一段时间开始陆续有其他同事参与进来,每进来一个都去研究一下那个Api,包括我做了其他事情后再回来开发Api时又得找资料熟悉下,这个过程造成了很大程度的时间和经验的浪费。

所以我觉得应该有款工具能让Team的人一起协作开发Api,和Code一样,每个人研究的东西可以保存下来方便其他开发,这就是开发Hitchhiker的第一个引子。

后来,Api开始发布出去,为减少QA的工作量,需要做一个Api的自动化测试工具来保证数据准确性,希望能让测试环境的数据和生产上的数据作对比,这样保证新开发的Api不影响到旧的,测试专注于新功能就好,这是第二个引子。

Api的性能也是个关键的指标,在大规模使用前也需要对Api的性能做测试,所以性能测试是Hitchhiker下一个目标。

如果Api是公开的话,文档是必须的,试想如果我们依赖的Api文档好的话不仅我们这边容易,他们那边其实也省事不少,至少我们不用去频繁打扰他们了。不过写文档过程是比较痛苦的且更新很麻烦,但如果Api的case都已经有了的话,文档的主体其实就有了,然后对参数加些说明就可以了,QA熟悉的话都可以帮着做,所以一个所见即所得并且支持模板的文档也在计划中。

其实我们之前也是有用过一些测试工具,但不是很满意,就易用性来说,最好用的还是Postman,所以Hitchhiker的UI就是模仿它的,用过Postman的话会很容易上手。

能做什么

  • Team协作开发Api
  • Api历史修改记录及支持diff展示
  • 支持多环境变量及运行时变量,可以处理Api依赖问题
  • 参数化请求,把query/body里的变化点提取出来,构建出参数列表,极大减少request的数量
  • 支持Schedule及批量run
  • 不同环境下的请求数据对比 (eg: stage vs product)
  • 支持在数据对比前对数据进行处理
  • 易部署 (支持 docker, windows, linux), 数据都存在自己这里,不会上传及丢失
  • 会记往任何修改,不用怕没保存时session失效或系统重启
  • 支持导入Postman v1 collections
  • 性能测试 (开发中...)
  • Api文档 (计划中...)

如何部署

首推使用 docker 部署,简单快捷,具体操作参考 deploy with docker

如果没有docker环境也可以使用源码部署,也很简单

linux 请参考 deploy to linux

windows 请参考 deploy to win

如何使用

参考 使用说明

用到的技术

前后端分离,前端采用 React + Redux + AntDesign,后端基于 Nodejs, 采用 Koajs + TypeORM + MySQL。

语言统一用的 Typescript。

测试前端用Jest,覆盖了逻辑最多的 reducer,后端使用的就是本工具来测试自己,这对时间有限的我来说算是最有性价比的选择。

开源

可以访问 http://www.hitchhiker-api.com/ 来使用,点击 try without login 免注册登录使用,另外,为了免备案,服务器在海外的,所以速度上可能会有点慢,抽疯时可能访问不了,请谅解。

所以最好还是在本地局域网部署,用起来会比较爽。

Github: https://github.com/brookshi/Hitchhiker, 觉得不错的话麻烦 Star 支持下,谢谢。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DevOps时代的专栏

K8S 1.10 | 技术角度解读 10 大模块更新

1545
来自专栏Vamei实验室

Linux简介与厂商版本

1. Linux简介 Linux可以有狭义和广义两种定义。狭义来说,Linux实际上指Linux kernel (内核)。内核负责管理硬件,并为上层应用提供接口...

1929
来自专栏BestSDK

5个不为人知的Java API使用技巧

程序员都喜欢使用API!例如为app应用构建API或作为微服务架构体系的一部分。当然,使用API的前提是能让你的工作变得更轻松。为了简化开发和提高工作效率所作出...

2884
来自专栏*坤的Blog

DNS线路

2042
来自专栏IT笔记

学习OpenResty的正确姿势

前段时间老罗退出得到专栏事情闹得沸沸扬扬,另一位老罗也给出了合理的会员退费,感觉得到还是蛮贴心的。想想也是,毕竟精力有限,如今老罗也有了十亿的投资,集中精力做好...

3377
来自专栏双十二技术哥

Weex系列(一)之Weex入门准备

在上一个系列文章中我们说到大前端一定是可以预见到的未来的趋势之一,那么从本篇文章中我将开启一个新的系列,从入门到深入,一步步走近大前端的核心腹地。计划本系列文章...

784
来自专栏*坤的Blog

DNS线路

1.5K5
来自专栏GANDCRAB V5.0.4

GANDCRAB V5.0.4数据恢复及安全防御

今年以来,GandCrab勒索病毒频繁出现变种版本(GandCrab4.0、GandCrab5.0、GandCrab5.0.3),近日,又出现最新版本...

1070
来自专栏伪君子的梦呓

用 Python 实现聊天机器人

0 前言 一个人在家无聊,所以我打算弄一个机器人和自己聊天,后来弄着弄着就出现一点小偏差,聊天机器人是有了,就是没办法用来和自己聊天,只能给别人聊天 ? ? ...

5317
来自专栏FreeBuf

老式后门之美:五种复古远程控制工具

目前,高级的rootkit技术可以帮助你在渗透中拿到一个shell后进行持久性控制。此外,还有供应商故意提供了一些植入后门,但那就是截然不同的故事了。尽管各式花...

2079

扫码关注云+社区