Hitchhiker 是一款开源的 Restful Api 集成测试工具,支持 Schedule, 数据对比,压力测试,可以轻松部署到本地,和你的 team 成员一起管理 Api。
详细介绍请看: http://www.cnblogs.com/brookshi/p/7440663.html
在线体验: http://www.hitchhiker-api.com/, 可以用 try without login
来免登录使用 (在线演示不支持压力测试,虚拟机单核的,撑不住)。
双 11 快到了,经常会有整点秒杀的活动,秒杀就是一个典型的压力场景,所以建了一个简单的 Case 来表现这种场景,来展示 Hitchhiker 压力测试功能:
Hitchhiker 使用一个基于 Golang 的分布式压力节点,这是一个单独的项目:Hitchhiker-Node。得益于 Golang 的交叉编译,轻松跨平台生成文件,所以只有一个可执行文件和一个配置文件,没有环境依赖,直接执行。
使用时在release 页面先选择对应平台的 zip 文件下载下来,解压后会有两个文件,一个可执行文件和一个配置文件 config.json,打开配置文件,把Address
的值从 localhost 改为部署 Hitchhiker 机器的 ip,然后再执行 Hitchhiker-Node 文件,这样就弄好了一个压力点。
如果想压出很大的请求就可以考虑部署到多台机器上,Hitchhiker 会自动根据机器的 CPU 核数来分配任务,当然,一般情况下直接部署到 Hitchhiker 同一台机器就够用了。
压力测试用的也是Collection
的Request
,可以选择性的挑出合适的Request
用来做 Case,压力测试的参数有:
- Repeat: 运行整套请求的次数
- Concurrency: 并发个数
- QPS: 1 秒内限制单个节点请求的个数,默认为 0,即没有限制
- Timeout: 请求的超时时间设置,单位为秒,默认为 0,即没有超时设置
- Keeplive: 设置请求是否使用 Keeplive
运行压力测试任务时会实时显示运行状态,包括节点的状态(闪烁表示正在工作),当前任务及任务的数量,下方有三个图表,分别表示
Request
的请求消耗时间,包括 DNS, Connect, Request, Min, Max 这五个源码部署时支持改端口,之前固定用的 8080,要改需要改 js 文件,现在只需在部署文件时改就好了。
改正 Schedule 空跑时的异常。
压力测试在国庆后总算做出来,后来又花了一些时间来测试,0.2 这个版本算是告一段落。 接下来版本计划要改下,涉及新功能的都是大版本,bug 是小版本。 下个模块功能是支持 API 文档,希望能是一个自定义的,所见即所得,支持导出常用格式的 API 文档系统。 小功能和 bug 会持续改进。
Github: **https://github.com/brookshi/Hitchhiker**, 觉得不错的话麻烦 Star 支持下,谢谢。
1
beyondsoft 2017-10-16 08:02:01 +08:00 1
看着不错! 支持一下!
|
2
LensAclrtn 2017-10-16 08:20:18 +08:00 1
看着还行,前排马克
|
3
GuryYu 2017-10-16 08:35:23 +08:00 1
看上去挺好的, 支持
|
4
lxrmido 2017-10-16 08:52:54 +08:00 1
已 star
|
5
jpyl0423 2017-10-16 09:01:09 +08:00 1
正好要做压力测试, 已 star
|
6
a1044634486 2017-10-16 09:52:57 +08:00 1
已 star,默默问下,用公有云机器装这个,测我的站点,会不会被封公有云的机器。
|
7
wuliao49 2017-10-16 09:53:17 +08:00 1
这个和 AB 相比的话 有什么区别呢
|
8
ragnaroks 2017-10-16 11:13:26 +08:00 1
能否导出文档?
|
9
itaotao 2017-10-16 12:00:31 +08:00 1
跟 postman 界面和功能是高度相似啊
|
10
YzSama 2017-10-16 12:02:10 +08:00 1
哈哈,基本全都失败
|
11
mikuazusa 2017-10-16 12:15:03 +08:00 1
TypeError: Network request failed
本地 Windows 开 docker,try without login 出错 |
12
evlos 2017-10-16 14:02:25 +08:00 via iPhone 1
不错,赞
|
13
brookshi OP @a1044634486
最多会被你站点那边封公有云机器 |
15
brookshi OP @ragnaroks
是 API 文档还是压力测试结果文档呢,API 文档还在计划中,压力测试结果貌似也没什么好导出的 |
16
brookshi OP @itaotao
用过一些测试工具,就 Postman 比较易用,但说到功能上高度相似这点是不对的,只有建立请求这块是相似的,这里多人协作,原生支持 Schedule, 数据对比,压力测试,参数化请求,本地部署,Postman 可没有这些 |
18
wwek 2017-10-16 22:39:33 +08:00 1
大家会不会觉得域名不好记
|
19
andyangyu 2017-10-17 10:30:00 +08:00 1
0|index | [2017-10-17 01:59:21.631] [ERROR] console - (node:47) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: connect ECONNREFUSED 172.18.0.2:3306
0|index | [2017-10-17 01:59:21.632] [ERROR] console - (node:47) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. mac docker 版本,注册不了,try without login 也进不去 |