开源API测试工具 Hitchhiker v0.6更新 - 改进压力测试
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Api。
详细介绍请看: http://doc.hitchhiker-api.com/cn/introduction.html
在线体验: http://www.hitchhiker-api.com/, 可以用 try without login 来免登录使用 (在线演示不支持压力测试和上传js,虚拟机单核的,撑不住)。
下面来看看这次的更新:
重写压力测试
Hitchhiker 之前的压力测试节点是一个基于Go的 Hitchhiker-Node,早期阶段Hitchhiker的脚本功能并不复杂,不支持上传js库,async/await,以及文件读取保存等,而Go的高并发非常有吸引力,做了下调研后,使用otto做为js解释器,是可以满足那时的脚本运行逻辑的,所以选用了Go做压力测试的节点,在早期是够用的。
后来Hitchhiker开始支持更多复杂的脚本功能,比如自定义js库,因为npm里的很多js库都基于Nodejs,而目前的Go以及otto满足不了这种需求,除非再加一个Node进程来执行脚本,然而这样又过于复杂,还不如直接使用Nodejs来写,所以综合考虑后还是使用Nodejs重写了压力测试点。
重写之后的压力测试是集成在Server一起的,也就是不用再部署其他的程序,而且支持现有所有的脚本功能。
两种方法的优劣:
Go的高并发以及goroutine使得写起这种压力程序时非常之轻松,性能也很有保障,缺点还是在于Hitchhiker的脚本是js,所以Go执行这些脚本比较费劲,也因此目前基于Go的压力点不支持Hitchiker脚本的高级特性。
Nodejs写这种压力测试程序就比较费劲,需要自己管理多进程,以及进程间通信,还没法精确控制1秒的请求数,也就是压力测试的参数QPS对Nodejs的压力点是没用的,不过好在Hitchhiker Server也是基于Nodejs的,所以可以重用请求处理的逻辑,而且Api的压力测试本质上是高IO的,所以Nodejs的性能也很不错。不过Nodejs的程序目前还不支持分布式,稍后会加上去,主体功能已经完成。
稍微比较了下两者的性能,在单机上基本旗鼓相当。
目前是以基于Nodejs的版本为默认的,也可以选用Go的,不过Go的暂时会停止维护,除非Go有了基于Node的js解释器,那时再考虑移回来。

重新整理请求流程
之前的请求流程有点乱,导致有些问题不容易发现,比如环境变量没应用到Test脚本里,所以在改这个bug时重构了下代码,把流程理清下:

response 展示图片
这个是有朋友在github上提出来的,之前我是想不到有人会用这个工具来请求图片,所以也没关注这块,不过有人使用,说明有需求(不止一人),所以实现了这个功能,如果response header有image/*的话就直接展示图片而不是图片内容(一片乱码)
修改Bug
global function 里的内容在切换模块后会消失
schedule里的请求返回是图片时,会造成JSON.parse失败,导致异常,改了图片只保存链接,不保存内容
浏览器里压力测试的websocket有时会失败,加了重试
schedule的定时跑的记录会有1分钟左右的误差
改请求的method时name会被重置
后续计划
短期内还是以增加测试新功能为主,比如curl生成请求,请求生成代码等,长期的一个是文档,一个是Mock,开始根据需求来决定下一个模块。
Github: https://github.com/brookshi/Hitchhiker, 觉得不错的话麻烦 Star 支持下,谢谢。
开源API测试工具 Hitchhiker v0.6更新 - 改进压力测试的更多相关文章
- 开源API集成测试工具 Hitchhiker v0.2更新 - 压力测试
Hitchhiker 是一款开源的 Restful Api 集成测试工具,支持Schedule, 数据对比,压力测试,可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍请看: http: ...
- 开源API集成测试工具 Hitchhiker v0.3更新 - 自动同步
Hitchhiker 是一款开源的 Restful Api 集成测试工具,支持Schedule, 数据对比,压力测试,可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍请看: http: ...
- 开源API测试工具 Hitchhiker v0.4更新 - 没有做不到,只有想不到
Hitchhiker 是一款开源的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍 ...
- 开源API测试工具 Hitchhiker v0.5更新 - 完善细节
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Ap ...
- 开源API测试工具 Hitchhiker v0.7更新 - Schedule的对比diff
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Ap ...
- 开源API集成测试工具 Hitchhiker v0.1.3 - 参数化请求
Hitchhiker 是一款开源的 Restful Api 集成测试工具,你可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍请看: http://www.cnblogs.com/bro ...
- 开源API测试工具 Hitchhiker v0.8 - 自动化测试结果统计
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Api. ...
- 开源API测试工具 Hitchhiker v0.10 - 中文版
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Api. ...
- 强大的API测试工具Hitchhiker v0.9 基于UI的断言测试,回顾2017
v0.9是Hitchhiker在2017农历年的最后一个版本,而起点正是刚过完2016农历年,农历2018即将到来,一年轮回,今天写点东西稍微回顾下hitchhiker的2017. 先还是说v0.9, ...
随机推荐
- Windows 安装 python2.7
Windows 安装 python2.7 python2.7下载地址: https://www.python.org/downloads/release/python-2714/ 安装过程: 设置系统 ...
- Spring+MyBatis+SpringMvc整合Demo
客户关系管理系统demo 项目分析 该demo使用技术及环境:ssm+maven+bootstrap+jsp+mysql+idea+jdk1.8 需求:客户管理,实现客户列表分页显示如下图 项目开始 ...
- HTTP中的Range: bytes=0-
HTTP中的Range就是分段请求字节数,也是大家经常说的断点续传.Range头域可以请求实体的一个或者多个子范围,Range的值为0表示第一个字节,也就是Range计算字节数是从0开始的 表示第二个 ...
- Celery 源码解析四: 定时任务的实现
在系列中的第二篇我们已经看过了 Celery 中的执行引擎是如何执行任务的,并且在第三篇中也介绍了任务的对象,但是,目前我们看到的都是被动的任务执行,也就是说目前执行的任务都是第三方调用发送过来的.可 ...
- Mybatis主配置文件常见使用讲解
在开发中我们通常将Mybatis中配置文件分两种,主配置文件与和dao对应的映射文件. 其实最后mybatis解析的还是一个主配置文件. 而映射文件会通过我们配置<mappers>属性,或 ...
- Transact-SQL知识点梳理
Transact-SQL基础语言 运行环境:SQL Server 语法约定: 语法约定 用途说明 大写字母 Transact-SQL关键字 斜体 用户提供的Transact-SQL语法参数 粗体 数据 ...
- [转载] 理解OAuth 2.0
转载自http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛 ...
- SSM 配合 Mysql 数据库和代码数据源主从分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
- array_unique和array_flip 实现去重间的区别
array_unique和array_flip 实现去重间的区别 php有内置函数array_unique可以用来删除数组中的重复值, phperz~com (PHP 4 >= 4.0.1, ...
- 用python画一朵玫瑰花
废话不多说,直接上代码 from turtle import * import time setup(600,800,0,0) speed(0) penup() seth(90) fd(340) se ...