移动端安全测试 移动端安全测试方法

怎么用monkey工具给移动端APP做测试?

一、

移动端安全测试 移动端安全测试方法移动端安全测试 移动端安全测试方法


移动端安全测试 移动端安全测试方法


Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey包括许多选项,它们大致分为四大类:

基本配置选项,如设置尝试的数量

运行约束选项,如设置只对单独的一个包进行测试

类型和频率

调试选项

在Monkey运行的时候,它生成,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理(自动停止):

如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的作,并对其进行阻止。

如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。

如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的

二、测试准备

Monkey test前必须先进入android设备的adb shell(Android SDK环境配置不在此描述,网上有很多)步骤如下:

1. 开始—>运行—>cmd

2. u连接手机,输入 adb shell 命令,待出现 即可输入以下内容

3. 进入手机后,输入相应的monkey命令即可测试

三、基本命令格式

adb shell monkey –p 程序包 –v 测试次数

比如“adb shell monkey –p com.htc.Weather –v 20000”意思是对com.htc.Weather 这个程序包单独进行一次20000次的monkey测试

其中程序包名称可以在串口终端这句命令获得:ls data/data 显示所有程序包

四、测试Log获取

用Monkey test测试,为了方便分析问题,可以在命令monkey命令后面加上 “|logcat -v time”,这样就能边测试边打印Log(记得用终端保存Log文本)例如:

adb shell monkey –p com.htc.Weather –v 20000|logcat -v time

但是这个组合在monkey测试完成后,logcat仍然在执行,测试时需要注意。

如果测试monkey碰到crash或者anr(程序强制性退出或不响应)现象时,在抓取log的同时需要提供traces.txt,步骤如下:

1. 测试版本需要具备root权限

2. 进入data/anr目录下面

3. 将traces.txt文件拷贝到TF卡中,然后拷贝出来发给软件分析即可

移动端app测试流程与方法?

1、首先是测试资源确认及准备

(1)产品需求文档、产品原型图、接口说明文档以及设计说明文档等应齐全;

(2)测试设备及工具的准备:IOS和andriod不同版本的真机,以及相关测试工具的准备。

2、测试用例的设计与评审

(1)根据产品需求文档、产品原型图等文档,设计客户端的一般功能测试用例;

(2)测试用例评审、修改与完善,评审通过后着手进入正式测试阶段。

3、UI测试

(1)确保手头的原型图与效果图为当前最新版本,符合产品及用户要求;

(2)测试过程中一切以效果图为准,若有用户体验方面的建议,可以先以邮件的形式与产品确认,确认通过后,可以正式向开发提出用户体验方面的问题;

(3)由于测试环境中的数据为模拟数据,测试时必须预先考虑到正式环境中可能出现的数据类型。

4、功能测试

(1)功能测试时主要依据编写的功能测试用例进行软件功能的遍历;

(2)涉及的测试主要包括基本功能测试,安装、卸载、运行测试,异常处理(包括网络突然断开或者网速过慢、机器内存不足等异常情况的处理)测试。

5、中断测试

(1)软件运行过程中接电话、收短信、锁屏、闹铃、充电,收到通知提醒后再使用软件,软件应仍可正常运行使用;

(2)软件运行时,由前台切换到后台,再切回前台后,应仍可正常运行使用。

6、兼容性及适配测试

(1)硬件的适配:不同手机厂商、硬件性能,不同屏幕大小的适配;

(2)OS版本的兼容:IOS6-9;Andriod3以上等,如果用了一些新的API在老的系统上不支持会导致crash;

(3)不同分辨率屏幕的适配:移动设备的分辨率多种多样,如果app没有做比较合适的处理就可能会显示不好,甚至影响功能的作。

(4)兼容性测试必须在一定数量的真机上进行,由于真机类型过多,尤其Android在做兼容性测试时,可以选取典型的几种运用较多的真机,进行兼容性测试;

(5)另外可以借助开源测试testin云测,进行更多机型的兼容性测试,testin云测提供基本的运行情况和一些截图,以及简单的测试报告,有助于扩大测试的范围。

7、性能测试

(1)客户端性能测试重点关注:安装卸载时间、启动时间、页面加载时间、主要功能占用的CPU、内存、流量、耗电量等,以及与同类产品相比较是否有优势;

(2)其中页面加载时间可以利用Android调试工具DDMS获取到,在DDMS里面搜索Displayed关键字就可以看到页面加载时间;

(3)运行过程中主要功能占用的CPU、内存、流量等可以借助开源工具emmagee(适用于Android)获取到;

(4)至于端的性能,主要利用接口对施加压力,重点关注响应时间、吞吐量、并发数、事物通过率等,可以视同工具loadrunner、jmeter进行测试。

8、稳定性测试

(1)安卓APP的稳定性常常使用monkey命令进行测试,通过随机流模拟人的作,对检查程序的内存溢出、空指针有很大的作用。

(2)Monkey主要用来检测系统ANR及Crash等问题

9、测试分析及测试报告输出

以上各项测试结束后,应该形成完整的分析及报告文档(包括buglist、性能及稳定性结果分析,版本上线风险分析等内容),输出给各项相关人员

移动端兼容性测试怎么做?

什么是兼容性测试

兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。–【百度百科】

为什么要做兼容性测试

目前碎片化十分,尤其是安卓设备。安卓设备碎片化、品牌碎片化,大家熟知的安卓品牌都有好多家,每家可能还有定制的系统,都给我们适配带来了不小的挑战。除了上面的碎片化,当然还有系统版本碎片化,屏幕碎片化等,为了给用户更好的用户体验,做APP的兼容性测试,还是非常有必要的。

兼容性影响因素

用户

硬件

软件

技术

网络

影响因素大致可以分为以上几类,我们对所测APP做兼容性测试时,可以从以上方面去考虑。

1、用户

我们需要依据自身APP用户群体的特征以及使用习惯,去做相应的兼容。比如用户群体如果大多是老人的话,可以考虑大字体的适配。比如针对旅游人士,可以考虑过程中网络的状况。如果拥有大量海外用户,可以考虑多种、多语言、多度量、时区问题。

2、硬件

设备类型(手机、平板、穿戴式设备)

生产商(安卓手机存在每个厂商的定制化异)

显示屏(屏幕大小、分辨率)

特殊硬件功能(NFC、蓝牙、相机、定位功能等)

3、软件

作系统

浏览器内核

伴生应用

4、技术

RN、H5、native

开发语言(oc、swift)

5、网络

2G、3G、4G、wifi

兼容各种网络下APP的表现

iOS APP兼容性

屏幕分辨率

屏幕尺寸(含异形)

作系统版本

Xcode版本

开发语言

第三方库或SDK

安装、升级

Android APP兼容性

屏幕分辨率

屏幕尺寸(含异形)

Android版本

系统版本

处理器架构(arm、x86)

开发语言(Ja、koltin、混合)

第三方库或SDK

安装、升级

H5兼容性

CSS样式兼容(一些属性的浏览器标示前缀没有添加,导致默认浏览器不认识这个属性,所以样式错乱。有些布局不灵活,样式边界处理不好,导致宽窄屏显示异常)

JS兼容(主要是浏览器或者系统版本,新的js api不支持,但是没有做降级处理)

第三方库或SDK

框架(react、vue……)

缓存(sessionstorage、localstorage)

哪些场景需要做兼容性验证

UI显示

多次快速点击

拉起虚拟键盘挡住输入区

虚拟物理按键收起与显示

多个输入框来回切换

控件焦点热区文体

前后台、多个应用切换

指纹识别和faceid等

框架升级

网络

新老版本兼容

第三方依赖库或者SDK升级

前后端版本兼容

如何做兼容性测试

主要分为内部和外部。内部由测试人员自己覆盖主要机型。机型选取的原则是,根据自己APP用户的机型,选取至少top10进行人工兼容性测试。内部还可以进行的就是UI自动化测试。外部可以借助云测平台,比如testin、testbird等。

app测试和web测试的区别, web测试和app测试的区别

单纯从功能测试的层面上来讲的话,APP 测试、web 测试 在流程和功能测试上是没有区别的。

根据两者载体不一样,则区别如下:

系统结构方面

web项目,b/s架构,基于浏览器的;web测试只要更新了端,客户端就会同步会更新。

app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。

性能方面

web项目 需监测 响应时间、CPU、Memory

app项目 除了监测 响应时间、CPU、Memory外,还需监测 流量、电量等

兼容方面

web项目:

1. 浏览器(火狐、谷歌、IE等)

2. 作系统(Windows7、Windows10、Linux等)

app项目:

1. 设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)

2. 手机设备可根据 手机型号、分辨率不同

相对于 Wed 项目,APP有专项测试

1. 干扰测试:中断,来电,短信,关机,重启等

2. 弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)

3. 安装、更新、卸载

安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况

卸载:需考虑 卸载后是否删除app相关的文件

更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新

4. 界面作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换

5. 安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等

6. 边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等

7. 权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等

测试工具方面

自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium

性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter

一个是pc端测试 一个是移动端测试

其实移动web是app和传统的web并没有本质的区别。

但是,同一个页面不可能被桌面浏览器和移动浏览器同时浏览可以为移动web提供一个系统自适应结构,这个结构可以为浏览器提供特定的输出.

而且可以将呈现逻辑细分为较小的部分,这样在显示区域和输入设备硬件都有限的情况下更好的工作。

一个是pc端测试 一个是移动端测试

移动测试和Web测试有什么区别

单纯从功能测试的层面上来讲的话,APP 测试、web 测试 在流程和功能测试上是没有区别的。

根据两者载体不一样,则区别如下:

系统结构方面

web项目,b/s架构,基于浏览器的;web测试只要更新了端,客户端就会同步会更新。

app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。

性能方面

web项目 需监测 响应时间、CPU、Memory

app项目 除了监测 响应时间、CPU、Memory外,还需监测 流量、电量等

兼容方面

(1)web项目:

1. 浏览器(火狐、谷歌、IE等)

2. 作系统(Windows7、Windows10、Linux等)

(2)app项目:

1. 设备系统:iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)

2. 手机设备可根据 手机型号、分辨率不同

相对于 Wed 项目,APP有专项测试

1. 干扰测试:中断,来电,短信,关机,重启等

2. 弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)

3. 安装、更新、卸载

安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况

卸载:需考虑 卸载后是否删除app相关的文件

更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新

4. 界面作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换

5. 安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等

6. 边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等

7. 权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等

测试工具方面

自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium

性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter

如何在 PC 机上测试移动端App

建议使用模拟器,比如夜神安卓模拟器,让你可以在电脑上安装Android应用。但如果你是开发者,还是建议使用真机进行测试,用手机连接USB,打开开发者模式里的USB调试开关即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 836084111@qq.com,本站将立刻删除。