浅谈手机APP测试(流程)

article/2025/11/11 2:28:58

小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法,并应用到实际中。

目录

前言

APP开发流程

手机APP测试的工具

adb常用命令

monkey 命令

 操作事件

参数

monkey参数应用综合案例

写在最后


前言

APP测试是一个广泛的概念,根据每个app的应用场景不一样,测试的方向也略微的不同,在测试过程中需要灵活应用自身所知的测试手段。

今天就跟大家简单聊聊手机APP测试的一些相关内容。

APP开发流程

(1) 拿到需求分析需求

(2) 开需求评审会议

(3) 开发做设计,测试做测试设计

(4) 开发设计评审

(5) 测试补充用例

(6) 用例评审

(7) 开发提测,测试搭建测试环境

(8) 冒烟测试

(9) 执行测试用例

(10) 发现bug提交并跟踪

(11) 回归测试

(12) 预发布环境下测试(主要验证主要功能)

(13) 验收测试

(14) 编写测试报告

(15) 线上发布测试(主要验证主要功能,若主要功能无法实现,版本回滚)

(16) 项目总结

手机APP测试的工具

jdk简介

JDK是整个Java的核心,包括了Java开发环境和运行环境JRE、Java工具和Java基础类库。JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序。

adb连接模拟器和手机

adb(Android Debug Bridge,安卓调试桥)用于通过电脑代码脚本(或者电脑程序等)控制手机进行操作

(1) abd连接模拟器

adb connect ip地址:端口号

(2) adb连接手机

1、 手机和电脑在同一个局域网

2、 手机打开开发者模式,在开发者选项中允许usb调试和仅充电模式下运行ADB调试、连接USB时总是弹出提示

3、 把数据线连接电脑和手机,如果跳出选择模式,选择MTP传输文件

4、 在cmd输入adb tcpip 5555

5、 拔掉数据线

6、 adb connect 手机的ip地址

adb常用命令

抓取启动、加载时间:adb logcat -v threadtime -b events>名.txt

-s 系统版本 shell(查手机系统版本、截图、获包、获运行)

adb start-server 开启adb服务

adb kill-server 关闭adb服务

adb version 查看adb版本

adb connect ip地址:端口号 连接模拟器

如:adb connect 127.0.0.1:62001

adb devices 查看adb连接状态(device已经连接、offline断开连接、unauthorization已连接但手机不信任此电脑)

adb connect ip地址 adb连接设备()

adb disconnect 断开所有连接

adb disconnect IP地址:端口 断开指定连接

adb shell 进入安卓系统

exit 退出安卓系统

adb shell pm list packages -3 获取手机上的安装包(第3方)

adb shell pm list packages 获取手机上的安装包(外)

pm list packages 获取手机上的安装包(内)

获取正在运行的包名和activity:

adb logcat (获取日志在系统外)

logcat | grep ActivityManager(在系统内部)

adb logcat -c event 清空日志

adb shell dumpsys activity activities 获取正在运行软件

adb install 路径+包名 安装app

adb install -r 路径+包名 覆盖安装app(replace替换)

adb -s ip地址:端口 install 路径+包名 安装到指定

adb uninstall 包名 卸载app

adb push 本地路径 /设备路径 从PC 推送文件 到设备

adb pull /设备地址 本地地址 从设备 拉取文件 到PC

adb shell screencap /sdcard/名.png 屏幕截屏

adb shell getprop ro.build.version.release 查看系统版本

adb -s 192.168.2.135 shell getprop ro.build.version.release查看手机版本

adb -s 127.0.0.1::62001 shell getprop ro.build.version.release查看模拟器版本

启动指定软件:

1.打开软件并运行

2.输入adb shell dumpsys activity activities获取活动软件活动

(cmp=com.tal.kaoyan/.ui.activity.SplashActivity

3. adb shell am start -W -n 活动

adb shell am start -W -n com.tal.kaoyan/.ui.activity.SplashActivity(上一个命令的)

monkey 命令

monkey命令格式如下:

adb shell monkey [options] <event-count>

一般情况下:

adb shell monkey -p 包名 事件数

[options] 是指monkey可传入的参数,是可选项

<event-count> 是指随机发送事件数。

 操作事件

aafmmn prstt

①  --pct-touch 触摸事件(踏起)

②  --pct-motion 手势事件——滑动(摸醒)

③  --pct-rotation 屏幕旋转事件

④  --pct-pinchzoon 二指缩放事件(拼起入嗯)

⑤  --pct-trackball 轨迹事件

⑥  --pct-nav 基本导航事件(上下左右键)()

⑦  --pct-majornav 主要导航事件(键盘的中间键、回退按键、菜单按键)

⑧  --pct-syskeys 系统按键事件(Home键、返回键、音量调节键等)

⑨  --pct-flip 键盘事件(如点击输入框、键盘弹起、点击输入框以外区域、键盘收回等)

⑩  --pct-anyeven 其他事件(如按键、其他不常用的设备上的按钮等)

⑪  --pct-appswith 启动Activity事件

1) 触摸事件

触摸事件是指在屏幕某处按下并抬起的操作,可通过--pct-touch参数来配置其事件百分比。

2) 手势事件

手势事件是指在屏幕某处的按下、随机移动、抬起的操作,即直线滑动操作。可通过--pct-motion参数来配置其事件百分比。

adb shell monkey -p com.tal.kaoyan --pct-touch 70 --pct-motion 30 20

3) 二指缩放事件

二指缩放事件是指在屏幕上的两处同时按下,并同时移动,最后同时抬起的操作,即智能机上的放大缩小手势操作。可通过--pct-pinchzoom参数来配置其事件百分比。

4) 轨迹事件

轨迹事件是由一个或多个随机的移动组成的,有时会伴随着点击。很早之前的Android手机带有轨迹球,这个事件就是模拟的轨迹球的操作。现在的手机几乎都没有轨迹球,但轨迹球事件中包含曲线滑动操作,如果被测程序需要曲线滑动时可以选用此参数。可通过--pct-trackball参数来配置其事件百分比。

5) 屏幕旋转事件

屏幕旋转事件是一个隐藏事件,在Android官方文档中并没有记录这个事件。它其实是模拟的Android手机的横屏和竖屏切换。可通过--pct-rotation参数来配置其事件百分比。

6) 基本导航事件

基本导航事件是指点击方向输入设备的上、下、左、右按键的操作,现在手机上很少有上、下、左、右按键,这种事件一般用得比较少。可通过--pct-nav参数来配置其事件百分比。

7) 主要导航事件

主要导航事件是指点击“主要导航”按键的操作,这些按键通常会导致UI界面中的动作,如键盘的中间键、回退按键、菜单按键。可通过--pct-majornav参数来配置其事件百分比。

8) 系统按键事件

系统按键事件是指点击系统保留使用的按键的操作,如点击Home键、返回键、音量调节键等。可通过--pct-syskeys参数来配置其事件百分比。

9) 启动Activity事件

启动Activity事件是指在手机上启动一个Activity的操作。在随机的时间间隔中,monkey将执行一个startActivity()方法,作为最大限度上覆盖被测包中全部Activity的一种方法。可通过--pct-appswitch参数来配置其事件百分比。

10) 键盘事件

键盘事件主要是一些与键盘相关的操作。比如点击输入框、键盘弹起、点击输入框以外区域、键盘收回等。可通过--pct-flip参数来配置其事件百分比。

11) 其他类型事件

其他类型事件包括了除前面提到的10种事件外其他所有的事件,如按键、其他不常用的设备上的按钮等。可通过--pct-anyevent参数来配置其事件百分比。

ps:各事件百分比之和<=100正常,大于100会提示:** Event weights > 100%

参数

lgnore忽略

1) 设置间隔 如果你希望在每一个指令之间加上固定的间隔时间,可以用--throttle(注意,前面是--)命令。

adb shell monkey -p 包名 --throttle 3000 5

--throttle:后面接时间,单位为ms(<milliseconds>),表示事件之间的固定延迟(即执行每一个指令间隔的时间),若不接该选项,monkey将不会延迟。

2) 包约束 -p包名

-p:后面接一个或多个包名(<allowed-package-name>),如果应用需要访问其他包里的Activity,那相关的包也需要在此同时指定。如果不指定任何包,monkey将允许系统启动全部包里的Activity。

一个包:

adb shell monkey -p com.tal.kaoyan 500

多个包:

adb shell monkey -p com.tal.kaoyan -p com.tencent.mm 500

3) 应用程序崩溃后继续发送事件

如果你希望monkey在应用程序崩溃后继续发送事件,则需要用到--ignore-crashes命令

adb shell monkey --ignore-crashes <event-count>

4) 超时错误继续发送事件

如果你希望monkey在任何超时错误发生后继续发送事件,则需要用到--ignore-timeouts命令。

adb shell monkey --ignore-timeouts <event-count>

5) 应用程序权限错误发生后继续发送事件

如果你希望monkey在应用程序权限错误发生后继续发送事件,则需要用到--ignore-security-exceptions命令。

adb shell monkey --ignore-security-exceptions <even-count>

<event-count>--ignore-security-exceptions:在设置此选项后,当应用程序发生任何权限错误(如启动一个需要某些权限的Activity)时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到此类权限错误将停止运行。

monkey参数应用综合案例

测试场景

测试考研帮app Android版。测试希望通过monkey来模拟用户的随机操作,检查被测应用是否会出现异常(应用崩溃或者无响应)。

需求分析

1) 测试是指定应用,因此需要使用-p指定被测app包名:

com.tal.kaoyan

2) 这个测试的目的是希望模拟用户操作,因此需要让monkey执行的事件尽可能地接近用户的常规操作,这样才可以最大限度地发现用户使用过程中可能出现的问题。因此需要对monkey执行的事件百分比做一些调整:

触摸事件和手势事件是用户最常见的操作,所以通过--pct-touch和--pct-motion将这两个事件的占比调整到40%与25%;目标应用包含了多个Activity,为了能覆盖大部分的Activity,所以通过--pct-appswitch将Activity切换的事件占比调整到30%;被测应用在测试中出现过不少横竖屏之间切换的问题,这个场景也必须关注,因此通过--pct-rotation把横竖屏切换事件调整到5%。

3) 使用--throttle参数来控制monkey每个操作之间的时间间隔 指定操作之间的时间间隔,一方面是希望能更接近用户的操作场景,正常用户操作都会有一定的时间间隔;另一方面也是不希望因为过于频繁的操作而导致系统崩溃,尤其是在比较低端的手机上执行测试时。因此通过--throttle设置monkey每个操作固定延迟0.4秒。

4) 使用--ignore-crashs和--ignore-timeouts参数使monkey遇到意外时能继续执行 在执行monkey测试时,会因为应用的崩溃或没有响应而意外终止,所以需要在命令中增加限制参数--ignore-crash和--ignore-timeouts,让monkey在遇到崩溃或没有响应的时候,能在日志中记录相关信息,并继续执行后续的测试。

5) 使用-v指定log的详细级别 monkey的日志输出有3个级别:日志的级别越高,其详细程度也越高。为了方便问题的定位,这里将日志设为 -v -v.

测试命令

adb shell monkey -p com.tal.kaoyan

--pct-touch 40 --pct-motion 25

--pct-appswitch 30

--pct-rotation 5

--throttle 400

--ignore-crashes

--ignore-timeouts

-v -v 200

写在最后

1、进入任何行业都需要不断地学习和努力,软件测试工作也不例外,后期的你如果能学习计算机、数据库、开发等知识,将对你的个人提升有极大帮助。

2、时刻保持对行业的热情,既然想在这个行业混,那就就得多去了解行业的新动态,更新自己的技术。你得知道想要站得更高,就需要学习更高水平的技术。

希望有勇气改变的你,能发展得更好,持续学习必不可少,不要让自己很容易被替代!!!

努力的人有的是机会,但不努力的人是一定没机会的!!!


http://chatgpt.dhexx.cn/article/iQiaAhP4.shtml

相关文章

任务计划程序执行失败 错误值:2147750687

1,服务器上新建一个任务计划去定时执行一个.exe文件&#xff0c;一直失败&#xff0c;但手动执行成功。 试了好多网上的方法都不行&#xff0c;本来用的exe是bin目录下release文件夹下的exe&#xff0c;后来改为bin目录下debug的exe执行即可。至于原因嘛&#xff0c;我自己也是…

VS读取配置文件错误

解决方案&#xff1a; 删除项目文件所在文件夹下的.vs文件夹&#xff0c;重新编译即可。原因在于合并或生成的.suo文件与你本地实际路径不一致导致出错无法识别。

操作系统权限提升(十)之系统错误配置-计划任务提权

系列文章 操作系统权限提升(一)之操作系统权限介绍 操作系统权限提升(二)之常见提权的环境介绍 操作系统权限提升(三)之Windows系统内核溢出漏洞提权 操作系统权限提升(四)之系统错误配置-Tusted Service Paths提权 操作系统权限提升(五)之系统错误配置-PATH环境变量提权 操作…

关于配置文件出错问题

图一&#xff08;正确运行&#xff09; 图二&#xff08;运行报错&#xff09; 以上图一与图二配置文件均为一样的配置文件&#xff0c;但只有图一能正确运行。错误原因并未能准确找到&#xff0c;图二 xsi:schemaLocation的spring-aop URL地址是从上一个项目的配置文件复制过来…

Windows计划任务提示 0xE0434352 错误

写了一个计划任务每周去跑一个程序&#xff0c;但是并没有跑&#xff0c;报错是 0xE0434352&#xff0c;应该是没有找到路径(计划任务这么菜的吗)... 解决办法&#xff1a;双击启动程序 写上你当前程序的起始路径 然后在运行一下&#xff0c;就成功了

错误:“应用程序无法启动,因为应用程序的并行配置不正确。请参阅应用程序事件日志,或使用命令行sxstrace.exe工具” 的解决

安装软件后&#xff0c;应用程序无法启动&#xff0c;出现错误&#xff1a;“应用程序无法启动&#xff0c;因为应用程序的并行配置不正确。请参阅应用程序事件日志&#xff0c;或使用命令行sxstrace.exe工具”&#xff0c;该怎么办&#xff1f; 解决办法&#xff1a;&#xf…

HTTP 错误 500.19 - Internal Server Error-配置错误 由于权限不足而无法读取配置文件 解决方法

HTTP 错误 500.19 - Internal Server Error-配置错误 由于权限不足而无法读取配置文件 解决方法 可以看到&#xff0c;这个错误的产生是因为用户权限不足。 第一步 打开IIS管理器 第二步 ,找到对应网站&#xff0c;编辑权限 第三步&#xff0c;点击弹出文件夹的安全页面 第…

Docker容器 - 解决因配置文件错误所导致容器无法启动的问题

目录 一、查看容器日志 二、偷梁换柱 三、启动 原因很简单&#xff0c;因为修改容器内配置文件时出现了错误&#xff0c;所导致容器无法正常start。从而无法进入容器进行修改。。。解决步骤如下&#xff1a; 一、查看容器日志 sudo docker logs 容器ID 查看报错原因的同时找…

【日常记录】错误“应用程序无法启动,因为应用程序中的并行配置不正确,有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具”解决办法

win10安装理正深基坑软件出现该错误 错误“应用程序无法启动&#xff0c;因为应用程序中的并行配置不正确&#xff0c;有关详细信息&#xff0c;请参阅应用程序事件日志&#xff0c;或使用命令行sxstrace.exe工具”解决办法 网上给的方法是启动Windows Modules Installer服务&…

计算机配置文件损坏,怎样修复Windows 10的用户配置文件无法加载错误?

登录计算机就像输入密码(如果有)并点击登录按钮一样简单。 如果您的PC拒绝加载您的配置文件&#xff0c;并且在蓝屏上显示“无法加载用户配置文件”错误消息&#xff0c;则说明某些文件或服务会为您的PC用户配置文件供电。 请按照本文中两个解决方案中的任何一个来解决此错误。…

Linux配置文件错误(1)

1.将**配置文件/boot/grub2/grub.cfg丢失或者挂不见配置出现错误&#xff0c;或者MBR中引导程序遭到破坏&#xff0c;Linux主机启动时后可能只会出现“grub>”提示符&#xff0c;**无法完成进一步的系统启动过程。 删除rm --rf /boot/grub2/grub.cfg文件 2.删除后重启reboo…

docker错误修改容器配置文件不能启动

简介&#xff1a;配置docker mysql8.0 忽略表名大小写问题&#xff0c;在 /etc/mysql/my.cnf 文件添加 lower_case_table_names1 导致容器不能启动&#xff0c;想删除也不能进入容器&#xff0c;下面提供一种简单方法 docker cp 命令可以不启动容器执行&#xff0c;所以利用该…

修改配置文件的定时任务

1.问题背景 下发文件给下游系统设置的是定时任务&#xff0c;原本是每天的18&#xff1a;08定时发送&#xff0c;突然下游说要立马发送&#xff0c;于是只能去修改定时任务。 2.修改操作 查看权限—修改权限—备份–修改—重启 查看权限 进入配置文件目录&#xff1a;cd /…

Windows计划任务执行失败 错误值 2147943785

在win server服务器端&#xff0c;设置定时任务后&#xff0c;总是执行失败&#xff0c;提示错误值为&#xff1a;2147943785 在网上找了一圈&#xff0c;说是执行程序的用户&#xff0c;没有”批处理登录的权限“&#xff0c;按照提示查看&#xff0c;果然如此&#xff1a; 管…

解决-任务计划程序无法为用户“xxx\xxx”启动“\xxx”任务。其他数据: 错误值: 2147943726

背景 我需要让小爱音箱控制我电脑的开机和关机&#xff0c;因此创建了一个开机自启运行cmd的任务&#xff0c;要求无论用户登录都启动&#xff0c;但是老是出现这两个错误&#xff1a; 【任务计划程序无法为用户“xxx\xxx”启动“\xxx”任务。其他数据: 错误值: 2147943726】…

Datax安装与问题解决 ||运行job出错 :[您提供的配置文件存在错误信息,请检查您的作业配置】

经DataX智能分析,该任务最可能的错误原因是: com.alibaba.datax.common.exception.DataXException: Code:[Common-00], Describe:[您提供的配置文件存在错误信息&#xff0c;请检查您的作业配置 .] - 配置信息错误&#xff0c;您提供的配置文件[/opt/module/datax/plugin/reade…

迅雷【任务配置文件错误,无法继续下载】解决方法

很多次遇到迅雷下载任务时&#xff0c;暂停下载&#xff0c;一直显示正在暂停&#xff0c;等不下去了&#xff0c;就直接关闭程序了&#xff0c;打开之后再次下载就显示“任务配置文件错误&#xff0c;无法继续下载”&#xff0c;哪怕重新下载也是这样&#xff0c;令人苦不堪言…

2023年Web前端开发学习路线图

目录 前言第一阶段&#xff1a;新手入门1.Web前端零基础入门HTML5CSS3前端项目2.移动web开发实战 第二阶段&#xff1a;技术进阶1.JavaScript深入浅出-0基础入门神器2.JavaScript核心之Web APIs3.数据交互&异步编程-前端进阶Ajax零基础入门 第三阶段&#xff1a;VUE开发1.前…

Web前端入门的学习路线总结

想要学习web前端&#xff0c;前期一定要做好学习路线&#xff0c;下面是小编整理的Web前端入门的学习路线总结&#xff0c;希望正在从事Web前端工作的小伙伴们来和小编一起看一看吧&#xff0c;希望本篇文章能够对大家有所帮助。 Web前端入门的学习路线总结&#xff1a; 一、HT…

2022Web前端学习路线

简介 本路线专为想学Web前端却无从下手的人群设计&#xff0c;课程包含三大篇【零基础入门篇】【项目实战篇】【就业面试篇】&#xff0c;逐层深入&#xff0c;快速上手Web前端。 点击原文链接