成为移动测试高手!本文教你掌握移动APP测试的关键知识和技巧,提升测试水平,轻松获取高薪工作!(上)

news2024/11/17 10:56:25

目录

引言

首先搭建android-sdk环境

一.兼容性测试【原生APP】

1.WEB

2.APP

2.1操作系统

2.2分辨率

2.3不同厂家

2.4网络类型

(1)h5小程序类型:

如何测试APP在不同手机的情况

如何测试弱网络

(2).小程序

二.功能测试点

(另外)发布的测试android/IOS:

三.APP稳定性测试

四.性能测试

五.adb命令

操作:

安装命令:adb install weibo.apk

查看包命令:adb shell am monitor

查看所有命令:pm list packages

删除命令:adb uninstall 包名(package)

命令:adb logcat

查看某个app命令:adb logcat | findstr package

【面试:如果一个app出现奔溃,如何反馈给开发呢?】

在cmd上输入命令:adb shell wm size

第一种:adb shell ps | findstr pakcage (adb shell ps | findstr com.singa.weibo)

第二种:adb shell top

第三种:先进入adb shell ,继续输入logcat ps | grep com.taobao.taobao(包名)

adb的命令汇总如下:

常用错误日志信息

结语


引言

现如今,移动APP已经成为人们日常生活的不可或缺的一部分。而在移动APP开发中,移动测试则显得尤为重要。想要成为一名优秀的移动测试工程师,不仅需要掌握基础知识,还需要了解各种测试挑战和难点,并掌握相应的技巧和方法。

而本文将重点介绍移动APP测试的关键知识和技巧,帮助你提高测试水平,成为移动测试领域的专家,轻松获取高薪工作!

首先搭建android-sdk环境

1.搭建安卓环境,首先确保java环境ok。

2.下载android sdk

文件后,解压 android sdk,进入到文件里面,可以看到如下的截图:

 3.打开SDK Manage.exe,点击Tools下拉框,选择Options,设置代理,要不无法下载API,见如下的截图:

4.在环境中,新创建

ANDROID_HOME,放sdk的目录,见截图:

 5.设置好ANDROID_HOME好后,在path环境变量中加入:%ANDROID_HOME%\platform-tools 、%ANDROID_HOME%\tools打开新的cmd,输入android -h,见到如下截图,说明android环境设置成功。

一.兼容性测试【原生APP】

1.WEB

需要考虑WEB产品在不同浏览器上的⻚⾯兼容以及前端样式的展示

WEB:EDGE,Chrome,Firefox,苹果浏览器

移动互联网:UC浏览器,QQ浏览器

2.APP

2.1操作系统

需要考虑APP在主流平台上的页面展示和样式的加载,目前考虑的主流平台主要是Android和IOS的平台

2.2分辨率

不管是什么平台,都会存在不同的分辨率的展示,比如就拿苹果手机来说,它存在iphone7至到iphone14,当然这仅仅是IOS的平台,还需要考虑Android平台的兼容性的测试,主流的分辨率主要可以总结为如下部分: android 800x480, 960x640,1280720(720p),1920*1080(1080p),25601440(2k) 在实际的企业里面,具体根据用户使用的手机来测试应用程序在不同分辨率下的展示情况,总之主流的核心手机分辨率都是需要来进行测试的。

2.3不同厂家

国内很多的厂商都对Android进行了二次改造,形成了各种不同的手机操作系统,其实本质上还是在Android的基础上进行二次的改造和开发,核心的东西还是属于Android,只不过在人家的基础上新增了一层自己的应用程序,这些不同主流的平台都需要来进行测试,核心主流的平台主要总结为如下: 小米 华为 vivo/opp 阿里云os

2.4网络类型

移动互联网产品相比PC互联网产品,有一个特点是前者使用的网络比较多样,除了Wif之外,很多时候是在移动网络下使用的,移动网络遇到的情况又比较复杂,比如地铁、隧道、体育场等。所以网络不稳定的情况是比较容易发生的,很多情况下App的一些问题是在复杂的网络情况下才会暴露,与其让用户发现和投诉这些问题,不如我们在测试阶段尽量模拟这样的网络情况,及早发现和修复这些问题。 ​ 因为移动产品已经是非常普遍的,所以就需要测试一个APP在不同网络下资源的加载情况,这些不同的网络主要可以总结为如下的几点: wifi 2G(2G基本已经使用的非常少了) 3G 4G 5G 需要将网络连接不上、无网络、企业服务器错误等各种情况予以考虑并进行细化的测试。建议: ​ • 网络不稳定,没有的到服务器的反馈-->提示“网络不稳定,请稍后再试”。 ​ • 网络没有连接-->提示“网络目前没有连接,请重新连接网络之后再尝试”。 ​ • 企业服务器或者第三方服务因未知原因出错-->提示“目前无法接收相关数据,我们正在调查,请稍后再试”。

(1)h5小程序类型:

如何测试APP在不同手机的情况

1.以h5都是小程序,网址:m.taobao.com、m.baidu.com...

2.在浏览器打开勾选手机标识,选择机型、分辨率,可以自主增加机型测试。

如何测试弱网络

为了看不同网络情况下的加载响应时间

(2).小程序

打开微信小程序/支付宝小程序 点

二.功能测试点

1.用户使用习惯

2.权限问题

3.硬件问题

比如双卡双待、摄像头、GPU等。 操作习惯 用户常用的有菜单键、Home键、返回键、Home键长按(显示当前进程列表)、调整音量、待机等。相应的作为测试工程师我们需要考虑的项就变成了:

• 应用中的Back键的事件是否重写了?在各个功能界面中点击Back键会有什么反馈?

• 用户在应用各个界面点击Home键之后,再次打开应用的反馈:应用是默认处于后台的状态还是有结束生命周期。

• 应用是否使用到菜单键,切不可遗漏这个按键和应用的交互。

• 应用在任何状态下,系统进入待机或者关机。当系统被重新唤醒后,应用处于什么状态,是否有正确的反馈。

• 应用进程被用户手动关闭之后,是否可以再次正确启动。

4.数据移动

用户会在软件没有响应或者出现重大缺陷时,点击强制停止按钮。或者在手机变卡后选择清空数据来是否自己机器的空间。

5.安装、卸载测试

用户安装方式主要有:

• 使用adb install <package name>进行安装;

• 使用第三方软件(比如豌豆荚、91助手等)安装;

• 将应用先下载到SD卡中再进行安装;

• 一部分数据量大的Android应用(一般是游戏)会采用小体积的应用安装,之后通过在线下载数据的方式使用。

应用安装之后,还要重点查看以下几点

• 不联网的情况下是否能正常运行,会不会崩溃

• 在线下载数据不完整,能否再次启动 • 是否支持断点续传(主要指的数据上传)

• 下载完整之后,再次启动。 • 安装成功后,检查版本号以及相关数据。

6.升级测试

升级应用必要条件:旧版本应用和新版本应用拥有相同的签名、包名,有一个标示符(比如版本号)来区分。

4.6.1 增量升级

增量升级也叫做差分升级(Smart APP update)。 优点:用户不必再下载一个完整的Apk进行安装。 缺点:不需对发布的所有旧版本和最新版本做差分,很麻烦;如果一部分系统没有拿到内置应用的权限,那么就没有办法进行增量升级。

4.6.2 内置应用升级

注意每次升级之后的应用是否与内置在系统中的.os文件匹配,如不匹配则会直接导致应用崩溃。 升级测试场景还有很多,以后再做补充。应用升级并非仅仅检查新功能或做冒烟测试,更多的是去了解升级的原理,升级到底更改了哪些文件,而这些文件又影响力哪些功能和数据库,找到这些问题的答案才能有针对性的进行全面的测试。

(另外)发布的测试android/IOS:

1.android:

开发打包(.apk)的文件,上传到应用商店(主流的应用商店),发布

2.IOS:

1、把自己手机的唯一序列号告诉开发 2、在自己的手机上安装testflight 3、开发把被测试的APP发布后,然后测试就可以在testflight中下载开发发布的被测试的app

三.APP稳定性测试

在保证基本功能正确基础之上,App的稳定性就显得非常重要,如果一个App经常出现闪退或者卡死,那么用户体验就会受到很大伤害,在有其他竞争产品的情况下很容易造成用户的流失。

稳定性测试的概念有2种

一, 稳定性测试,对应于异常性测试,即发生异常情况时,系统如何反应的测试。包含:   

1 交互性测试,被打扰的情况,如来电,短信,低电量等。这些其实在上章的功能测试中有提到。   

2 异常性测试,断网,断电,服务器异常等情况

二,稳定性测试指的是性能测试,压力测试   

1 基准性能测试,通过压服务器端口及客户端在不同网络环境下响应速度   

2 大数据测试,在特定环境下,客户端一次性更新大量数据及人员列表

四.性能测试

普遍的apk性能测试,主要是以下七类

1、响应

2、内存

3、cpu

4、FPS (app使用的流畅度)

5、GPU过度渲染

6、耗电

7、耗流

五.adb命令

adb,即 Android Debug Bridge,它是 Android 开发/测试人员的强大工具。它是一种可以用来操作手机设备或模拟器的命令行工具。它存在于 sdk/platform-tools 目录下。虽然现在 Android Studio 已经将大部分 adb 命令以图形化的形式实现了。

操作:

1.数据线连接手机和电脑

2.打开开发者权限

打开设置,搜索关于手机,在关于手机中点击7次,系统管理里边到开发者选项,开启开发者选项中的USB调试,然后再到cmd中输入adbdevices,显示如下表示连接成功

3.安装从开发给的apk文件到手机

安装命令:adb install weibo.apk

下载apk文件到桌面,在cmd里边进入桌面(cd ....),输入安装命令:adb install weibo.apk

手机上安装成功。

4.查看安装的程序包名(package):(以weibo为例)

查看包命令:adb shell am monitor

第一种方式:在cmd输入命令:adb shell am monitor

再在手机上打开微博

第二种方式:打开手机上安装好的weibo,在cmd输入命令:adb shell dumpsys window | findstr mCurrentFocus

5.查看安装的所有手机安装包名:

查看所有命令:pm list packages

打开cmd,输入命令:adb shell ,继续输入命令:pm list packages

6.删除安装的程序

删除命令:adb uninstall 包名(package)

打开cmd输入命令:adb uninstall 包名(package) (以weibo为例:adb logcat | findstr com.sina.weibo)

7.查看日志(所有的)

命令:adb logcat

在cmd输入命令:adb logcat

8.查看某个app的日志

查看某个app命令:adb logcat | findstr package

在cmd输入命令:adb logcat | findstr package (以weibo为例:adb logcat | findstr com.sina.weibo)

【面试:如果一个app出现奔溃,如何反馈给开发呢?】

答:打开cmd 执行命令:adb logcat | findstr package,过滤出这个app的日志,再次操作app会出现奔溃情况,同时也会有错误日志,截图提交给开发。

9.查看分辨率

在cmd上输入命令:adb shell wm size

10.显示设备的cpu和内存信息

adb shell cat /proc/cpuinfo # 显示设备的CPU信息 adb shell cat /proc/meminfo # 显示设备的内存使用情况

11.获取应用程序PID

先查看应用程序包名:adb shell am monitor

第一种:adb shell ps | findstr pakcage (adb shell ps | findstr com.singa.weibo)

打开cmd输入adb shell ,继续输入adb shell ps | findstr pakcage (adb shell ps | findstr com.sina.weibo)

第二种:adb shell top

第三种:先进入adb shell ,继续输入logcat ps | grep com.taobao.taobao(包名)

adb shell

logcat ps | grep com.sina.weibo(包名)

12.安卓端文件到Pc端

adb pull [android端文件名] [PC本地路径]

adb shell 进入环境(Linux),ls 查看文件夹,比如进入etc文件夹(cd etc),pwd查看当前路径。然后比如上传hosts文件到自己本地的G:\:adb pull /etc/hosts G:\

13.pc端文件到安卓端

adb push [PC端文件名] [android 端路径]

把电脑的文件上传到手机里边:adb push 路径/文件 /var/

14.把测试过程中的日志文件写到记事本中

adb shell logcat -v time >log.txt

adb的命令汇总如下:

adb devices # 显示当前连接的 adb 设备,会打印设备的序列号及其对应的状态

adb shell # 进⼊ Android 系统的 shell 模式(Linux的命令环境,excit是退出)

adb -s [系列号] shell # 指定机器进⼊它的 shell 模式,*在 PC 连接多台 Android 设备时常会⽤到

adb root # 切换到 root ⽤户 adb remount # 重新挂载,需要在 root 后执⾏,执⾏后可写 system 分区

adb logcat -c # 清除 log 缓存

adb logcat # 打印机器 log ⽇志

adb logcat > [PC本地⽂件名] # 读取机器的 log 并将 log 保存到指定的 PC ⽂件中

adb install [APK路径]: adb install -r [APK路径]:

adb uninstall [应⽤包名]: adb pull [android端⽂件名] [PC本地路径]

adb push [PC端⽂件名] [android 端路径]

adb shell wm size # 查看屏幕分辨率

adb shell am start -n [包名]/[Activity名] # 启动指定的 Activity,这⾥ Activity名是包括包名在内的

adb shell am startservice [包名]/[Service名] # 启动指定的 Service,这⾥ Service也包括包名

adb shell am broadcast -a [⼴播action] # 发送指定 action 的⼴播

adb shell pm list packages # 显示设备⾥⾯所有应⽤的包名

adb shell service list # 显示当前运⾏的系统服务

adb shell dumpsys activity top # 显示当前最前端的 Activity

adb shell cat /proc/cpuinfo # 显示设备的CPU信息

adb shell cat /proc/meminfo # 显示设备的内存使⽤情况

常用错误日志信息

查看日志(所有的)

在cmd输入命令:adb logcat

查看某个app的日志

在cmd输入命令:adb logcat | findstr package (以weibo为例:adb logcat | findstr com.sina.weibo)

错误日志:

空指针:nullpointException

数组越界:ArrayIndexoutof boundsException

多次启动线程:illegalThreadstateException

数字格式化问题 :java.lang.NumberFormatException

内存溢出:java.lang.OutOfMemoryError

Crash > AndroidRuntime > Exception>Error 的顺序逐个搜索。

crash崩溃 crash,即崩溃,anr是crash的⼀种。在程序中可能会出现你未捕获到的异常,这就造成了崩溃。

【留言:软件测试学习,免费获取】 

结语

今天的内容就先和大家讲到这里了,下一篇会继续和大家讲解移动测试的更多知识和重要内容,觉得文章写的不错的话别忘记了三连呀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/554987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

备战2023年秋招,一套吃透全部技术栈.....

今天跟大家分享这份测试工程师全套面试攻略包含了软件测试基础 、MySQL基础、Liunx、web测试、接口测试、App测试、Python、selenium、管理工具、性能测试、LordRunner、计算机网络、组成原理、数据结构与算法、ab测试等。这些都是我在各个大厂总结出来的面试真题&#xff0c;很…

SSM框架-Spring的学习

1.Spring简介 Spring是什么&#xff08;理解&#xff09; 官网地址: https://spring.io/ ​ Spring框架由Rod Johnson开发&#xff0c;2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架&#xff0c;因此它完成了大量开发中的通用步骤&#xff0c;留给…

多个Filter的执行顺序 | 职责链模式应用

文章目录 前言一、多个Filter的执行顺序实操1. 配置web.xml方式注册Filter结论&#xff1a; 2. 注解方式注册Filter结论&#xff1a; 二、职责链模式的应用1. 回顾职责链模式2. Filter职责链模式的应用 总结 前言 Filter(过滤器) 是 Java Servlet 规范中定义的一种组件&#xf…

【计算机组成】三分钟了解顺序存储、直接存储、随机存储和相联存储的区别

一.按地址访问和按内容访问的区别 按地址访问&#xff08;顺序存储、直接存储和随机存储&#xff09;&#xff1a;我知道这个数据存在哪个地址中&#xff0c;现在我把这个地址给你&#xff0c;麻烦你帮我找出我要的数据来 按内容访问&#xff08;相联存储&#xff09;&#xff…

Netty编解码机制(一)

1.编码和解码基本介绍 1>.编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码; 2>.codec(编解码器)的组成部分有两个: decoder(解码器)和 encoder(编码器).encoder(编码器)负责把业务数据转换成字节码数据,而…

BurpSuite—-Scanner模块(漏洞扫描)

本文主要BurpSuite—-Scanner模块(漏洞扫描)介绍的相关内容 关于BurpSuite的安装可以看一下之前这篇文章&#xff1a; http://t.csdn.cn/cavWt 一、简介 Burp Scanner 是一个进行自动发现 web 应用程序的安全漏洞的工具。它是为渗透测试人员设计的&#xff0c;并且它和你现有…

Revit幕墙:这些命令在幕墙嵌板中的妙用及快速幕墙

一、Revit中这些命令在幕墙嵌板中的妙用 在我们做幕墙时&#xff0c;通常会有不同种类的幕墙&#xff0c;比如材质不同&#xff0c;颜色不同。这时我们就需要去选中嵌板进行替换新样式的嵌板。 1.通常我们在替换嵌板时都是通过Tab切换&#xff0c;然后选中嵌板。这样进行来回切…

windows免费版切割pdf拆分pdf提取pdf指定页码小工具

如图所示&#xff1a;选择pdf文件&#xff0c;输入指定页码区间&#xff0c;使用逗号分隔&#xff0c;逗号不区分中英文。如输入1-10&#xff0c;11-20&#xff0c;21-21&#xff0c;点击开始分割&#xff0c;会拆分出1-10.pdf&#xff0c;11-20.pdf&#xff0c;21-21.pdf&…

短视频矩阵源码-智能剪辑生成技术数值组如何编程?

短视频混剪生成时长逻辑一般采用根据用户设定的总时长、视频数量、时长比例等参数计算出每个视频在混剪中所占的时长&#xff0c;然后根据视频的总时长与所占比例来划分每个视频在混剪中的时长&#xff0c;最后将各个视频拼接起来形成混剪视频。此算法可以进行灵活的时长调整和…

rt下降40%?程序并行优化六步法 | 京东云技术团队

1 背景 性能优化是我们日常工作中很重要的一部分&#xff0c;主要有以下原因&#xff1a; 降低服务器和带宽等硬件成本&#xff1a;用更少的资源处理更多的请求提高现实世界的运行效率&#xff1a;人机处理效率存在数量级的偏差&#xff0c;同样机器世界的效率提升能带来现实…

十一、配置内网穿透实现消息模块和授权登陆模块

开通内网穿透的服务&#xff08;后端8333&#xff0c;前端8080&#xff09;&#xff1a; 启动内网穿透服务&#xff1a; 创建CourseApiController来实现关键词查询课程信息&#xff1a; package com.lxl.ggkt.vod.api;import com.baomidou.mybatisplus.core.conditions.query.…

2023年认证杯SPSSPRO杯数学建模D题(第一阶段)立体车库的自动调度问题全过程文档及程序

2023年认证杯SPSSPRO杯数学建模 D题 立体车库的自动调度问题 原题再现&#xff1a; 随着人们生活水平的提高&#xff0c;汽车保有量日益增加&#xff0c;而城市土地资源有限&#xff0c;传统平面停车场土地面积利用率低, 这样便形成了交通拥挤、停车困难的现象。为解决该问题…

资深测试老鸟整理,超全自动化测试用例详解-小技巧总结...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

PCA的数学原理和python实现

最近学习了一下PCA&#xff0c;具体原理网址如下&#xff1a; CodingLabs - PCA的数学原理 主要原理是通过线性变换将原始数据变换为一组各维度线性无关的表示&#xff0c;其中将方差最大的方向作为主要特征。提取数据的主要特征分量&#xff0c;可用于高维数据的降维 主要算…

工作3年裸辞,从18K到38K,面试也····

现在的面试好像也不是那么的难 工作3年&#xff0c;换了好几份工作&#xff08;行业流行性大&#xff09;&#xff0c;每次工作都是裸辞。朋友都觉得不可思议。因为我一直对自己很有信心&#xff0c;而且特别不喜欢请假面试&#xff0c;对自己负责也对公司负责。 但是这次没想…

Axure 教程:动态分组条形图(中继器)

本文将教大家如何用AXURE中的中继器动态分组条形图 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://v7cmdp.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87807121?spm1001.2014.3001.5503 二、功能介绍 简单填写中继…

Lucene(4):Field域类型

1 Field属性 Field是文档中的域&#xff0c;包括Field名和Field值两部分&#xff0c;一个文档可以包括多个Field&#xff0c;Document只是Field的一个承载体&#xff0c;Field值即为要索引的内容&#xff0c;也是要搜索的内容。 是否分词(tokenized) 是&#xff1a;作分词处理…

requests爬虫

目录 一、爬虫概念及分类 二、requests模块 1、网页地址内容获取 2、图片爬取 3、UA伪装 三、动态加载数据 一、爬虫概念及分类 爬虫: 通过编写代码&#xff0c;让其模拟浏览器上网&#xff0c;然后在互联网中抓取数据的过程 分类&#xff1a;1、通用爬虫&#xff1a;要…

Linux: ARM32各CPU模式下栈配置

文章目录 1. 前言2. 背景3. ARM32 中断向量表 和 中断处理流程3.1 ARM32 中断向量表3.2 ARM32 中断处理流程 4. ARM32 各CPU模式下的栈配置4.1 SVC模式下各CPU栈配置(内核栈配置)4.1.1 BOOT CPU SVC模式栈配置(内核栈配置)4.1.2 非 BOOT CPU SVC模式栈配置(内核栈配置) 4.2 中断…

实现快速多点触控,让App自动化测试操作更方便

目录 前言&#xff1a; PyAutoGUI简介&#xff1a; 代码示例&#xff1a; 总结&#xff1a; 前言&#xff1a; 随着智能设备的普及&#xff0c;触摸点的数量和触摸操作的复杂度也在不断增加。要想在触控界面上获得更高效率和更好的体验&#xff0c;多点触控操作是必不可少的…