文章      动态     相关文章     最新文章     手机版动态     相关动态     |   首页|会员中心|保存桌面|手机浏览

ar05w9

http://fabua.ksxb.net/comar05w9/

相关列表
文章列表
  • 暂无文章
推荐文章
联系方式
  • 联系人:李女士
  • 电话:15389048695
Android与IOS的相爱相杀之客户端测试手机性能测试「Android与IOS的相爱相杀之客户端测试」
发布时间:2025-01-12        浏览次数:0        返回列表

Android 是google公司主导的一个开放的手机操作系统,不过目前已经超过了手机的局限,而定位于移动设备的操作系统。目前用于手机,平板,智能电视,智能导航,智能手环,智能眼镜以及智能家居设备
底层以Linux内核工作为基础,由C语言开发,只提供基本功能

● Applications:应用程序层
● Application framework:应用程序架构层
● Libraries:android运行库层
● linux kernel:底层linux内核
在这里插入图片描述

在这里插入图片描述

Android SDK,即Android Software Development Kit,是android的软件开发工具包。
它提供了在Windows/Linux/Mac平台上开发Android应用的开发组件。包含了在Android平台上开发移动应用程序的各种工具集。

1.3.1、下载并配置SDK

● 环境变量配置
○ 新建ANDROID_HOME :sdk路径
○ path添加三个变量
■ %ANDROID_HOME%
■ %ANDROID_HOME%platform-tools
■ %ANDROID_HOME% ools
● 验证adb
○ 只要不提示内部或外部命令,即表示配置成功
在这里插入图片描述

1.3.2、ADB介绍

● ADB全称Android Debug Bridge(安卓调试桥), 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(手机 平板 电视 智能导航…)
● 它的主要功能有:
○ 运行设备的shell(命令行)
○ 管理模拟器或设备的端口映射
○ 计算机和设备之间上传/下载文件
○ 将本地apk软件安装至模拟器或android设备

1.3.3、ADB常用命令

1.3.3.1、查看设备
 
1.3.3.2、安装apk
 
1.3.3.3、卸载apk
 
1.3.3.4、查看应用包名
 
1.3.3.5、打开应用查看包名以及打开页面的名称
 
1.3.3.6、登陆设备shell
 
1.3.3.7、adb logcat

Android的Java 崩溃基本都会包含着这个字段FATAL EXCEPTION

 
1.3.3.8、清除应用缓存
 
1.3.3.9、截图
 
1.3.3.10、录制屏幕

screenrecord 实用程序的局限性
● 音频不与视频文件一起录制。
● 不支持在录制时旋转屏幕。如果在录制期间屏幕发生了旋转,则部分屏幕内容在录制时将被切断。

 
1.3.3.11、启动停止adb
 

1.3.4、随机压力测试Monkey

1.3.4.1、Monkey介绍

Monkey就是猴子,Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。猴子什么都不懂,只知道乱敲(随机测试)
通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试(足够多次),检测程序多久的时间会发生异常

1.3.4.2、Monkey的用途

Monkey 主要用于Android 的随机压力测试,是一个自动的压力测试小工具,主要目的就是为了测试android app是否会Crash(崩溃

1.3.4.3、Monkey命令详解
 

在这里插入图片描述

1.3.4.4、Monkey实例

● -p 指定应用的包名
● --throttle事件之间的延时毫秒 一般100
● --ignore忽略-crashes崩溃,默认情况下monkey遇到crash会自动退出
● --ignore-timeouts超时,默认情况下monkey遇到超时自动退出
● --pct分配-touch点击事件,70—>70%
● --pct-motion滑动事件,20—>20%
● --pct-syskeys 系统事件比例
● -v -v -v日志详细程度
○ verbose详细
● -s=seed种子 ,复现bug,种子一样monkey事件一致的1.3.4.5、Monkey异常日志分析
Monkey 测试出现错误后,一般的分析步骤
● 看Monkey的日志
○ 程序无响应的问题: 在日志中搜索 “ANR”
○ 崩溃问题:在日志中搜索 CRASH/Exception(例如果出现空指针NullPointerException)
■ Monkey 执行中断,在log最后也能看到当前执行次数
在这里插入图片描述

1.3.5、app性能数据

1.3.5.1、CPU
 

在这里插入图片描述
PID:progress identification,应用程序ID
进程的状态:其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
THR:程序当前所用的线程数 thread
VSS:Virtual Set Size虚拟耗用内存(包含共享库占用的内存
RSS:Resident Set Size实际使用物理内存(包含共享库占用的内存
PCY:前台(foreground)和后台(background)进程
UID:User Identification,用户身份ID
Name:应用程序名称

1.3.5.2、内存
 

在这里插入图片描述
dalvik:dalvik使用的内存
native:native堆上的内存,指CC++堆的内存(android 3.0以后bitmap就是放在这儿
other:除了dalvik和native的内存,包含CC++非堆内存······
Pss:该内存指将共享内存按比例分配到使用了共享内存的进程
allocated:已使用的内存
free:空闲的内存
private dirty:非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使进程已经退出,该内存也不会被释放
share dirty:共享,但有不能被换页出去的内存

1.3.5.3、启动时长

手机APP的启动时长是一个很容易被用户感知的性能指标,启动时长过长会让用户极不愿意继续等待。因此启动时长是一项比较靠前的性能指标。
APP的启时长分为两种情况
一种是冷启动时间(通常是系统重启,即在启动前没有该App进程的情况
一种是热启动,即App从后台被切换到前台(点back退出后再点击图标启动

 

在这里插入图片描述

 

在这里插入图片描述
WaitTime:就是总的耗时,包括前一个应用Activity pause的时间和新应用启动的时间
ThisTime:表示一连串启动Activity 的最后一个 Activity 的启动耗时
TotalTime:表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用Activity pause 的耗时。也就是说,一般只要关心 TotalTime 即可,这个时间才是自己应用真正启动的耗时
总结:这种测试方法简单容易,并且可以准确的计算出系统启动这个Activity的时间。但是缺点是不包括点击icon到系统接收到消息的时间,也就是说这个时间并不能完整的模拟用户操作场景的启动时间

1.3.5.4、帧率——有无卡顿

手机帧速率(fps)是帧速率也称为FPS(frames Per Second)的缩写——帧/秒。
手机帧速率是指每秒钟刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。
如果具体到手机上就是指每秒钟能够播放(或者录制)多少格画面。同时越高的帧速率可以得到更流畅、更逼真的动画。
每秒钟帧数(FPS)越多,所显示的动作就会越流畅。捕捉动态视频内容时,此数字愈高愈好。
进入开发者选项 开启GPU呈现分析:各种颜色的线表示渲染这一帧用了多长时间,时间越长表示卡顿明显,绿色横线为标准线,app流畅运行应该在标准线以下。
https://www.zhihu.com/question/288980837

1.3.5.5、获取电量
 

在这里插入图片描述
有的手机设置菜单里面会有流量和电量统计类,只需在测试前后记录下电量值,亦可获取消耗电量数值。

1.3.6、真机测试

● 数据线依次连接手机与电脑(原装数据线
● 打开设置,找到关于手机,连续点击8—10次版本号,打开隐藏的开发者模式
● 进入开发者模式,开启开发者选项及USB调试选项
● 状态栏中USB传输切换为“传输文件”或“传输照片”
● 界面弹出是否允许USB调试时,选择确认
● 执行adb devices查看手机与电脑是否连接
● 注意:以上操作如果电脑与手机还不能够连接,电脑上下载对应手机助手软件(例如华为手机助手,Oppo手机助手),使用手机助手连击,驱动将会自动安装到电脑上,再次使用adb指令依次杀死adb和打开adb即可连接(推荐360手机助手

iOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad上。iOS与苹果的macOS操作系统一样,属于类Unix的商业操作系统。

在这里插入图片描述
● UI层: 主要有SpringBoard、Spotlight等UI交互界面
● 应用框架层:主要有 Cocoa Touch
● 核心框架层:主要有 OpenGL、Quartz等图形、多媒体组件
● Darwin:操作系统核心,包括XNU内核和UNIX shell

在这里插入图片描述

在这里插入图片描述

● 在mac电脑上,直接使用xcode工具(ios开发的工具)进行查看
● 在windows电脑上,可以下载安装itools,通过itools—工具箱,工具箱中有一个实时日志和崩溃日志,查看
在这里插入图片描述

https://blog.csdn.net/czc1009/article/details/49513359

Android App兼容性测试,是一个比较重要的App评价内容,兼容性测试主要是对App在各类机型上的兼容、适配等情况进行测试。搞清楚这一阶段的测试重点后,因此,Android App在进行兼容性测试前,一定要做好其前序测试内容,否则兼容性测试效果将会较差。
在这里插入图片描述

Android兼容测试一定要做到宽范围覆盖,如果做不到这个,那么就违背了兼容性测试的目标——测试App在各类机型、系统上的运行是否兼容、适配。
因此,兼容性测试必须要在各个机型、系统上对App进行运行、测试,查看相关UI是否适配、功能是否正常。所以,必须要为兼容性测试配备尽可能多的机型。这是不是意味着,你的公司要去购置各类机型设备?当然不是。对于一般的公司或者开发者,这将会是一大笔开销,为了节约资金而造成进行覆盖率较低的话,则失去了兼容性测试的意义。另外,这也是没必要的,因为往往你就一个或两三个App,为了这少量App测试,而去购置如此大量的设备,无疑是一种资源浪费。除此,还有一个原因,将在兼容性测试如何展开里去说。除此,机型量的多少也是一个权衡的过程,目前,通用的兼容性测试一般覆盖Top100-300的机型,对于实在是小量机型或者老旧机型,用户量非常小,在一定程度上,是否需要覆盖则需要权衡,总的来说,Top排名的手机基本足够。

这是一个经验性的过程,可以去借鉴业界大型互联网公司的成熟App的测试方法。目前,无论是国际知名App,还是国内知名App,谷歌、Facebook,BAT等,他们都有大量的App对外推出,对于App兼容性要求非常高,因此,他们的做法是非常值得借鉴的。这些公司的兼容性测试,都有一个相同的解决方案,那就是自动化测试框架与平台的实现。通过浏览上述公司在各种大会公布的内容,或者通过论坛知识分享,都能看到,他们不仅有自己的测试实验室,拥有大量的手机,除此,还有一整套的自动化测试平台,来完成兼容性测试。
目前很多的公司,已经提供了兼容性云测服务,例如TestIn、TestBird,除此,大型公司也对外推出自己的测试工具,比如谷歌、腾讯WeTest、百度MTC、阿里MQC等等…

举例腾讯WeTest使用:
1.使用QQ登录腾讯WeTest
2.选择云测兼容性,上传测试的apk文件,选择机型,等待2-4小时,查看兼容性测试报告

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述