STF

STF

STF的核心功能可以理解为:“同步图像” + “点击”。前者使用minicap完成,后者依赖minitouch。

虽然目前依然是3.4.1版本,但由于增加了很多定制化的内容,所以从——

App开源测试框架去哪儿了

link on JianShu

中文搜索 App开源测试框架,大概率可以看到下面这个文章的变种——

文章保存在微信上,依然可以找的,而TMQ(Tencent Mobile Quality Center http://tmq.qq.com)、GT(http://gt.qq.com)本身似乎本身随着业务调整已经找不到入口了。现在统一为 WeTest平台

STF之Docker系列一

link on JianShu

docker cp foo.txt mycontainer:/foo.txt docker cp mycontainer:/foo.txt foo.txt For emphasis, mycontainer is a container ID, not an image ID.

zeromq install require libsodium

./configure –without-libsodium above not work, see this

stf on ubuntu [centos7][stf] 环境搭建

apt-get install android-tools-adb

docker run -it –rm

容器在,镜像不能删除

如果有用这个镜像启动的容器存在(即使容器没有运行),那么同样不可以删除这个镜像。之前讲过,容器是以镜像为基础,再加一层容器存储层,组成这样的多层存储结构去运行的。因此该镜像如果被这个容器所依赖的,那么删除必然会导致故障。如果这些容器是不需要的,应该先将它们删除,然后再来删除镜像。

STF之Provider一键部署二

link on JianShu

TL, DR.

需要过多的准备工作,暂时放弃准备本地化的bottle for brew

针对每个formulae,大概需要这样的几个步骤:

  • 每个formulae都有不同MacOS下的对应版本,需要都下载下来 from https://bintray.com/homebrew/bottles
  • 针对对应的版本,需要知道对应都cached路径是什么,可以通过brew --cache --force-bottle formulae获取到适用于当前MacOS版本的缓存地址
  • 在不同到MacOS上重复执行上面两步,才能获取到不同版本下可用的缓存地址

如何使用源码进行安装,可以先将源码包下载下来,然后复制到cache目录下 pre-download a formula mv source-code.tar.gz $(brew --cache -s formulaName

STF之Provider系列三

link on JianShu

websocket的连接问题还没有解决。

昨天出现的现象是连接设备时,图像连接到了“其他”设备上。 ——今天定位到是因为独立到provider提供设备时,分配到ws连接地址与也有设备重复。

STF之Provider系列四

link on JianShu

环境准备

在一台新的机器上从头搭建STF的provider环境。

  • 需要adb服务
  • 可以执行 stf provider服务模块

新机器上的Node环境为V12 版本,没有adb环境。 折腾到最后还是跑起来了。记录一下遇到的可能问题:

STF之RethinkDB一

link on JianShu

quick start

quickstart

#install
npm install rethinkdb 
# start from where it is installed.
$ rethinkdb
...
...
Listening for intracluster connections on port 29015
Listening for client driver connections on port 28015
Listening for administrative HTTP connections on port 8080
Listening on cluster addresses: 127.0.0.1, ::1
Listening on driver addresses: 127.0.0.1, ::1
Listening on http addresses: 127.0.0.1, ::1
To fully expose RethinkDB on the network, bind to all addresses by running rethinkdb with the `--bind all` command line option.
Server ready, "gebitangHoster_wil" c4bc2619-a3aa-4edf-9d4e-5c85aee397ff

#use the drivers from Node.js like this:
$ node
r = require('rethinkdb');
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
  if(err) throw err;
  r.db('test').tableCreate('tv_shows').run(conn, function(err, res) {
    if(err) throw err;
    console.log(res);
    r.table('tv_shows').insert({ name: 'Star Trek TNG' }).run(conn, function(err, res)
    {
      if(err) throw err;
      console.log(res);
    });
  });
});


  
  
  

STF之Rethinkdb四:导入导出

link on JianShu

rethinkdb backup rethinkdb import

# export
rethinkdb dump -e stf.usageRecord -f record.tag.gz
# import
rethinkdb import -f usageRecord.json --table stf.usageRecord --force

使用导出功能rethinkdb dump需要安装对应的python driver。默认安装的sudo pip install rethinkdb版本为 2.4.2,跟安装的rethinkdb 2.3.6版本不兼容,会提示 No handlers could be found for logger "rethinkdb.logger"问题

STF之Yarn一

link on JianShu

Mac环境部署告一段落,同事多次建议为什么不用yarn。STF本身也包含了yarn.lock文件。简单学习一下yarn 的相关内容。

Yarn is a package manager for your code. Code is shared through something called a package (sometimes referred to as a module). A package contains all the code being shared as well as a package.json file which describes the package.

STF之环境搭建可能的几个坑

link on JianShu

  1. Error: listen EADDRINUSE :::8080 at Server.setupListenHandle 这是端口被占用导致的,更换端口即可

  2. fatal: unable to access ‘https://github.com/AdiDahan/ng-context-menu.git/': Could not resolve proxy: localhost 或者 proxy had an error Error: getaddrinfo ENOTFOUND localhost

本地的hosts文件导致的无法解析localhost,参考,使用SwitchHosts之类的软件更改hosts之后,生效的host文件需要保留以下内容——

STF之设备接入

link on JianShu

这是个体力活。

先要把设备信息先记录下来,类似这样都信息需要先手动录入——

打开USB调试

USB调试打开都开关并没有统一到“点击7次内核版本”上,需要在手机信息里试。比如小米是在MIUI到版本上多点击几次——倒是发现了隐藏属性:点击3次内核版本,打开cit测试;点击处理器多次,开启抓log。