精通移动App测试实战:技术、工具和案例

       本文是根据书籍《精通移动App测试实战:技术、工具和案例》进行学习记录,方便后期查阅,感谢书籍作者提供的学习机会。

目录

第1章 Android系统基础内容介绍

1.6创建模拟器

第2章JUnit框架基础

2.1Junit框架介绍

2.2Junit在Android开发中的应用

第3章 ADB命令

3.1Android调试桥介绍

3.2ADB相关指令实例讲解

3.3手机模拟器相关的一些操作命令实例详解

3.3.1模拟器上模拟手机来电命令实例详解

3.3.2模拟器上模拟发送短信命令实例讲解

3.3.3模拟器上模拟网络相关命令实例讲解

3.3.4修改模拟器的大小比例相关命令实例讲解

3.3.5模拟器的其它命令及如何退出模拟器控制台

3.4 模拟器相关命令实例详解

3.5创建安卓虚拟设备命令实例讲解

3.6 创建安卓项目相关命令实例讲解

第4章 Monkey工具使用       

4.1工具简介

4.2Monkey演示实例

4.2.1第一个Monkey示例(针对日历应用程序)

4.2.2如何查看Monkey执行过程信息

4.2.3如何保持设定各类事件执行比例     

4.3Monkey相关参数讲解

4.4Monkey相关命令介绍

4.5Monkey如何执行脚本

第5章 MonkeyRunner工具使用

5.1MonkeyRunner工具简介

5.2MonkeyRunner安装部署

5.3MonkeyRunner演示示例

5.4MonkeyRunner脚本手工编写

5.5MonkeyRunner样例脚本

第6章 Robotium 自动化测试框架

6.1Robotium 自动化测试框架简介

6.2Robotium环境搭建

6.3第一个Robotium示例(针对记事本应用程序)

6.4用Robotium实现对APK或有源码的项目实施测试

6.5用Robotium Recorder录制脚本

6.6Robotium获取控件的方法

6.7测试用例脚本的批量运行

6.8持续集成

第7章 自动化测试工具-UI Automator

7.1为什么选择UI Automator

7.2UI Automator演示示例

7.3 UI Automator 

7.4 UI Automator常见问题解答

第8章 自动化测试工具—Appium实战

8.1为什么选择Appium

8.2 Appium环境部署

8.3 Appium元素定位的3个利器

8.4多种界面控件的定位方法介绍

8.5 多种界面控件的操作方法介绍

8.6捕获异常、创建快照

第9章 移动平台性能测试

9.1 移动平台性能测试简介

9.2移动端性能测试工具

9.3 LoadRunner


第1章 Android系统基础内容介绍

1.6创建模拟器

  1. 关于模拟器使用:
  1. 模拟器在没有物理手机设备时对调试测试脚本程序非常有帮助
  2. 模拟器的执行效率要比同配置的真实手机设备低
  3. 模拟器因为相关的参数可配置,所以可以模拟操作系统版本的升级情况
  4. 模拟器因为相关的参数可配置,所以建议大家执行测试脚本用例时可以在低版本的系统测试其兼容性
  5. 模拟器和真实的物理设备还是有差别的,建议在做实际的自动化测试时还是要用真实的物理设备。

第2章JUnit框架基础

2.1Junit框架介绍

  1. 对于经常变化的项目而言敏捷开发适用性优于瀑布模型。
  2. XUnit系列的工具包括Junit(针对Java)、DUnit(针对Delphi)、NUnit(针对.Net)和PythonUnit(针对Python)等

2.2Junit在Android开发中的应用

1、JUnit4常用的几个Annotation介绍:

(1)@Before:初始化方法

(2)@After:释放资源

(3)@Test:测试方法,在这里可以测试一些测试用例,正常的、异常的测试用例

(4)@Ignore:忽略的测试方法

(5)@BeforeClass:针对所有测试,只执行一次,且必须为static void;

(6)@AfterClass:针对所有测试,只执行一次,且必须为static void;

2、断言:JUnit为我们提供了一些辅助函数,用来帮助我们确定被测试的方法是否按照预期的效果正常工作,通常把这些辅助函数称为断言。

第3章 ADB命令

3.1Android调试桥介绍

  1. ADB是Android提供的客户端/服务器架构的通用调试工具,主要由adb客户端、adb服务器、adb daemon(守护进程)3部分组成
  2. 任何模拟器或设备实例会取得两个连接端口,一个偶数端口用来控制与控制台的连接,一个基数端口用来控制与adb的连接。

 

3.2ADB相关指令实例讲解

1、adb devices了解物理测试设备或模拟器相关信息

  1. device状态:表示设备或模拟器已连接到adb服务器上,但并不代表设备或模拟器已经启动完毕可以操作,因Android系统启动时会先连接到adb服务器上,但Android系统启动完毕后,设备或者模拟器通常是这个状态。
  2. Offline状态:表明设备或模拟器没有连接到adb服务器或没有反应
  3. On device状态:表明没有物理设备或模拟器连接。       

2、adb install

(1)Android MM 模拟器设备安装

adb -s emulator-5554 install C:\Users\Administrator\Desktop\MMyingyongshangchang_10641.apk

(2)如果已安装应用,又不想卸载后再安装

adb -s emulator-5554 install  -r C:\Users\Administrator\Desktop\MMyingyongshangchang_10641.apk

(3)若只连接了一个物理手机设备或者一个模拟器设备

adb  install  C:\Users\Administrator\Desktop\MMyingyongshangchang_10641.apk

 

3、adb uninstall指令实例讲解

APP卸载方法:

  1. 方法一:通过物理手机或模拟器设备自带的卸载功能进行卸载
  2. 方法二:应用PC上安装的一些手机助手类工具软件来卸载
  3. 方法三:应用手机或者模拟器设备上安装的一些工具软件来卸载应用
  4. 方法四:应用adb uninstall命令卸载手机应用

 

4、adb pull指令实例讲解 手机端下载文件到电脑

5、adb push 指令实例讲解 将电脑上的文件传送到物理手机设备或模拟器。不仅能够传送文件,也能够传送文件夹到手机或者模拟器设备

6、Adb shell指令实例讲解

Adb shell +相关指令及其参数 来执行这些指令

例如:adb shell ls查看手机当前目录所有内容

adb shell、su  root(切换为root用户)、cd /data/data、ls

7、adb shell dumpsys battery指令实例详解 查看电池电量的相关信息

8、adb shell dumpsys WiFi 查看无线网络信息

9、adb shell dumpsys power 查看电源管理相关信息

10、adb shell dumpsys telephony.registry 查看电话相关信息

11、adb shell cat /proc/cpuinfo 查看CPU硬件相关信息

“/proc”区分保存的系统各种实时信息,如CPU、内存等信息

12、adb shell cat /proc/meminfo 查看内存相关信息

13、adb shell cat /proc/iomem 查看内存分区的相关信息

14、adb shell cat /system/build.prop|findstr “ro.product.model”获取手机型号

模拟器输出:

15、adb shell cat /proc/cpuinfo|findstr “Processor” 获取手机处理器信息

16、adb shell cat /proc/meminfo|findstr “MemTotal”获取手机内存信息

17、adb shell dumpsys window|findstr “Display” 获取手机屏幕分辨率的相关信息

18、adb shell getprop ro.build.version.release 获取手机系统版本相关信息

19、adb shell cat /proc/version 获取手机内核版本信息

20、adb shell getprop gsm.operator.alpha 获取手机运营商信息

21、adb shell getprop gsm.network.type 获取手机网络类型相关信息

22、adb shell dumpsys iphonesubinfo|findstr “Device ID” 获取手机串号信息

23、adb shell df 获取手机Android系统各个分区相关信息

24、adb shell dmesg 输出Linux内核的环形缓冲区信息,从中获得诸如系统架构、CPU、挂载硬件、RAM等多个运行级别大量的系统信息

25、adb shell dumpstate 获取手机Android系统当前状态的相关信息

26、adb get-serialno获取设备序列号

27、adb get-state 查看模拟器/设备的当前状态(分为device/offline/no device)

28、adb logcat 查看和跟踪系统日志缓冲区的信息

29、adb bugreport 查看Android启动过程的日志信息以及启动后的系统状态

30、adb jdwp列出指定设备的JDWP(Java调试器无线协议)相关的进程ID

31、adb start-server 用于启动adb服务

32、adb kill-server 用于关闭adb服务

33、adb forward将本机端口重定向到模拟器或设备接口上

34、am 全称 Activity Manager模拟各种系统行为

35、pm指令全称package manager,用于模拟Android行为或者查询设备上的应用

adb shell pm list packages

3.3手机模拟器相关的一些操作命令实例详解

3.3.1模拟器上模拟手机来电命令实例详解

1、模拟器是如何工作的?

  1. 模拟器启动之后会打开一个网络嵌套字(Socket)端口与其所在的主机通信
  2. 借助Telnet操控模拟器,通过端口(5554)与模拟器进行交互
  3. Telnet localhost 5554

    4.gsm call <phone number>

遇到Android授权问题:auth <I+p0VVK4sRZfRy9E>

3.3.2模拟器上模拟发送短信命令实例讲解

sms send <phone number> hi tester

3.3.3模拟器上模拟网络相关命令实例讲解

  1. network status:查看网络状态信息
  2. Network speed:设定模拟器网速
  3. Network delay:设定模拟器的网络延时
  4. Network capture start/stop:捕获模拟器的网络数据包

3.3.4修改模拟器的大小比例相关命令实例讲解

Window scale 0.5 将模拟器尺寸变为原尺寸的一半

3.3.5模拟器的其它命令及如何退出模拟器控制台

Help Power命令查看相关帮助信息

 

3.4 模拟器相关命令实例详解

 

1、了解模拟器的Android系统版本:Android list targets

3.5创建安卓虚拟设备命令实例讲解

  1. Android create avd --name android4.4.2 --target 2 --abi armeabi-v7a

其中:--name为创建的手机模拟器名称、--target为“Android list targets”命令查询到的标示号、--abi后为应用二进制接口的类型

模拟器屏幕密度240、物理内存512M、虚拟内存48M

  1. 重命名模拟器命令实例讲解
  2. 查看模拟器命令实例讲解 Android list avd
  3. 删除模拟器命令实例讲解 Android delete avd -n
  4. 启动模拟器命令实例讲解 emulator -avd android4.4.2

 

3.6 创建安卓项目相关命令实例讲解

1、切换到myeclipse项目的工作目录

2、创建测试项目:

android create test-project -m D:\MyEclipse 2015 CI\NotePad -p D:\MyEclipse 2015 CI\NotePadTest

android create test-project -m D:\MyEclipse 2015 CI\LawControl -p D:\MyEclipse 2015 CI\LawControlTest

3、基于控制台命令行相关命令使用指导

  1. Android --help或Android -h
  2. android move avd -h

第4章 Monkey工具使用       

4.1工具简介

Monkey测试是一种测试软件稳定性、健壮性的快速有效的方法。

4.2Monkey演示实例

4.2.1第一个Monkey示例(针对日历应用程序)

  1. 启动模拟器后 cmd中输入 adb shell monkey
  2. Adb shell  su root  cd data  cd data  ls
  3. adb shell monkey -p com.android.calendar 1000

 

4.2.2如何查看Monkey执行过程信息

包含1个-v参数时,信息的详细级别就为0级

包含2个-v参数时,信息的详细级别就为1级

包含3个-v参数时,信息的详细级别就为2级

1、0级时,adb shell monkey -v-p com.android.calendar 100

2、1级时,adb shell monkey -v-v-p com.android.calendar 100

3、2级时,adb shell monkey -v-v-v-p com.android.calendar 100

针对打印输出内容分析:

(1):Monkey:seed=0 count=100

未指定随机种子-s参数时,默认使用是0 count是100命令中已经指定

(2):AllowPackage:com.android.calendar

含义是只启动在com.android.calendar包中的Activity(活动)

4.2.3如何保持设定各类事件执行比例     

 

  

4.3Monkey相关参数讲解

1、-s参数的示例讲解

Monkey提供的-s参数,用于指定伪随机数生成器的seed(种子)值,如果seed值相同,则两次Monkey测试所产生的事件序列也相同。

  1. 重现问题是测试人员经常面对的一件事情, 因此-s参数的使用尤为重要,建议测试时,记录每次使用的命令及用管道命令保存输出结果到文件中,使得命令和执行结果一一对应
  2. adb shell monkey -v-v-v-p com.android.calendar 100 > C:\calendar.txt

输出Monkey的执行结果信息到alendar.txt

2、-p参数的示例讲解

-p参数用于约束限制,用此参数指定一个或多个包(package,APP)。指定包之后,Monkey只将允许系统启动用户指定的APP。不指定时随机启动系统中的任意APP

不指定包:Adb shell monkey 100

指定单个包:Adb shell monkey -p com.android.calendar 100

指定两个或多个包:Adb shell monkey -p com.android.calendar -p com.tencent.news 100

3、--throttle参数的示例讲解

--throttle用于指定各操作也就是随机事件间的延时

Adb shell monkey -p com.android.calendar --throttle 3000 100 向日历应用发送100次随机事件,每次事件间隔为3秒

4、--pct-touch<percent>参数的示例讲解                                                         

用于设定触屏事件生成的百分比

adb shell monkey --pct-touch 50 -p com.android.calendar --throttle 3000 100

向日历应用发送100次随机事件,每次事件间隔为3秒,其中设定触屏的时间占比为50%              

5、--pct-motion<percent>参数的示例讲解

用于设定滑动时间生成的百分比,滑动事件是先在某一个位置手指按下,滑动一段距离后再抬起手指的手势

Adb shell monkey --pct-motion 50 -p com.android.calendar --throttle 3000 100

向日历应用发送100次随机事件,每次事件间隔3秒,其中设定滑动的事件占比为50%

6、--pct-trackball<percent>参数的示例讲解

用于设定轨迹球事件生成的百分比,轨迹球事件是包含一系列随机移动和单击事件的事件

Adb shell monkey --pct-trackball 50 -p com.android.calendar --throttle 3000 100

向日历应用发送100次随机事件,每次事件间隔3秒,其中设定轨迹球事件的占比为50%

7、--pct-nav<percent>参数的示例讲解

用于设定基本的导航事件的百分比,基本导航事件是模拟方向性设备输入向上、向下、向左、向右的事件

Adb shell monkey --pct-nav 50 -p com.android.calendar--throttle 3000 100

  • 0
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值