传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_微信

软件测试案例:移动APP非功能性测试

01、实验简介

移动app测试的一个重要方面是移动app的非功能需求。包括app启动时间、流量、电量以及CPU占用率等。

02、实验目的

1)掌握adb 常用命令

2)掌握APP非功能性测试的内容和方法

03、实验要求

1. 测试手机(Android 或IOS)任意一个APP(例如:微信)的启动时间

2. 测试手机(Android 或IOS)任意一个APP(例如:微信)的流量

3. 测试手机(Android 或IOS)任意一个APP(例如:微信)的CPU占用率

4. 测试手机(Android 或IOS)任意一个APP(例如:微信)的耗电量

将上述测试过程截图,并加以说明。

04、实验步骤

1. 下载并安装Android Studio

在官网(https://developer.android.google.cn/studio/)中下载并安装Android Studio(如图13所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_功能测试_02

■ 图13 访问Android Studio官网并下载

2. 配置adb环境变量

在SDK所在目录下,找到adb.exe的绝对路径(如图14所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_测试类型_03

■ 图14 adb.exe所在目录

在系统环境变量中添加adb.exe的绝对路径(如图15所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_功能测试_04

■ 图15 在系统环境变量中添加adb.exe的绝对路径

在命令行中可查看到adb的版本信息(如图16所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_测试工程师_05

■ 图16  在命令行中可查看到adb的版本信息

3. 连接手机

打开手机的USB调试功能,用数据线连接电脑。

开启adb并检查设备是否已经连接(如图17所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_功能测试_06

■ 图17 adb连接设备

4. 测试微信的启动时间

利用adb的shell获取微信的包名为com.tencent.mm(如图18所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_软件测试_07

■ 图18 查看微信的包名

在shell中利用dumpsys package com.tencent.mm指令获取微信程序的所有Activity

找到一个与登录有关的Activity,并用am start -W 包名/Activity名来查看启动时间(如图19所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_测试类型_08

■ 图19 查看微信的启动时间

最终得到微信的启动时间约为386ms。

5. 测试微信的流量

使用ps命令查找微信程序的Pid(如图20所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_功能测试_09

■ 图20 查看微信的Pid

得到微信Pid为25224

使用cat指令利用查询到的Pid查询流量(如图21所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_功能测试_10

■ 图21 查看微信的流量

Receive为接收的数据流量,Transmit为发出的数据流量。

进一步使用findstr查询经由WIFI的数据流量(如图22所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_软件测试_11

■ 图22经由WIFI的数据流量

可得到流量为(40515141+5410905)/1024=44849.65KB=43.80M。

6.测试微信的CPU占用率

使用cat指令利用前面查询到的微信报名查询CPU占用率(如图23所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_微信_12

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_测试工程师_13

■ 图23 微信的CPU占用率

可得到当前微信的CPU占用率为3.3%. 

7. 测试微信的耗电量

利用dumpsys指令和上述微信包名查询其耗电信息(如图24所示)。

传统非功能测试执行 VS Jenkins调度压测场景 app非功能测试_软件测试_14

■ 图24 微信的耗电信息(信息过多只截取前40条)

05、实验总结

通过本实验,可以掌握adb的相关指令,了解Android系统中app包含的信息内容,掌握开启手机开发者选项和adb连接手机的步骤,掌握利用adb获取手机app相关信息的方法,同时为以后有关Android的开发和测试打下了基础。