Android App自动化测试: OPEN-STF环境搭建
前言
版权归作者所有,如有转发,请注明文章出处: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环境搭建相关推荐
- App自动化测试介绍和环境搭建
一.App自动化工具介绍 作为近几年兴起的测试类型,App自动化测试正在变得越来越流行. 当前主流的App自动化工具有:Appium,Robotium,Espresso,Calabash等. 这里我们 ...
- APP自动化测试——Appium运行环境搭建保姆级教程
APP自动化测试运行环境比较复杂,稍微不注意安装就会失败.我见过不少朋友,装了1个星期,Appium 的运行环境还没有搭好的. 搭建环境本身不是一个有难度的工作,但是 Appium 安装过程中确实存在 ...
- Linux下app自动化测试脚本 开发环境搭建
注!!!(作者电脑为Ubuntu20 不同发行版可能存在些许差异) 需要环境如下 java Android sdk Android模拟器 python appium java java可以直接使用ap ...
- 高版本Android真机逆向测试环境搭建
高版本Android真机逆向测试环境搭建 618购入了新机Xiaomi K50,真滴便宜又好用,续航很强界面很丝滑.正好拿来做逆向测试机? 怎么可能!这也太奢侈了!不过淘汰的Xiaomi Note 7 ...
- 【原作者:吴秦(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 ...
- Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具)
Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具) 在Android发展前景相当好的情况下,本人最近搜集了一些关于Android的相关资源,当然包含以前发布的博客内容,进行了一 ...
- Appium APP UI自动化测试简介与环境搭建
一. app自动化测试背景 移动终端越来越多,手机应用也越来越多 App回归测试用例越来越多,但全量回归很消耗时间 移动端碎片化严重,尤其是Android端(兼容性就是碎片化的体现,有很多厂商.机型. ...
- docker always_Ubuntu+Docker+STF环境搭建
Ubuntu 提前先安装配置好 Ubuntu server 14.04.5 参考资料:Ubuntu 16.04 Server 版安装过程图文详解 Dcoker安装 Ubuntu 14.04/16.04 ...
- STF环境搭建运行及踩坑记录
最初是在centos环境上搭建STF,由于种种依赖缺失.nodejs/npm版本不兼容.以及无解的"Segmentation fault (core dumped)"错误,最终还是 ...
最新文章
- 突破性进展!上海光机所成果登上《Nature》封面!
- 云数据管理公“云信达”获东方富海数千万A轮投资
- linux线程间通信优点,进程间通信与线程间通信【转】
- Druid 在spring中的配置
- mysql privileges_[转]mysql privileges
- Python ORM框架之 Peewee入门
- 任正非:只有教师待遇得到提升 教育才会较大发展
- ubuntu 1604搭建hdp2.4 Hadoop
- KVM之Live Migration
- 浅论 C++ 的复杂性
- 基于FPGA的并行计算技术
- 第二课--C语言基础(3部分--共三部分)
- 多款免费可商用的微信小程序开源源码推荐(商城类)
- PyQt5快速入门教程4-QtDesigner设计登录界面
- 数据库--分库分表中间件--选型/对比/框架
- Linux返回上一级目录的命令
- 使用Matlab2019b测试音频系统的频响(FreqResponse)与脉冲响应(ImpulseResponse)
- Oracle中Clob类型处理解析
- J2EE里面的'2'是什么意思
- 【idea】Error:java: Annotation processing is not supported for module cycles. Please ensure that all..