- 什么是移动测试
- 移动端测试是指移动应用进行的测试,对移动应用的业务、兼容性、健壮性等一系列需求验证
- 移动端测试分类
- APP功能测试
- APP自动化测试(本阶段学习)
- APP安全测试(数据、adb相关命令)
- 扩展
- 接口测试
- 性能测试
- 客户端(应用本身性能测试 monkey)
- 服务器(压力测试、响应时间)
- APP功能测试
- 业务逻辑正确性测试
- 产品文档
- 兼容性测试
- 系统版本
- 安卓:定制版和官方版本
- 定制版:华为、oppo、vivo、小米、三星
- 官方版本:5.1、7.1.1、6.0、8.0、27
- Ios:官方版
- 12.1、11.4.1、12.0.1
- 安卓:定制版和官方版本
- 分辨率
- 1920*1080 1280*720、2280*1080
- 网络情况
- Wifi
- 4G
- 以上数据来源:
- 腾讯移动分析:https://mta.qq.com/mta/data/device/os
- 移动观象台:mi.talkingdata.com
- 百度
- 系统版本
- 异常测试
- 热启动
- 将应用置于后台一段时间,再将应用从后台切换到前台,关注:切换到前台后,是否保留置于后台界面
- 冷启动
- 应用在后台未运行,重新启动应用
- 网络切换&中断恢复
- 网络切换:wifi<=>4G<=>3G
- 中断恢复:网络下载中断,是否继续可恢复下载
- 电话&信息中断恢复
- 说明 :电话信息对移动应用的影响,
- 关注:在使用应用中,有电话或信息打断正在使用的应用,打断之后,应用保留来电之前的界面
- 热启动
- 升级&安装卸载测试
- 升级:
- 相邻版本:如5.0.1升级到5.0.1
- 夸级版本:如果5.0.1升级到7.0
- 关注:版本差距大的,功能模块相关比较大,是否能正常安装
- 安装:
- 首次安装:
- 关注:配置数据是否正常处理、依赖插件是否能自动安装
- 卸载后安装(非首次安装):
- 关注:如果安装之前是保留之前版本配置数据,是否能自动检测到并且正常安装
- 首次安装:
- 卸载:
- 首次卸载
- 如果选择保留配置数据,配置数据是否保留
- 非首次卸载
- 如果不保留配置数据,配置数据或应用文件是否删除干净
- 首次卸载
- 升级:
- 健壮性测试
- 手机资源消耗
- 资源指的是CPU、内存、电量
- 资源测试工具:360、腾讯GT
- 流量消耗
- 检测应用以流量的消耗
- 崩溃恢复等测试
- 应用在崩溃后,能重新启动
- 崩溃:借用monkey工具
- 手机资源消耗
- 业务逻辑正确性测试
- APP自动化测试(本阶段学习)
- 概念
- 让程序代替人为对移动应用功能验证的过程
- 并不是所有的应用功能都适合进行自动化
- 概念
- APP安全测试
- 通过安全测试技术,保证APP尽可能的不存在安全漏洞
- 中小型公司:云测平台(testin云测,阿里云)
- 中型公司:云测平台、安全测试人员
- 大型公司:安全测试团队
- 如果自己考虑安全方面的知识可参考的网址:http://netsecurity.51cto.com/art/201712/561665.htm
- 环境搭建
- Java
- AndroidSDK
- 模拟器
- 扩展:path环境:
- 输入命令时,首先搜索是否为内部命令(cd\dir\ipconfig)
- 搜索是否为本地当前目录下可执行文件
- 搜索path内的路径(以分号做分隔)
- Java环境
- 安装JDK,默认安装即可
- 将安装文件添加到paht变量中(参考讲义)
- 验证:cmd输入java-version显示信息
- androidSDK(安卓开发工具包)
- 为什么要搭建SDK
- 移动端定位工具uiautomatorviewe
- 如何搭建
- ..\android-SDK\tools
- ..\android-SDK\platform-tools
- 将以上两个路径添加到path环境变量中即可
- 如何验证
- 打开cmd输入adb version显示响应的版本号
- 模拟器
- 为什么安装模拟器
- 移动应用就是测试以移动手机内APP,APP必须安装到手机内
- 移动自动化核心目标是测试移动应用的功能,本质上模拟器或真机是没有区别的
- 如何安装
- 执行genymotion-2.11.0-vbox.exe(是一集合程序,包含genymotion和virtualbox)->不需要更改配置,直接下一步默认安装
- 安装完genymotion继续等待,会提示安装virtualbox,继续安装,期间会提示安装oracle插件
- 说明:
- geymotion:加载virtualbox设置虚拟机
- virtualbox:导入离线安卓镜像文件
- 为什么安装模拟器
- ADB命令(安卓 调式 工具)
- 为什么要学习ADB命令
- 功能测试操作APP应用时,记录的日志都需要通过 ADB来获取
- 自动化执行时,有些必传的参数,需要ADB命令来获取
- Adb全名andorid debug bridge,是一个debug工具
- 为何称之为bridge
- 因为adb是一个标准的c\s结构的工具,是要连接开发电脑和调试手机的
- ADB通讯原理
- Client:客户端发送adb命令à开发电脑中
- Server:监听客户端发送adb命令及手机内守护进程返回的结果à开发电脑中
- Daemon:守护进程,在手机或模拟器中,主要用来接收server发送的命令à手机中
- 三者之间的通信原理图
- Client<->server<->daemon
- 为什么要学习ADB命令
- Adb常用命令
- Adb –help:帮助命令(--help可以忽略)
- Adb start -server:启动服务程序
- Adb kill -server:关闭服务程序
- 提示:启动服务程序、关闭服务程序正常情况下,不需要人为操作,只要发送adb命令会自动开启
- 注:当adb服务出现死机状态,需要人为杀掉,就要用到adb kill-server
- Adb devices:获取设备号
- 目的
- 查看模拟器或真机是否和电脑连接
- 跑自动化脚本时,需要获取设备号(设备号为必传参数)
- 目的
- 查看获取系统版本
- Adb shell getprop ro.build.version.release
- 提示:自动化必传参数(技巧:可以随便编写版本号,运行一次,系统报错,在错误信息中可以查看到正确的版本号)
- Adb push:将文件发送到手机
- 格式:adb push 电脑路径\文件名称.后缀名 /sdcard
- 如:adb push E:\lili \a.txt /sdcard
- Adb pull:从手机中获取文件到本地电脑
- 格式:adb pull sdcard /手机文件.后缀名c:\新建文件夹
- 如:adb pull sdcard/a.txt E:\lili
- 提示:输入adb命令时,注意是否在本地电脑目录下,而不是在手机路径下
- 格式:adb pull sdcard /手机文件.后缀名c:\新建文件夹
- Adb logcat :查看手机实时运行日志
- 使用
- Adb logcat > 日志保存路径
- 如:Adb logcat > E:\lili.a.txt
- 查看:一般搜索err
- Adb logcat > 日志保存路径
- 使用
- 手机shell命令行
- Adb shell
- adb shell dumpsys window windows | findstr usedApp:查看获取APP包名、启动名
- 包名:app应用唯一标识符(一般采用反向域名)
- 如:www.baidu.com 反向域名:com.baidu.www
- 启动名:页面的标识符(不是唯一的)
- 命令:adb shell dumpsys window windows | findstr usedApp
- 查找:com.android.settings/.SubSettings
- .com.android.settings:包名
- ..SubSettings:启动名
- 安装apk文件
- 命令:adb install apk路径
- 如:adb install E:\lili\ak.apk
- 卸载apk文件
- 命令:adb uninstall 包名
- 如:adb uninstall com.vcooline.ailke
- 提示:安装APK时,文件名称应该避免中文
- Apk启动时间
- 命令:adb shell am start -w 包名/启动名
- 关注 :TotalTime时间(总时间)
- 常用移动应用自动化测试工具
- Robotium
- 支持语言:JAVA
- 支持:android系统
- 不支持跨应用
- Macaca
- 支持语言:java、python、node.js
- 支持android系统和ios系统
- 支持跨应用
- 不选理由:参考资料少、使用量少
- Appium(本阶段学习)
- 支持语言:java、c#、python、php、perl、ruby、node.js
- 支持android系统和ios系统
- 支持跨应用
- 扩展:
- 自动化工具选择参考条件
- 是否支持跨应用(A应用内调用B应用)
- 是否支持native与webview
- Native:使用安卓或IOS系统原生控件,完成APP
- Webview:使用html完成的控件
- 是否支持toast消息获取
- Toast:一种黑底白字提示框(有时间限制)
- 自动化工具选择参考条件
- Robotium
- Appium背景介绍
- 开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用
- 由nodejs的express框架写的http server
- 安卓uiautomator框架
- Appium环境搭建
- 安装Appium服务器 Appium-desktop-1.2.7.exe
- 或者安装:npm install -m appium命令版服务端,需要科学上网
- 安装Appium python API库
- 命令:pip3 install Appium-Python-Client ==0.26
- 验证:pip3 show Appium-python-Client
- 进入python 进行导包 from Appium import webdriver不报错就可以
- 安装Appium服务器 Appium-desktop-1.2.7.exe