前言

版权归作者所有,如有转发,请注明文章出处:https://xiaoduoduo.github.io/archives/

背景

1、 测试是检验程序质量的保证,而自动化测试是提高测试效率的最好方式。就目前来说,通过UiAutomator,Robotium、Monkey,Appium 等工具。配合测试开发所写的测试脚本,要实现一个自动化测试的工作其实并不难,难得是Android的兼容性测试,由于Android设备的多样性,导致了各种机型的适配问题是测试最容易忽视的地方。

2、 如何在多机型上进行自动化测试呢?目前Open STF(Smartphone Test Farm)的解决方案,其官网的地址是:https://openstf.io/。

3、 这个系统类似于目前很流行的云测服务比如Testin,虽然网页上提供的设备很想模拟器中的设备,但是实际上都是真机。

Open STF的功能

STF工具( Smartphone Test Farm),基于NodeJS编写,可用于Android设备的远程管理。

1、 在Web上支持管理上百个android设备。

2、 支持Android多个版本(2.3.3 ~ 5.1),而且不需要root。

3、 实时屏幕操作和显示。

4、 支持adb connnect远程连接调试。

5、 可以从PC机键盘输入到远程的android设备中。

6、 安装卸载APK。

7、 android设备信息的展示(如:网络状态、MIME、android版本、手机型号等等)。

8、 远程开关机、远程开关WIFI、截屏、LogCat等等。

可以看两张直观的图:

Open STF环境的搭建

安装简介

Github地址:https://github.com/openstf/stf

官方推荐是用Linux系统或者OS X系统搭建,并不推荐使用Windows环境。

对于环境的要求:

1、 Node.js >= 6.9 (latest stable version preferred)

2、 ADB properly set up

3、 RethinkDB >= 2.2

4、 GraphicsMagick (for resizing screenshots)

5、 ZeroMQ libraries installed

6、 Protocol Buffers libraries installed

7、 yasm installed (for compiling embedded libjpeg-turbo)

8、 pkg-config so that Node.js can find the libraries

安装环境

本蚊使用的系统环境:ubuntu 64位,kernel version 4.4.0
安装的方法有两种:

方法1:使用官方的文档一步一步安装。
官方文档
https://github.com/openstf/stf/blob/master/doc/DEPLOYMENT.md

其他博客地址:http://blog.csdn.net/addisonko/article/details/50912357

很多文章介绍的装stf要先装一堆工具,然后使用npm install -g stf安装到系统中,大部分人会发现,由于网络或者其他原因,npm install -g stf方式也不太容易成功。

方法2:推荐使用docker容器来搭建,根据我的搭建经验,docker容器确实更方便一些。

在之前的搭建环境过程中使用方法1遇到很多问题(包括版本的兼容,stf下载不下来,权限等问题),推荐使用方法2搭建环境。本手册介绍的是方法2.

Docker的简介和安装

Docker的简介

Docker的三大核心概念:

镜像、容器、仓库

镜像:类似虚拟机的镜像、用俗话说就是安装文件。

容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,
可以将其启动、开始、停止、删除、而这些容器都是相互隔离、互不可见的。

仓库:类似代码仓库,是Docker集中存放镜像文件的场所。

Docker的安装之Firstblood

在Ubuntu系统下打开终端 分别使用如下几条命令:

uname -r  // 查看版本
su  // 切换root
apt-get update  // 更新配置
apt-get install -y docker.io  // 安装docker
service docker start // 启动docker服务

检查是否安装成功 docker version 看到如下信息,恭喜你,安装成功!!!

STF相关镜像的拉取

获取镜像

在Ubuntu系统下打开终端 分别使用如下几条命令:

docker pull openstf/stf:latest  // 拉取stf镜像
docker pull sorccu/adb:latest  // 拉取adb镜像
docker pull rethinkdb:latest  // 拉取rethinkdb数据库镜像
docker pull openstf/ambassador:latest  // 拉取ambassador镜像
docker pull nginx:latest  // 拉取nginx镜像

举几个截图的例子:

检测镜像

输入命令:

docker images  // 查看所有镜像

启动STF容器

接着在终端 分别使用如下几条命令:

启动容器

1. 首先启动一个数据库:

docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090

其中860e60ac3c44d14f76ae6c1efb77d20c1d058c178512934cedbb3985f8f13e66是从容器的id号,每个容器的id号是唯一的。

2. 然后启动adb service

docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest

3. 最后启动stf

docker run -d --name stf --net host openstf/stf stf local --public-ip 192.168.228.129

其中 ip填写你自己本地的ip地址。
查看ip ifconfig

查看镜像

可以查看启动起来的镜像:

docker ps

打开地址

使用浏览器打开如下地址:http://192.168.228.129:7100/#!/devices

这时候会看到一个登录页面,至此 环境搭建成功。
账号和邮箱不需要注册,按照规则输入 即可。
进入页面。

点击use,可以操控手机:
可以使用adb命令来操作手机。
可以查看log日志等。
在这个界面中,开发者就可以根使用模拟器一样来操作远程设备了。唯一不同的是,这个是真实的设备而不是模拟器。国内很多测试公司头提供了这样的服务。
这些服务商提供的功能大同小异,但是公网的云测试服务完全依赖于网速,其画面的流畅度远不及内网Open-STF方案。

踩坑

相关资源被锁

安装更新的时候提示相关资源被锁,无法下载更新 使用如下命令进行解锁

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
root权限下可以不用sudo

STFService disconnect

搭建好系统之后 插入手机,打开 http://192.168.228.129:7100/#!/devices ,然后查看找到了设备,状态先是prepare 然后过了几秒又 disconnect了。切换了 火狐 google浏览器也是这样的问题。

最后通过查看log:

INF/device:plugins:service 3434 [621QECQT4RS7A] Launching service
FTL/device 3434 [621QECQT4RS7A] Setup had an error Error: Service had an error: "Error: Not found; no service started."
INF/device:resources:service 3566 [621QECQT4RS7A] Checking whether we need to install STFService

提示手机端的stfservice没有启动起来。(就是有些手机不允许直接启动service,因此我们如果按照如下步骤是不能达到目的的)
启动手机端的service然后就可以连接ok。

Android App自动化测试: OPEN-STF环境搭建相关推荐

  1. App自动化测试介绍和环境搭建

    一.App自动化工具介绍 作为近几年兴起的测试类型,App自动化测试正在变得越来越流行. 当前主流的App自动化工具有:Appium,Robotium,Espresso,Calabash等. 这里我们 ...

  2. APP自动化测试——Appium运行环境搭建保姆级教程

    APP自动化测试运行环境比较复杂,稍微不注意安装就会失败.我见过不少朋友,装了1个星期,Appium 的运行环境还没有搭好的. 搭建环境本身不是一个有难度的工作,但是 Appium 安装过程中确实存在 ...

  3. Linux下app自动化测试脚本 开发环境搭建

    注!!!(作者电脑为Ubuntu20 不同发行版可能存在些许差异) 需要环境如下 java Android sdk Android模拟器 python appium java java可以直接使用ap ...

  4. 高版本Android真机逆向测试环境搭建

    高版本Android真机逆向测试环境搭建 618购入了新机Xiaomi K50,真滴便宜又好用,续航很强界面很丝滑.正好拿来做逆向测试机? 怎么可能!这也太奢侈了!不过淘汰的Xiaomi Note 7 ...

  5. 【原作者:吴秦(Tyler)http://www.cnblogs.com/skynet/archive/2010/04/12/1709892.html】Android开发之旅:环境搭建及HelloWo

    Android开发之旅:环境搭建及HelloWorld 2010-04-12 00:45 by 吴秦, 801360 阅读, 138 评论, 收藏, 编辑 --工欲善其事必先利其器 引言 本系列适合0 ...

  6. Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具)

    Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具) 在Android发展前景相当好的情况下,本人最近搜集了一些关于Android的相关资源,当然包含以前发布的博客内容,进行了一 ...

  7. Appium APP UI自动化测试简介与环境搭建

    一. app自动化测试背景 移动终端越来越多,手机应用也越来越多 App回归测试用例越来越多,但全量回归很消耗时间 移动端碎片化严重,尤其是Android端(兼容性就是碎片化的体现,有很多厂商.机型. ...

  8. docker always_Ubuntu+Docker+STF环境搭建

    Ubuntu 提前先安装配置好 Ubuntu server 14.04.5 参考资料:Ubuntu 16.04 Server 版安装过程图文详解 Dcoker安装 Ubuntu 14.04/16.04 ...

  9. STF环境搭建运行及踩坑记录

    最初是在centos环境上搭建STF,由于种种依赖缺失.nodejs/npm版本不兼容.以及无解的"Segmentation fault (core dumped)"错误,最终还是 ...

最新文章

  1. 突破性进展!上海光机所成果登上《Nature》封面!
  2. 云数据管理公“云信达”获东方富海数千万A轮投资
  3. linux线程间通信优点,进程间通信与线程间通信【转】
  4. Druid 在spring中的配置
  5. mysql privileges_[转]mysql privileges
  6. Python ORM框架之 Peewee入门
  7. 任正非:只有教师待遇得到提升 教育才会较大发展
  8. ubuntu 1604搭建hdp2.4 Hadoop
  9. KVM之Live Migration
  10. 浅论 C++ 的复杂性
  11. 基于FPGA的并行计算技术
  12. 第二课--C语言基础(3部分--共三部分)
  13. 多款免费可商用的微信小程序开源源码推荐(商城类)
  14. PyQt5快速入门教程4-QtDesigner设计登录界面
  15. 数据库--分库分表中间件--选型/对比/框架
  16. Linux返回上一级目录的命令
  17. 使用Matlab2019b测试音频系统的频响(FreqResponse)与脉冲响应(ImpulseResponse)
  18. Oracle中Clob类型处理解析
  19. J2EE里面的'2'是什么意思
  20. 【idea】Error:java: Annotation processing is not supported for module cycles. Please ensure that all..

热门文章

  1. 计算机系统:程序Hello
  2. Chrome浏览器已开启自动保存密码,但仍无法自动保存密码的解决办法
  3. 为啥GE云盒老显示服务器出现异常,ge云盒服务器出现异常
  4. pytorch加载语音类自定义数据集
  5. Unity3D技巧之小地图的实现
  6. 研发效能双周报 10 月 vol.2 | 两份技术前瞻,哪些新技术将助力效能提升?
  7. 计算机网络中关于路由器的作用
  8. 【游戏设计模式】之三 状态模式 有限状态机 Unity版本实现
  9. xgboost学习样例解析之binary classification
  10. 星际密码———递归式