STF开源框架之minicap工具

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tianmi1988/article/details/49742365

1.minicap


1.1 minicap介绍

minicap是开源项目STF(Smartphone Test Farm中的一个工具,负责屏幕显示。

stf自己写了一个工具叫minicap用来替代原生的screencap,这个工具是stf框架的依赖工具之一,最近手头上的项目刚好由于帧率卡顿需要优化,刚好来在testerhome社区看到对STF的介绍,WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行

minicap工具是用NDK开发的,属于Android的底层开发,该工具分为两个部分,一个是动态连接库.so文件,一个是minicap可执行文件。但不是通用的,因为CPU架构的不同分为不同的版本文件,STF提供的minicap文件根据CPU 的ABI分为如下4种:

arm64-v8aarmeabi-v7a,x86,x86_64 架构。而minicap.so文件在这个基础上还要分为不同的sdk版本。这些都可以从Github地址:https://github.com/openstf/minicap下载而来


1.2 准备工作:推送测试手机需要的文件

查看CPU架构:adb shell getprop ro.product.cpu.abi
查看android版本level:adb shell getprop ro.build.version.sdk

根据上面获取的信息,将适合设备的可执行文件和.so文件push到手机的/data/local/tmp目录下,
如果你不想自己build这些文件可以去STF框架的源码下找到vendor/minicap文件夹下找到这些文件,将这两个文件push到我手机的/data/local/tmp目录下:

这里看到minicap可执行文件没有执行权限,adb shell进入到目录下chmod 777 minicap

minicap有可执行权限了,接下来测试一下minicap是否可用,其中-P后面跟的参数为你屏幕的尺寸 (我这里是华为P7,设置-关于手机-分辨率可以看到1080x1920)
adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0 -t

看到如上OK的消息,表面准备工作OK了。


2.安装Node.js

官网下载 https://nodejs.org/en/

这里用的最新的5.0版本

下载完成之后,双击"node-v5.0.0-x86.msi",开始安装nodejs,自定义安装在E:\nodejs下面。


该引导步骤会将node.exe文件安装到E:\nodejs目录下,并将该目录添加进PATH环境变量。

在cmd控制台输入:node -v,控制台将打印出:v5.0.0,出现版本提示表示安装成功。

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以使用cmd命令行输入"npm -v"来测试是否成功安装。如下图,出现版本提示表示安装成功。

本文要启动用例工程需要另外安装ws和express包 

npm install ws –g

npm install express -g

如果有设置代理必须先设置好代理再下载,

(如果密码中有@符号请更改密码,中括号是不要的,如果没有就连中括号一起略去)

npm config set proxy=http://[user]:[password]@[proxy_host]:[proxy_port]



3.Github上Minicap开源框架DEMO启动


3.1 启动手机端服务

启动minicap中的Demo,用上面测试的命令去掉最后的-t

 adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0



3.2 本地端口转发

上面其实是启动了一个socket服务器,我们需要跟该socket服务通信,首先我们要将本地的端口映射到minicap工具上,端口随意:

adb forward tcp:1717 localabstract:minicap

cd到example目录下在控制台输入 node app.js 回车


如果报错ws express找不到,而你确定已经在第二步安装nodejs步骤中已经安装

修改minicap中app.js引用的ws express路径为本地模块路径(前端懂得少,如果有其他方法希望不吝赐教)


控制台显示  Listening on port 9002


3.3 启动浏览器,查看手机屏幕

用chrome浏览器打开:http://localhost:9002/(其他浏览器请自测)

启动手机端的控制台刷刷刷地跑数据啊


浏览器看到的效果






猜你喜欢

转载自blog.csdn.net/tianmi1988/article/details/49742365
STF