开源测试工具 Hitchhiker 学习:源代码部署及调试

zyanycall · 2018年02月12日 · 最后由 zyanycall 回复于 2020年04月09日 · 2395 次阅读

首先,向开发者@brookshi 致敬。没有他的工作,我们就没有机会见到这么棒的工具。
其次,我前端技术栈不深,以学习心态写此篇,遇到错误多多批评。

github:[https://github.com/brookshi/Hitchhiker]

背景铺垫

  • 我是要做一个 web 端的测试平台,主要是压力测试。而 Hitchhiker 正巧是 web 界面操作的,正好了。
  • 之前我测评了一把 Locust,让我对 Python 语言实现平台存疑,想看看其它技术栈,B 格更高一点儿。
  • 通过 Hitchhiker 见识到了真正的前端工作,很好。

开发环境

WS(WebStorm)

推荐最新版的 WS,之前版本的调试 Node 出现卡顿。
我是 Java 技术栈的,用 VSC(Visual Studio Code) 没有 WebStorm 顺手,如:

  1. WS 提供的全局搜索,比较顺手。
  2. WS 的快捷键,包括代码补全。
  3. 其它管理等。

WS 是收费的,但是也有免费的方式,如果是老版本的 WS,免费还是比较方便的,具体 google。

下载源代码和代码目录简单解释

  1. .vscode : 应该是 IDE 的配置文件。
  2. api:核心 API 源代码根目录,类似于 master 的代码。
  3. build:TypeScript 的编译后的文件根目录。
  4. client:类似于 slave 端的源代码,用于分布式部署。
  5. cn:中文文档。
  6. deploy:部署使用文件,如 docker 部署需要的。
  7. doc :文档所需要的。
  8. en:英文文档。
  9. logs:编译 TypeScript 时的日志文件。
  10. node_modules:node 编译时导入的包。
  • 还有一些重要文件解释:
  1. appconfig.json:apiTest 环境的配置文件,json 格式书写便于导入。是作者自定义的。
  2. gulpfile.js:gulp 部署的指导文件。
  3. logconfig.json:项目 log4j 的配置文件(Log4js.configure(Path.join(__dirname, '../../logconfig.json'));)
  4. mail.json:和邮件相关的。
  5. package.json:Node 项目的部署指导文件,其中定义了 node 编译时需要导入什么包,什么版本等,具体百度。
  6. tsconfig.json:TypeScript 的配置文件,包括编译的目录名字等,具体百度。
  7. tslint.json:TypeScript 的格式要求,具体百度。

安装配置 Node.js 和 TypeScript

参考:
[https://segmentfault.com/a/1190000006124164]
可以配置 cnpm:
[https://npm.taobao.org/]

导入 npm 包

直接在 Hitchhiker 下执行 npm install 就可以了,自动根据其下载包文件,到 node_modules 目录下,需要 ***:

如果之前安装了阿里的国内的源 cnpm,同理,但是我自测,还是 npm 好一些。

同理在 client 目录下同样执行一遍,如:

WS 中的配置

  • File | Settings | Languages & Frameworks | JavaScript 设置 ECMAScript 6:

  • File | Settings | Languages & Frameworks | Node.js and NPM 设置 node 地址:

  • File | Settings | Languages & Frameworks | TypeScript 设置 TypeScript ,作者默认是要求 2.3.3 的,我还不知道其深意:

我没设置 git 等。

配置/安装 mysql5.7

作者要求一定是 5.7 版本的 mysql,因为其支持 json 数据类型。

我的方式是本地 (windows) 安装了一个 mysql5.7,安装还是比较快的且内存占用不高,亲测可以。
参考:[http://blog.csdn.net/tanghong1996/article/details/71330666]

默认应该是开机自启动的,停止也简单 (net stop mysql)。

  • 之后修改项目的 mysql 配置:appconfig.json 中:

作者定义了开发库 hitchhiker 和正式库 hitchhiker-prod

我的做法是本地都生成了。

开始编译

  • Hitchhiker 根目录 和 client 执行 tsc
    这是编译 tsc 文件,具体配置 tsconfig.json 中都写好了,需要 ***。

  • 执行 gulp 的 build, release, compilerClient。

    WS 中直接双击就行。
    这样应该用的是正式库,具体细节我还没有深究。

启动调试

增加一个 Node 的 debug,配置如下

然后启动 debug。

登录断点进入截图如下:

亲测,ts 和 js 的代码断点都能进入。

本地环境截图:

调试 JavaScript

参考:[http://blog.csdn.net/sujun10/article/details/54139560]

简单本地测试及思考

基于当前版本 v0.9

  • 自测创造压力的能力不及 Locust,同时压测图形比较简单。

几个接口测试重要场景是我经常遇到的,分享下:

  • 以文件夹为单位执行接口测试,即基于流程的接口测试,同时生成测试报告。

目的:整个系统的全流程回归 + 业务梳理 + 告诉别人我做了这么多的工作是有价值的。

  • 两个环境接口测试 (大量) 结果对比。

大量有两层意思:接口返回数据非常多 + 大量的接口(至少上百个)。这样的需求返回接口数据对比,一般是很困难的。
目的:系统升级后,需要对比新逻辑接口返回值不能变化。
(后续我可能会分享下我基于 Jmeter 的报告是怎么做的,很高效)。

后续

每一个工具肯定有其适用范围,也不一定适合所有人。
Hitchhiker 是个好工具,我还会继续学习。

共收到 8 条回复 时间 点赞
XS 回复

这个纯前端的我也不了解哈~并且我也 2 年左右没看过这个项目了。
另外我不建议重构哈,除非你也是为了 KPI。

仅楼主可见
XS 回复

可能是 KPI 项目哈。有点儿可惜。

Brook Shi 回复

老铁,现在不维护了啊。看 1 年没更新了,实际应用还是有些小瑕疵。

#1 楼 @brookshi 能否汉化一下?还有 能否给 jmeter 对接一下呢 毕竟目前压测用的还是 jmeter 比较多

—— 来自 TesterHome 官方 安卓客户端

Brook Shi 回复

感谢肯定,前端我还有太多东西需要学习,向你学习。

感谢评测,非常中肯,测试工具确实很难真的做到全面,特别我的目的是想让没有编程基础的 QA 使用,易用性是比较首要的,所以功能上的能力还非常有待改进,压力测试基于 node 的分布式压测还在测试中,这块对创造压力应该会有提升。
Hitchhiker 确实还有不少缺点有待改进,比如细节,比如稳定性,比如楼主所说的适用性,可扩展性,也依赖社区发现 bug 或提供改进的意见,这样工具才能持续进步和发展,这也是开源的意义。

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