一般在公司的协同开发中,api是作为重中之中,除了有一个api的管理工具外,还会需要一个api的测试工具,用来模拟请求测试返回数据等,在api管理上,我们可以用rap或rap2,详细请参考《centos7 搭建最新的RAP2接口管理工具并导入原rap旧数据》
而接口测试工具,一般大部分人都是用postman,但是postman只是一个个人工具,无法在团队协作中起到很好的作用,而这里就介绍一个好用的接口测试工具,Hitchhiker, 界面类似于postman好上手,且可以在团队中以项目的形式进行共用,提高协助效率。 下面就详细将一下,如何在本地服务器上搭建一个hitchhiker服务供公司团队使用。
1. 基础环境要求
hitchhiker的github官方地址:https://github.com/brookshi/Hitchhiker
搭建的环境要求:
nodejs 7.60+
mysql 5.7+
这些环境的安装这里就不赘述了,不会的请参考《Centos7.2 通过yum安装Mysql5.7》和上面的rap2的搭建文档,其中有nodejs的安装。
2. 下载安装包
# 下载安装包
wget https://github.com/brookshi/Hitchhiker/releases/download/v0.14/Hitchhiker.zip
# 解压安装包
unzip Hitchhiker.zip -d Hitchhiker
3. 直接运行安装界面服务
# 开放安装的web服务端口
firewall-cmd --add-port=9527/tcp --permanent
firewall-cmd --reload
# 启动服务,在Hitchhiker文件夹内
cd build
node setup.js
运行完node setup.js后,shell界面就会卡着但是没有任何输出,这是已经开启了安装的web端服务,在浏览器中输入如下地址:http://ip:9527/setup_cn.html 打开安装界面。当然,在此之前需要记得开放端口。会出现如下界面,一步步进行配置即可:
点击提交后,会等待5秒,然后自动进行跳转到已经启动的服务。当然了,还是要开端口啊,你在配置的时候配的什么服务端口记得要在服务器上开发,不然访问不了。
到此,就算是完成了服务搭建。服务启动后,是以pm2的进行管理的,pm2 list可以查看进程状态。
4.自主修改配置文件
服务虽然启动了,但是其实配置远远不止安装界面列出的这些,安装界面设置的配置在build/pm2.json中可以查看到,除此之外,直接修改appconfig.json也可以,如下是hitchhiker的主要配置:
# 修改配置文件,进入Hitchhiker文件夹中执行
vim appconfig.json
----------------------------------------------------------------
{
"app": {
"env": "DEV",
"host": "http://localhost:8080/", # 设置运行的ip和端口
"port": 8080, # 使用nginx做代理时可以使用这个端口
"api": "http://localhost:8080/api/", # API接口,调试用
"language": "zh", # 语言,中文:zh, 英文:en
"encryptKey": "hitchhikerapi",
"encryptPassword": true, # 是否对数据库里的用户密码加密
"defaultPassword": "123456", # 新帐号的默认密码
"tempUser": "[email protected]", # use without login时使用的用户账号
"tempDelKey": "test",
"sync": true, # 是否支持同步,这里开启自动同步
"syncInterval": 30, # 同步间隔,单位(秒), 最小值是10
"defaultHeaders": [ # 请求默认带的headers
"Accept:*/*",
"User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
"Cache-Control:no-cache"
],
"requestTimeout": 1800000, # 请求超时时间 (ms)
"scriptTimeout": 60000, # 脚本执行时间(毫秒)
"safeVM": false, # 是否使用安全脚本,如require
"enableUpload": true, # 是否支持上传脚本和数据
"inviteMemberDirectly": true # 不通过邮件验证来邀请成员
},
"db": {
"host": "192.168.9.80", # mysql 的host
"port": 3306, # mysql端口
"username": "root", # mysql 用户名
"password": "123456789", # mysql密码
"database": "hitchhiker" # mysql 数据库
},
"schedule": {
"duration": 60, # schedule 监测时间间隔(秒)
"storeUnit": "count", # schedule 存储的单位,支持按个数存 count 和按天存: day
"storeLimit": 50, # schedule 存储的大小
"storeContent": "forFail", # schedule record response 是否存储, all表示所有都存下来, forFail表示只存失败的, none表示都不存(这会很大影响数据库大小和性能)
"pageSize": 20 # schedule record 在浏览器端显示的一页的个数
},
"stress": {
"stressType": "node", # 压力测试的类型,默认为node,内置的,还有go,需要部署hitchhiker-node,设为none时禁用
"storeMaxCount": 5, # 压力测试表最大长度
"stressHost": "", # 压力测试的host,为空时默认使用去掉端口的app的host
"stressPort": 11010, # 压力测试的端口
"stressUpdateInterval": 1000 # 压力测试实时更新时的间隔(毫秒)
},
"user": {
"registerMailConfirm": false # 注册是否需要邮箱验证
},
"mail": {
"host": "http://email.hitchhiker-api.com/api/mail/", # mail默认接口
"customType": "smtp", # 是否需要自定义mail,可以使用 "api" 或 "smtp"
"customApi": "http://", # custom为"api"时会使用这个mail接口, Hitchhiker会post {target, subject, content}到这个接口
"smtp": { # custom为"smtp"时使用这块,内容自行填写
"host": "smtp.exmail.qq.com",
"port": 465,
"tls": true, # 是否需要走tls加密
"user": "***@qq.com", # smtp用户名
"pass": "****", # smtp密码:
"from": "", # 发邮件的邮箱,默认空会使用user,
"nickname": "", # 昵称:
"rejectUnauthorized": false # 证书验证不通过时是否报错
}
}
}
----------------------------------------------------------------
# 以上配置,在安装界面中已经配置过的可以不用再修改配置,在pm2启动服务时会自动读取build/pm2.json文件中的配置参数。
# 修改完配置后,要生效,需要重启一下服务,用pm2命令查看管理进行并重启
pm2 list
pm2 restart
OK,到此就完成了hitchhiker的搭建部署,然后就可以正常使用了。至于使用方法,详细参见github上的中文文档:
《http://doc.hitchhiker-api.com/cn/introduction.html》