背景

最近有时间浏览网站看stf是开源的,自己也想试着搭建一下。历经各种曲折,记录下这一个过程作为备忘,也给其他初次使用stf的新手们提供一个参考。
手边只有一个win7机器,只好自己从建虚拟机开始。这里推荐使用centos7,centos7上自带安装了java,而且有些东西不需要自己再安装。

参照

分别参考了站内和站外两个,很感谢他们在这个过程中为我解答的问题,推荐一下。
超级链接
超级链接

过程

环境准备:

1.安装vaware的最新版本vmware 14pro
2.下载centos7的镜像,使用镜像安装centos7虚拟机,开始使用的是NAT模式,实现了宿主机和虚拟机可以相互通信,但搭建好后别人访问不了,在其他同学帮助下才知道需要使用桥接方式其他机器才能访问。

依赖安装:

3.参照超级链接超级链接基本就能完成,这里就不重复了。

下载源码

1.在本地创建源码路径
2.使用git clone 命令将源码下载到本地,源码下载过程可能很慢,我直接下载的zip包。

检测stf依赖是否完整

1.源码目录下修改stf文件的权限,添加文件可执行权限:chmod -R +x bin,也可以使用 chmod -R +x stf 命令只对stf文件添加可执行权限。
2.执行./stf doctor,检测环境是否完整,如果不完整按照错误提示修改。
3.在源码路径下执行cnpm install,会在源码路径下生成node_modules目录,并安装package.json中的依赖包。中间安装bower可能会有错误提示,因为这个安装需要root权限,可单独安装,单独安装则执行bower install --allow-root。在其他同学帮助下,在package.json中修改bower的安装权限不会报错,也是添加 --allow-root。
3.启动rethinkdb
4.连接手机的主机adb服务打开,我用的1.0.40,使用到的命令是adb nodaemon server -a,默认使用到是5037端口,也可以使用-P指定为其他端口,这边如果修改端口的话,启动stf服务的命令端口也要修改。
5.启动stf服务:./stf local --public-ip xxx.xxx.xxx.xxx --port 7100 --adb-host xxx.xxx.xxx.xxx --adb-port 5037 --allow-remote &
6.本地访问stf服务
7.远程访问stf服务

启动stf服务各个选项说明:

local,允许本地使用127.0.0.1:7100访问stf服务;--public-ip xxx.xxx.xxx.xxx,部署stf服务的主机ip;--port 7100:stf服务的端口号;--adb-host xxx.xxx.xxx.xxx,连接着手机的主机ip; --adb-port 5037,连接手机的主机上adb服务的端口; --allow-remote:允许远程访问stf服务;&:linux 后台执行服务。
在启动服务过程中stf会打印很多的日志,比如连接数据库,数据库各种设置,triproxy,processor,reaper,provider,auth-mock,app,api,storage-temp,websocket和手机的交互等,这些日志在以后读源码以及修改源码的过程中都很有帮助。

stf文档

stf的开发者在README.md,doc\DEPLOYMENT.md和doc\API.md中提供了很多使用过程中可能遇到的问题以及部署建议,还有安全性问题,对在使用过程中遇到的问题很有帮助。
另外作者还提供了docker安装方式,这需要安装docker工具pull下所有依赖,安装过程简单很多。修改源码使用docker容器,需要注意 docker 拉下的代码应该是修改后的。stf是使用nodejs开发的,如果有些nodejs基础入门上手更快些,因为我开始不懂nodejs,反反复复弄了好几天才明白些。


↙↙↙阅读原文可查看相关链接,并与作者交流