STF
STF的核心功能可以理解为:“同步图像” + “点击”。前者使用minicap完成,后者依赖minitouch。
虽然目前依然是3.4.1版本,但由于增加了很多定制化的内容,所以从——
STF的核心功能可以理解为:“同步图像” + “点击”。前者使用minicap完成,后者依赖minitouch。
虽然目前依然是3.4.1版本,但由于增加了很多定制化的内容,所以从——
中文搜索 App开源测试框架,大概率可以看到下面这个文章的变种——
文章保存在微信上,依然可以找的,而TMQ(Tencent Mobile Quality Center http://tmq.qq.com)、GT(http://gt.qq.com)本身似乎本身随着业务调整已经找不到入口了。现在统一为 WeTest平台
云测Testinhttps://www.testin.cn/
WeTest腾讯质量开放平台 https://wetest.qq.com/
阿里移动测试平台 http://mqc.aliyun.com/ 到https://www.aliyun.com/product/mqc
华为云测试 https://deveco.huawei.com/v2/
百度MTC http://mtc.baidu.com/
UC 研发效能产品内测邀请——云真机、自动化测试、WEB 前端监控 https://yanshu.effirst.com/
Appium 目前的事实上通用方案
Macaca 轻量级的Appium,by 阿里巴巴
idb Facebook自己不再维护WebDriverAgent之后,自研了idb方案。idb is a flexible command line interface for automating iOS simulators and devices
STF之Provider系列六:brew里介绍里一些基础用法。
###容器访问
外部访问容器
启动容器docker container ls
进入容器 docker attach container_id
退出容器不关闭容器 Ctrl+q Ctrl+q
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
如果有用这个镜像启动的容器存在(即使容器没有运行),那么同样不可以删除这个镜像。之前讲过,容器是以镜像为基础,再加一层容器存储层,组成这样的多层存储结构去运行的。因此该镜像如果被这个容器所依赖的,那么删除必然会导致故障。如果这些容器是不需要的,应该先将它们删除,然后再来删除镜像。
代码看到哪里记到哪里。可参考Stf源码解读
参考示例教程,在github申请好OAuth Apps(settings-Developer settings-OAuth Apps-new),配置好对应的认证字段,就可以完成使用了。
STF之Provider系列五里的前提条件是已经获取到里源码。在源码目录执行上面到脚本。
TL, DR.
需要过多的准备工作,暂时放弃准备本地化的bottle for brew
针对每个formulae,大概需要这样的几个步骤:
brew --cache --force-bottle formulae
获取到适用于当前MacOS版本的缓存地址如何使用源码进行安装,可以先将源码包下载下来,然后复制到cache目录下
pre-download a formula
mv source-code.tar.gz $(brew --cache -s formulaName
独立服务-未完成
目前local方式已经跑起来,如果进行分布式接入设备?官方提供都都是docker 方式
Provider role The provider role requires the following units, which must be together on a single or more hosts. adbd.service stf-provider@.service
STF之复用ADB一里满足了设备复用的场景。
昨天出现的现象是连接设备时,图像连接到了“其他”设备上。 ——今天定位到是因为独立到provider提供设备时,分配到ws连接地址与也有设备重复。
EventEmitter node.js 如何使用Promise
系列一后续,现学现卖,逻辑梳理如下——
需要Mac环境已经安装了XCode,因为环境编译时需要C++的编译器。
STF之Provider系列五支持脚本自动部署。目前国内到网络环境导致使用brew install 各种依赖应用时:1)耗时;2)不稳定。
在一台新的机器上从头搭建STF的provider环境。
新机器上的Node环境为V12 版本,没有adb环境。 折腾到最后还是跑起来了。记录一下遇到的可能问题:
#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二 获取到设备使用、停止使用的切入口之后,甚至不需要了解设备使用的业务逻辑,就可以直接进行数据库操作,完成记录设备使用时长的功能。
STF之RethinkDB一结束了数据库rethinkdb的基本使用。
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之环境搭建可能的几个坑里提到过
参考: stf on ubuntu [centos7][stf] 环境搭建
一、安装npm
# https://github.com/nvm-sh/nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
# 主动生效
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
二、安装nrm
Node环境 + 依赖 rethinkdb graphicsmagick zeromq protobuf yasm pkg-config
# go to the directory that you unpacked rethinkdb.exe in
rethinkdb.exe -d c:\RethinkDB\data\
graphicsmagick 正常安装完成,可执行gm命令即可。系统安装后会自动添加环境变量 c:\program files\graphicsmagick-1.3.33-q16
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.
yarn的确会快得飞起。 STF之Yarn一中简单使用后,从头开始使用yarn安装STF。
STF consists of multiple independent processes communicating via ZeroMQ and Protocol Buffers.
使用ZeroMQ进行zmq socket通信,使用Protocol Buffers定义通信内容。
只使用provider服务的话,可以不安装rethinkdb(恰好这是最大的一个文件)。brew install graphicsmagick zeromq protobuf yasm pkg-conf
STF使用命令行stf local
方式运行。
Node.js 命令行程序开发教程,执行了 npm link后,实际上执行的就是 lib/cli/index.js
中的命令。
使用yargs模块实现命令行支持
假如还有一个Java应用也需要连接、管理设备,是否可以和STF共享?
在重温了官方说明以及google之后,以下方案应该是可行的:
遇到实际的apk包打包问题导致在低版本上不兼容,导致安装失败。 这种情况下STF是给不出来错误提示的。
看后台log,报错信息类似——
TL, DR.
GraphicsMagic的依赖不满足,无法支持jpeg图片的resize功能。
解决方案: 安装对应的依赖,目前截图功能使用的为jpeg格式,仅安装jpeg支持即可sudo apt install libjpeg9
STF之RethinkDB三:设备使用里已经在数据库里记录里设备使用时长到信息,需要一个前端页面进行展示。
STF之新增页面三:照猫画虎画虎不成反类犬,一个页面加两天。
目前STF之新增页面二:融合方案对我来说要求还比较高,先照葫芦画瓢吧。
Error: listen EADDRINUSE :::8080 at Server.setupListenHandle 这是端口被占用导致的,更换端口即可
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部署在内网环境上,办公网络访问时时快时慢。需要定位一下到底是什么原因。
使用ping周期性访问服务器地址,记录显示的确网络不稳定——
这是个体力活。
先要把设备信息先记录下来,类似这样都信息需要先手动录入——
USB调试打开都开关并没有统一到“点击7次内核版本”上,需要在手机信息里试。比如小米是在MIUI到版本上多点击几次——倒是发现了隐藏属性:点击3次内核版本,打开cit测试;点击处理器多次,开启抓log。
~~STF之OAuth探索一~~删除备份
2019.07.09 21:56:49 字数 306 阅读 118
解决沟通障碍 达成共识 减少歧义
原生Monkey: