IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> ADB测试,手机app端,常用指令 -> 正文阅读

[移动开发]ADB测试,手机app端,常用指令

一、app项目

灰度发布

所谓灰度发布,就是在发布生成环境过程当中,先发布其中几台服务器,如果这几天服务器功能运行一段时间后能够正常,name再把其他未升级或者未发布的服务器进行生成环境发布;如果先发布的机台服务器运行有问题,那么就需要 回顾到原来的版本。

app项目发布平台

  • android 安装app的后缀名是 apk
  • ios 苹果app的后缀名是 ipa

获取app安装包文件的方式一:

  • android 可以直接找开发给对应的apk安装包
  • ios 直接将手机给开发人员,让开发人员安装对应的ipa包

获取app安装包文件的方式二

  • 借助内测平台
  • 国内用的测试平台是蒲公英

测试包生成值后会上传到蒲公英平台,然后生成一个链接地址(二维码)

生成app安装包的获取

android app安装包、豌豆荚、应用宝、360手机助手

敏捷开发:

以用户的需求为核心,采用迭代、循环渐进的方式进行软件开发

在敏捷开发过程中,如今项目在构建初期会被切分成不同的子系统以及不同的迭代,各个子项目的成果警告测试,具备可视,具备可视,可集成和可运行的特征。

分迭代

? v1.0 用户模块— 用户注册、 用户登录

? v2.0 用户模块— 哼唧VIP、三方登录

安装 Android-SDK

https://www.androiddevtools.cn/

应用内测分发平台

在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些免费的应用内测分发平台。将应用测试包上,传到这些平台上,可以生产对应的二维码,直接扫码进行应用安装。

  • 蒲公英
  • fir.im

app应用测试流程

参与需求评审 评审前一定要看需求文档

指定测试计划 一般由测试负责人或测试主管制定

设计编写测试用例 有小公司 由于人力时间紧张,可以不写用例,需要写测试点。

执行用例,跟踪缺陷 (执行之前,用例评审、搭建环境、冒烟测试(可做、也可不做))

编写提交版本测试报告 根据报告 确定是否合格 可以上线

app测试要点

  • 功能测试-重点

  • 兼容性测试-重点

  • 安装、卸载、升级测试

  • 交叉事件测试:两个相互影响的事件测试 (游戏、电话、微信视频)

  • push测试(可单独 )

  • 性能测试-重点

    ? – CPU --内存 流量 电量 流畅度 启动速度

  • 用户体验测试- 重点

  • 稳定性测试

appium自动化框架原理

python开发工具— appium服务器—手机

?

appium服务器与手机 通过 adb交互

appium-client 使用 是HTTP协议 向 appium服务器 建立连接

1、自动化测试环境搭建

  • java安装

  • Android SDK安装

tools 目录 有 uiautomatorviewer命令 查看app元素

platform-tools目录 有 adb 工具

build-tools\29 aapt 工具 获取app的包名 启动名

验证:

java -version

uiautomatorviewer

adb

  • 模拟器安装

  • appium服务器安装

appium服务可执行文件,默认安装在C盘

启动之前,需要先配置jdk android-sdk 目录

  • appium-client-python 安装

安装方式:

? pip install appium-client-python

adb 客户端–电脑上

adb 守护进程–手机中

adb 服务器–电脑上

2、adb命令

  • adb devices 查看电脑上可使用的设备

? 不在先就是offline

会先查看adb-server是否启动,没有启动就去启动

  • adb start-server 启动服务

没有信息输出是正常的

  • adb kill-server 关闭服务

没有信息输出是正常的

获取包名、界面名

包名: app包名,是app唯一识别,

界面名:相当于web网页中的地址,在app当中,每个界面都有一个名字

adb shell dumpsys window findstr “app名”

在手机或模拟器上打开app

app 安装

adb install 路径/包名

app 卸载

adb uninstall 包名

上传下载文件

讲电脑上的文件上传到手机

adb push 电脑文件路径 手机的路径

adb push ./a.txt /sdcard

下载文件

从手机上下载文件到本地

adb pull 手机文件路径 电脑文件路径

一、app业务功能测试

1、测试点拆分

根据软件说明,设计文档、用户需求 验证App的各个功能的实现。

如果产品已经上线了,且没有需求文档,

要了解项目:1、则一定要去问人 2、自己使用研究

需求来源:

  • 显性需求:文档中明确的说出来的需求

  • 隐性需求:没有明确写出来,但是需要考虑

相关业务,功能影响到的相关业务

分支流程、逆向操作、异常操作

发布心情功能–拆分小功能点

输入文本:字符长度、特殊字符

图片:图片数量,

选择分类:

发布与取消:

发布评论功能–拆分小功能点

评论内容:长度、特殊字符、超链接、标签

点赞

2、app测试要点

  • 功能测试

  • 兼容测试

  • 安装、卸载、升级测试

  • 交叉事件测试

  • PUSH测试

  • 性能测试

    CPU、内存、浏览、电量、流畅度、启动速度

  • 用户体验测试

  • 稳定性测试

二、测试

1、兼容性测试

  • 系统

Android、IOS

  • 手机系统版本 覆盖主流

覆盖主流版本,排名前3的版本测试

  • 手机型号 覆盖主流

    android 华为小米、vivo

  • 屏幕分辨率 ,尺寸 覆盖主流

  • 应用兼容性

    与手机硬件兼容:home键、电源键、音量调节键等

    与外部硬件设备兼容:耳机、蓝牙

    与操作系统软件兼容:系统时间调节、LBS定位

    与其他app兼容:后台播放音乐,我们播放视频,系统如何处理

  • 网络兼容性

    ? 2G 3G 4G WIFI

不知道 就去百度 查看 线上排名网站

https://mtj.baidu.com/data/mobile/device

不可能去做全兼容的测试,但是可以去做深度兼容测试。需要借助于第三方云测平台,testin云测,我们把app提交到云测平台,帮我们做测试,云测平台有很多的手机。是收费的 拿到测试报告。

或者我们自己来对各个手机类型,做功能测试,做到深度测试。

2、安装卸载升级测试

app是一个客户端程序,客户端在使用前是需要安装的,因此需要测试 安装、卸载、升级的操作。

  • 安装测试点:

    正向场景:

    1、在不同的操作系统、不同的手机机型、版本上安装

    2、从不同的渠道下载app进行测试

    异常场景:

    1、安装时出现异常(关机、断网),恢复后能否继续安装

    2、安装时存储空间不足

    3、安装时点击取消再安装

    4、安装之后再次覆盖安装

  • 卸载测试点

    正向场景:

    1、长按app 正常删除

    2、通过第三方工具进行卸载

? 异常场景:

? 1、正在运行时卸载

? 2、取消卸载

? 3、卸载关机

? 4、卸载之后数据是否保留

  • 升级测试点

    正向场景:

? 从低版本升级到高版本,从app内升级,从app应用商城升级

异常场景:

跨版本升级,关机,升级之后数据检查

3、交叉测试

交叉测试 又称为冲突测试、或者干扰测试

交叉事件:

? 1、app运行时接打电话

? 2、app运行时收发短信

? 3、app运行时接到视频通话

? 4、app运行时收到推送通知

? 5、app运行时连接蓝牙

4、push消息测试

消息推送场景:

  • 资讯类通知,让用户实时获取到自己感兴趣的新闻,从而增加用户的粘性
  • 商城类通知,让用户获取到商城的促销活动,提高用户成交率
  • 流程类通知,让用户及时获取处理工作的内容。

推送原理:由服务器主动推送消息到app端,是一个长连接

推送服务器:使用第三方推送服务器(极光或者信鸽)

中小企业不会自己搭建推送服务器,一般使用的都是第三方。

消息推送的关注点:

  • push消息(消息推送)是否按指定业务规则发送。

  • 检查 是否按特定用户去进行推送

  • 设置不接受推送消息,确认是否正常

  • 推送消息的打开、展示、跳转是否正常

  • app是否运行,查看消息推送是否能收到

5、性能测试

  • 进入开发者模式

设置----关于手机/平板—版本号 多点击几次

直到提示:您已进入开发者模式

在设置中 会出现:开发者选项–》调试 USB打开 和 输入 指针位置贷款

  • 开启超级管理员访问权限

系统用户—文件管理器—上方 有三个横岗 —点击 齿轮 --高级 访问默认:改为超级管理员

5.1 性能工具介绍

GT APP 随身调试平台 开源网站

https://www.oschina.net/p/great-tit

GT工具可以进行基础的性能测试

GT工具提供了查看日志的功能,通过查看相关日志来分析和定位app功能异常以及crash等问题。

出现了问题:不要已出现问题就提交bug,要首先确定是前端的问题、还是后端的问题。如果是后端的问题,也不一定是需要修改代码的问题,可能是环境、数据问题,因此要重复多方面测试,在确认出现错误的真正原因。

5.2 CPU测试

GT 工具提供了两个CPU监考指标:CPU jiffes

CPU指标就是当前手机中 cpu的整体使用率

jiffief 指标 表示 开机以来,程序消耗的CPU时间片的总数

CPU问题的影响:

? 1、CPU使用长时间处于90%以上 非常卡

? 有的公司 认为70% 就有影响,有的认为80%有影响

? 不同的公司,对性能指标数据要求不高。

2、手机发热、耗电量增加

3、反应变慢,引起ANR(假死状态)

  • GT 测试CPU实战

AUT 选择 要测试app

其他指标 选择 CPU

参数 出参 勾选

日志 logcat 打开

在返回AUT 然后 点击启动

三、appium自动化测试

1、appium自动化框架原理

代码直接发给手机 是识别不了,appium可以把代码转成手机识别的指令。

appium-client 向 appium 发送命令,appium 通过adb 向手机通信。

手机通过adb把结果返回给appium, appium在返回给appium-client。

2、环境搭建

  • 准备JDK

  • 安装Android SDK

  • 安装appium软件

  • 安装 appium对应的python包

    pip install Appium-Python-Client
    

3、adb命令

  • 开启模拟器的 开发者模式

进入开发者模式,就可以方便的适应adb命令。

设置–关于平板电脑/手机—版本号 打击 五六下 直到出现 进入开发者模型

设置–开发者选项-- 调试 --USB调试 输入 —指针位置

  • adb包含三个部分

adb客户端:用来发送指令

server服务端 adb.exe执行后会启动该服务,通过这个服务端与手机上的adb守护进程沟通

adb守护进程 随着android系统的启动而启动,当android系统关闭之后它才会关闭

3.1 常用命令

  • adb devices

android自带模拟器 端口号默认是 5000

夜神模拟器端口号:62001

海马模拟器端口号:26944

逍遥模拟器端口号:21503

MuMu模拟器端口号:7555

天天模拟器端口号:6555

# 命令行输入 连接 逍遥模拟器
adb connect 127.0.0.1:21503
  • adb start-server

  • adb kill-server

  • 获取包名

包名: app应用的唯一识别,操作系统 根据包名来区分 应用app

界面名:相当于web页面,app中一个界面一个名字

adb  shell dumpsys window windows | findstr mFocusedApp

或者使用

adb  shell dumpsys window windows | findstr "usedApp"

结果是:

mFocusedApp=AppWindowToken{87bc1b7 token=Token{f5d10b6 ActivityRecord{20c5051 u0 io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity t15}}}

表示的意思是: 包名是 io.manong.developerdaily

界面名是 :io.toutiao.android.ui.activity.MainActivity

使用aapt.exe来获取包名和界面名

aapt dump  badging   apk路径

3.2 安装与卸载

  • app安装
adb install apk路径

# 案例
adb  install  E:\迅雷下载\110_00faf2f0dc72397153f010f09ad66ff7.apk
  • app卸载
adb uninstall 包名

# 案例
adb uninstall com.qq.reader

3.3 上传下载文件

  • 上传

将电脑上的文件上传到手机

adb push  电脑上文件路径    手机路径

#案例
adb push a.txt   /sdcard
  • 下载

从手机上下载文件到本地

adb push  手机的文件路径    电脑的文件夹路径

# 案例
adb pull /sdcard/a   E:\IDE

3.4 查看日志信息

为什么要获取日志信息:

查看出现错的原因,然后给开发人员分析

  • 导出日志
adb  logcat    查看日志文件

# 使用管道符 写日志到文件中
adb  logcat  >  log.txt

3.5 测试app的启动速度

如果一个app启动的速度太慢也不行

  • 测试启动速度的命令:
adb shell am  start -W  包名/界面名

首先要获取到包名、启动页名

adb  shell dumpsys window windows | findstr "usedApp"

拿到包名 启动页名

io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity

然后查看启动速度

adb shell am  start -W  io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity

结果是:

C:\Users\fan\Desktop>adb shell am  start -W  io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity }
Warning: Activity not started, its current task has been brought to the front
Status: ok
Activity: io.manong.developerdaily/io.toutiao.android.ui.activity.MainActivity
ThisTime: 192
TotalTime: 192
WaitTime: 201
Complete

C:\Users\fan\Desktop>

ThisTime:该界面Activity启动耗时(毫秒)

TotalTime:应用自身启动耗时= ThisTime+应用app等资源启动时间

WaitTime:系统启动应用耗时=TotalTime+系统资源启动时间

我们使用TotalTime作为app的启动时间

这个时间,会多次测试,然后取平均值

3.6 稳定性测试

monkey 集成在了 adb中,主要用来做稳定性测试用的,使用java语言编写的。

主要用来测试app会不会出现crash(崩溃)的情况

相当于让一个猴子随机操作app,所有的情况都可能出现,长时间的操作来测试app会不会出现问题。

monkey常用参数

-p 参数 对指定的app进行测试

add shell  monkey -p 包名  100  (100次随机操作)

100次随机事件,不一定都是点击

-v 参数 表示记录信息的级别

level 0 默认级别 -v

level 1 -v -v 打印出的信息比较详细,只打印本程序相关的日志信息

level 2 -v -v -v 打印出的信息会更多,会显示其他程序运行的信息

我们一般选择level1 级别的日志打印,只关系自己app的日志

  • 案例
adb shell  monkey -p io.manong.developerdaily -v -v  100   

-s 用来指定伪随机数,如果两次随机数相同,那么两次操作步骤、流程、操作事件完全一样。

主要作用,就是用来复现上次的问题

adb shell  monkey -p io.manong.developerdaily -v -v -s 10 100   

–throttle 用于指定随机事件的间隔时间,单位是毫秒

adb shell  monkey -p io.manong.developerdaily --throttle 500 --pct-touch 10 --pct-motion 50 -v -v  -s 100 300 > log1.txt   

–pct-touch 数值: 触摸 (整个随机事件中的百分比)

–ptc-motion 数值: 滑屏 (整个随机事件中的百分比)

组合使用

adb shell  monkey -p io.manong.developerdaily --throttle 500 --pct-touch 10 --pct-motion 50 -v -v  -s 100 300 > log1.txt    

稳定性测试,那需要很长事件,8个小时时间做稳定性测试

如果在日志里面,出现ANR(application not responsing)

如果入日志中出现了Exception

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:05:55  更:2021-09-19 08:06:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:10:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码