掌握这些移动测试技巧,棘手的问题也能游刃有余解决了

news2024/11/15 22:30:52

目录:导读

引言

一、测试的程序

 二、功能测试点

 三、移动端安卓环境变量

性能测试

 四、实操通过USB连接到手机设备

五、adb操作命令

写在最后


引言

你是否曾经遇到过打开一个移动应用后出现各种问题,比如卡顿、闪退等?

这些问题可能会让你非常烦恼,但是却不知道该怎么办。其实,只要掌握一些简单的移动测试技巧,就能够解决这些棘手的问题,让你游刃有余地提升移动应用品质。

在本篇文章中,我将和大家分享这些实用的技巧,帮助你成为一名移动应用领域的高手。

通过阅读这篇文章,相信你能够轻松理解并掌握这些技巧,让你的移动应用变得更加稳定和优质!

一、测试的程序

1、WEB

2、小程序

3、APP

4、服务

移动测试对象:

1、小程序(微信和支付宝)嵌套到专门到App

2、App

3、以浏览器的模式可以访问

4、不同网络的类型(2G 3G 4G 5G WIFI)

兼容性测试:

WEB:Firefox,chrome,edge、safari APP:IOS、Android

APP: 1、不同版本的操作系统

2、不同分辨率的手机

android 800x480, 960x640,1280720(720p),1920*1080(1080p),25601440(2k)

3、不同厂商的手机

怎么在PC端实现手机端测试

进入到chrome浏览器的调试模式:

 怎么查看加载的耗时

 模拟测试不同网络

弱网络:

所有的移动产品都是需要测试的,比如打开抖音,结果视频信息一致处于加载中。这个时候应该提示:请检查你的网络。

需要将网络连接不上、无网络、企业服务器错误等各种情况予以考虑并进行细化的测试。

建议:

• 网络不稳定,没有的到服务器的反馈-->提示“网络不稳定,请稍后再试”。

• 网络没有连接-->提示“网络目前没有连接,请重新连接网络之后再尝试”。

• 企业服务器或者第三方服务因未知原因出错-->提示“目前无法接收相关数据,我们正在调查,请稍后再试”。

 二、功能测试点

1、权限测试(比如地址等权限)

2、手机的操作习惯 Home键、返回键,声音的调整

3、数据保留

4、APP的安装与卸载 热修复

android:开发会给测试一个apk的文件,测试使用adb install apk命令来进行安装

ios: A、首先把苹果的测试手机序列号告诉开发 B、在测试手机下载testflight的App C、开发会把测试的app发布到testflight,然后我们通过testflight来安装被测试的app

issue:生产环境出现的问题,需要提单,开发说提交一个issue 那么针对该issue需要立刻马上解决,紧急发布叫hotfix版本来修复该issus

你测试的版本发布后,一般会发布几个hotfix的版本 答案:0个 大于0个都有问题

应用安装之后,还要重点查看以下几点: • 不联网的情况下是否能正常运行,会不会崩溃? • 在线下载数据不完整,能否再次启动? • 是否支持断点续传? • 下载完整之后,再次启动。 • 安装成功后,检查版本号以及相关数据。

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

稳定性测试: app:就是常时间的针对APP进行各种操作和交互的操作,来验证APP是否闪退,崩溃的情况 服务:常时间对服务发送大量的请求,来验证服务是否可以返回客户端想要的数据

 三、移动端安卓环境变量

1、解压下载的安装包到D盘中

2、右键点击开始窗口编辑环境变量

3、输入变量名ANDROID_HOME,变量值为之前安装的路径 E:\testDev\android-sdk-windows

 4、在系统变量中的Path中添加%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools,也可以分开添加

 5、验证是否添加成功,可以输入android -h,出现以下内容表示安装成功

性能测试

普遍的apk性能测试,主要是以下七类 1、响应 2、内存 3、cpu 4、FPS (app使用的流畅度) 5、GPU过度渲染 6、耗电 7、耗流

adb,即 Android Debug Bridge,它是 Android 开发/测试人员的强大工具。它是一种可以用来操作手机设备或模拟器的命令行工具。

 四、实操通过USB连接到手机设备

开发者权限打开

• 打开设置

• 搜索关于手机

• 在关于手机中点击7次

• 系统管理里面看到开发者选项

• 开启开发者选项和USB调试

1、打开手机开发者权限,每个手机不一样可以去百度查找自己手机怎样开启开发者权限,vivo手机可以输入“*#*#7777#*#*”进入到开发者权限

2、打开手机中的开发者选项,和USB调试

 3、打开cmd输入Android -h 和 adb 查看是否下载安装成功

 4、输入adb devices 可以查看手机设备的代码

五、adb操作命令

进入 Android 系统的 shell 模式

date:查看当前时间 ls:查看当前目录下的所有文件

 ls -h :查看当前目录下的所有文件的大小

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

 adb shell service list # 显示当前运行的系统服务 adb shell dumpsys activity top # 显示当前最前端的 Activity

 在工作中开发写好一个apk交给我们测试我们该如何测试

1、开发写好代码给我们一个apk的文件,我们下载下来

2、进入到下载的目录路径

 3、输入adb install -r [APK路径]:

 4、现在在手机是进行继续安装

 安装两种方式: adb install [APK路径]: adb install -r [APK路径]:

adb uninstall [应用包名]

那么程序的应用包名怎么获取? 1、在控制台输入:adb shell am monitor,然后打开app,就会获取程序的应用包名 2、adb shell dumpsys window | findstr mCurrentFocus 3、进入到:adb shell ,输入命令:pm list packages

那么程序的应用包名怎么获取? 1、输入adb shell am monitor

2、然后在手机上你点击那个软件 cmd上就实时显示你的软件

卸载逻辑:
1、先使用adb shell am monitor等命令获取被卸载的程序包名
2、使用adb uninstall 包名来进行卸载

卸载app操作流程

1、先获取到应用包名在控制台输入:adb shell am monitor,然后打开app,就会获取程序的应用包名

2、然后退出 在输入adb uninstall 包名 回车就删除了

客户端常见的错误:

空指针:nullpointException
数组越界:ArrayIndexoutof boundsException
多次启动线程:illegalThreadstateException
数字格式化问题 :java.lang.NumberFormatException
内存溢出:java.lang.OutOfMemoryError
Crash > AndroidRuntime > Exception>Error 的顺序逐个搜索。

发现不了这个文件:java.io.FileNotFoundException

发现不了这个类:java.lang.ClassNotFoundException: Didn't find class

场景描述:
假设你被测试的app闪退了,此时你会怎么办?
1、再次执行之前出问题的操作步骤
2、执行操作步骤的时候,监听日志信息,这样下次闪退的时候,我们就能够获取到闪退的错误日志
3、把获取到的错误日志反馈给开发

怎么获取闪退&崩溃&卡死的错误日志?
adb logcat

只过滤查看某个具体package的错误信息

adb logcat | findstr "weibo"

adb logcat | findstr "com.sina.weibo"

把错误的日志写到一个记事本里面,然后在记事本里面通过关键字的搜索来查询错误信息

把错误的日志写到一个记事本里面,然后在记事本里面通过关键字的搜索来查询错误信息。把日志信息写到其他的文件,这个过程叫重定向。重定向的操作步骤:
1、在XX的目录下创建log.txt的记事本

 2、adb logcat > log.txt,然后按下回车键

 3、启动app,进行操作

4、打开我们创建的记事本就能看到日志了

 

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

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

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

在app中,测试app的ANR和CRASH,使用的是monkey,来测试它的稳定性。

启动monkey adb shell monkey

使用monkey的目的是测试app的稳定性,验证是否存在ANR和CRASH的错误,使用Monkey可以操作很多很多的交互式的操作,比如旋转...

在手机以及电脑上,任何运行的一个程序

查询monkey的pid

adb shell ps | findstr monkey

adb shell kill pid都是一个进程,每个进程都是有独立的pid

查询所有进程:adb shell ps 查询具体的进程:adb shell ps | grep monkey 杀掉进程:adb shell kill pid

获取内存信息 adb shell dumpsys meminfo 进程ID

获取cpu消耗信息

adb shell top -n 1 | findstr 进程ID

获取电量信息 adb shell dumpsys battery

获取GPU信息 adb shell dumpsys gfixinfo 进程ID

获取流量信息 adb shell cat/proc/uid-stat/<uid>/tcp_rcv 怎么获取uid: adb shell ps | findst <被测试程序包名>--》获取进程ID adb shell cat /proc/&pid/status

写在最后

今天的文章就先到这里了,希望大家有所收获吧,如果可以请给个三连支持一下吧!!

努力了不一定有回报,但不努力是一定不会得到回报的。人类的幸福和快乐在于奋斗,而最有价值的是为理想而奋斗。要努力,不放弃,为了自己的理想,为了美好的明天。有梦就去追啊,愣在原地做什么。无论明日,有多落魄,至少今天,没有蹉跎。 生前何必久睡,死后自会长眠。如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以加入我的学习群(321255410),大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

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

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

相关文章

【HDCTF2023】wp

【HDCTF2023】wp 文章目录 【HDCTF2023】wpwebWelcome To HDCTF 2023SearchMasterYamiYamiLoginMaster mischardMiscMasterMiscExtremeMiscSuperMisc web Welcome To HDCTF 2023 在源码的 game.js中找到了flag 在控制台输出 console.log(seeeeeeeecret)得flag SearchMaster …

一文解析:低代码开发平台和零代码平台有什么区别?以及如何选?

随着数字化转型的加速&#xff0c;企业和组织对于快速开发和部署应用程序的需求也越来越迫切。 为了满足这一需求&#xff0c;低代码和零代码平台应运而生。这两种平台都提供了快速构建应用程序的方法&#xff0c;但它们之间的区别是什么呢&#xff1f;本篇就来为大家解答一下…

Linux常用命令(二)

目录 VI/VIM编辑器 Linux的root用户 用户和用户组管理 getent命令 查看权限控制信息 修改权限控制 chmod 修改权限控制 chown VI/VIM编辑器 vim是vi的加强版&#xff0c;兼容vi的所有指令。可编辑文本、shell程序&#xff0c;能以不同颜色字体来辨别语法正确性。3种工作…

软件研发的项目经理都在用哪些好的设计和管理的软件工具?

软件研发是一个复杂而又有趣的过程&#xff0c;它涉及到多个阶段&#xff0c;如需求分析、设计、编码、测试、部署、维护等。在这个过程中&#xff0c;我们需要使用各种工具来帮助我们提高效率、保证质量、协作沟通、解决问题等。工具化是指将一些重复性或者困难的任务封装成可…

Python-pyppeteer解决微软Microsoft的登录机器人验证(8)

前言 本文是该专栏的第8篇,结合优质项目案例,让你精通使用Pyppeteer,后面会持续分享Pyppeteer的干货知识,记得关注。 在注册微软Microsoft账号或者注册outlook邮箱账号的时候,会遇到如下机器人验证: 是的,你可能第一眼看到这个验证页面,首先会想到是定位它的页面元素N…

《C++PrimerPlus》第六章 分支语句和逻辑运算符

本篇文章将对《CPrimerPlus》第3章进行勾画 以我个人习惯来勾画 C和C不同点将用红色高亮表示 关于C的额外补充知识用蓝色高亮表示 对C的注意点以及总结部分用绿色高亮表示 正常情况本专栏2周更新一次 文章目录 6.1 if语句![在这里插入图片描述](https://img-blog.csdnimg.cn/…

Qt音视频开发40-ffmpeg采集桌面并录制

一、前言 之前用ffmpeg打通了各种视频文件和视频流以及本地摄像头设备的采集&#xff0c;近期有个客户需求要求将整个桌面屏幕采集下来&#xff0c;并可以录制保存成MP4文件&#xff0c;以前也遇到过类似的需求&#xff0c;由于没有搞过&#xff0c;也没有精力去摸索和测试&am…

研报精选230424

目录 【行业230424华福证券】功率半导体行业深度报告&#xff1a;能源变革大时代&#xff0c;功率器件大市场 【行业230424华西证券】海外锂资源企业近况总结之锂辉石篇&#xff1a;2023年海外锂资源供应量同比增长45%&#xff0c;H2比H1增加13万吨LCE供应 【行业230424东吴证券…

免费且不丢失数据的MBR转GPT软件!

什么是MBR和GPT&#xff1f; MBR和GPT是不同的分区形式&#xff0c;它们是管理硬盘的2种不同方式。MBR是一种旧的分区形式&#xff0c;而GPT是一种逐渐取代MBR的新分区形式。 通常&#xff0c;MBR和GPT在分区大小、主分区数和引导模式方面有不同。MBR支持不超过2TB的硬盘&a…

《商用密码应用与安全性评估》第三章商用密码标准与产品应用3.2商用密码产品类别

商用密码产品类型 商用密码产品按形态可以划分为六类∶软件、芯片、模块、板卡、整机、系统 软件是指以纯软件形态出现的密码产品&#xff0c;如密码算法软件。芯片是指以芯片形态出现的密码产品&#xff0c;如算法芯片、安全芯片。模块是指将单一芯片或多芯片组装在同一块电路…

搞懂 API ,后端 API 接口设计方法

后端 API 接口设计是开发 Web 应用和移动应用的关键组成部分&#xff0c;好的接口设计可以提高应用的稳定性、可维护性和安全性。以下是一些常用的后端 API 接口设计方法&#xff1a; 使用 RESTful API&#xff1a;RESTful API 是一种基于 HTTP 协议的 Web API 设计理念&#x…

DAY04_方法

1&#xff1a;方法的定义和使用 1.1 方法概述和课程安排 什么是方法呢&#xff1f; 方法(method)&#xff1a;就是完成特定功能的代码块 如何理解这句话呢?来&#xff0c;我们看一段代码&#xff0c;相信这个大家应该已经很熟悉了 这就是我们的main方法&#xff0c;也就是…

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警告警订阅查询报警预案截图保存视频及REDIS消息订阅

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警告警订阅查询报警预案截图保存视频及REDIS消息订阅 1、报警信息1.1、报警查询1.2、配置开启报警订阅1.2.1、国标设备编辑1.2.2、选择开启报警订阅 1.3、配置摄像头报警1.3.1、配置摄像头报警通道ID1.3.2、配置摄像头开启侦测1.…

LVS-DR部署

Lvs基于内核实现的负载均衡 只有四层代理转发 请求数据包&#xff0c;源地址&#xff08;客户端&#xff09;变目的。vip变源 lo&#xff1a;0回环网卡 数据包流向分析&#xff1a; &#xff08;1&#xff09;客户端发送请求到 Director Server&#xff08;负载均衡器&#…

springmvc请求路径以及url地址映射和参数绑定,jetty是什么

springmvc请求流程&#xff1a; url地址映射和参数绑定&#xff1a; controller文件 requestmapping括号里是url路径。 若web.xml里pattern里有.do则要加到url后面 综述&#xff1a;url为 localhost:8080/springmvc01/test01 地址&#xff1a;localhost:8080/web.xml设置的后缀…

业内首批!安全狗入选Gartner《云原生应用保护平台市场指南》报告

近日&#xff0c;国际咨询机构Gartner首次发布了《云原生应用保护平台市场指南》&#xff08;Market Guide for Cloud-Native Application Protection Platforms&#xff09;。 作为国内云原生安全领导厂商&#xff0c;安全狗凭借突出的云原生安全产品能力入选报告&#xff0c…

U3D实现自由视角

一、添加Cinemachine插件 可以直接从Unity顶部菜单的Windows>Package Manager>Unity Registry点击弹出后窗口的右侧输入Cinemachine&#xff0c;然后选择install 二、对主相机添加&#xff08;Brain组件&#xff09; 三、对相机跟随的对象添加两个子空物体&#xff0c;一…

搞懂 API,调用 API 接口通常有这些技巧

其实没什么技巧&#xff0c;无他&#xff0c;唯熟悉API 原理&#xff08;dog.jpg&#xff09;。 不过对于新人来说&#xff0c;掌握这些基础知识还是很有必要的&#xff1a; 1.了解API的功能和用法&#xff1a;在使用API之前&#xff0c;您应该了解API的功能和使用方式。这将有…

这款产品,竟然用了几千多年才爆火?

春秋时期&#xff0c;淄博的临淄作为齐国都城&#xff0c;称得上是当时山东最繁华的地方。任世事沧桑巨变&#xff0c;在小透明了两千多年后&#xff0c;淄博又迎来了新的繁华&#xff1a;这次&#xff0c;淄博烧烤火出圈了&#xff01; &#xff08;图源bilibili纪录片《人生…

【箭头函数以及声明特点】

箭头函数以及声明特点 1 箭头函数的声明2 箭头函数的特性3 箭头函数实践 1 箭头函数的声明 ES6允许使用箭头>定义函数 <script>// 声明一个函数// 原先let fn function(a,b){return a b;}// 现在let fn1 (a,b) > {return a b;}// 调用函数let result fn1(1, …