一、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
CompleteC:\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

崩溃事件
–ignore-crashes

​ 忽略崩溃和异常,继续执行

–ignore-timeouts

​ 忽略超时事件,继续执行

3.7 app中的错误

ANR: 应用没有响应 ,提示是等待 还是 关闭应用

手机操作系统 反应不过来,造成的错误。

  • 出现了错误

我们是测试人员,我们需要分析这个错误,看看这个错误是由上面引起的,是不是非代码引起的。如果分析这个错误 自己解决不了,则需要提交bug到禅道,给前端或后端开发人员。

ADB测试,手机app端,常用指令相关推荐

  1. 下拉词(浏览器下拉)及手机APP端下拉联想推荐词的展示规则

    各大是搜索引擎(百度.360.搜狗.神马)下拉词(浏览器下拉)及手机APP端下拉联系推荐词的展示规则是什么呢? 首先,我们要了解到一个下拉词的组成部分有关键词(A)和后缀词(B)组成,关键词简单说就是 ...

  2. Dynamics 365Online 如何在手机app端获取当前位置的GPS信息

    众所周知365自带的手机app端是很弱的,但再弱还是聊胜于无,至少还是可以用的,而且功能也在不断的加强中. 本篇要分享的是如果使用SDK中开放的API,在手机端app中调用GPS信息,代码很简单 va ...

  3. 利用Android adb命令来测试手机App的耗电量

    使用Android adb命令实现wifi方式连接手机 因为要通过adb命令来监控手机的耗电量,所以建议通过wifi的方式来连接手机,而不是用usb线来连接手机设备.usb方式连接手机会自动给手机充电 ...

  4. adb 测试手机内存 cpu 以及几种方式对比

    查看内存信息: 一般来说内存占用大小有如下规律: VSS >= RSS >= PSS >= USS VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) ...

  5. adb 测试手机脚本

    总的来说,价值不大,仅仅是记录.主要是发现自己写的东西,没有成品的appium好用. 不过由于嵌入式设备无法安装python,所以我这份shell脚本,也算有点用处吧.其实直接用笔记本电脑就行.... ...

  6. Web端测试和App端测试的区别

    单纯从功能测试的层面上来讲的话,APP 测试.web 测试 在流程和功能测试上是没有区别的.  系统架构方面:  web项目,一般都是b/s架构,基于浏览器的  app项目,则是c/s的,必须要有客户 ...

  7. 基于springboot的手机app端支付宝实名认证

    yml配置文件: alipay:APP_ID: 2021001166634591APP_PRIVATE_KEY: ALIPAY_PUBLIC_KEY: maven依赖: <!-- https:/ ...

  8. 手机app端token的详解很详细了

    token是什么? token是服务端生成的一串字符串,以作客户端进行请求的一个令牌.当第一次登陆后,服务器生成一个token便将此token返回个客户端,以后客户端只需带上这个token前来请求数据 ...

  9. iphone手机app通过代理测试本地api方法

    1.安装代理软件charles,下载网址:https://www.charlesproxy.com/,sn可以自行用搜索,在此不便公开 2.手机和电脑连接到同一个wifi网络,最好用不需要二道安全密码 ...

最新文章

  1. Java中Calendar.DAY_OF_WEEK、DAY_OF_MONTH需要减一的原因
  2. Java学习笔记一和前言
  3. *【HDU - 1517】【POJ - 2505】A Multiplication Game(博弈,递推找规律或SG函数)
  4. 有了这组新年元旦海报PSD模板素材,不愁晚交稿!
  5. 手里有200万,如何理财?
  6. 2B码农想转做产品,这的规划是否靠谱?
  7. linux informix数据库下载,Linux下informix安装及数据库迁移
  8. AD09 PCB制作开异性窗口
  9. Android半透明
  10. C语言学习-翁凯(第四章笔记)
  11. flutter 踩的那些坑 (一) Scheme not starting with alphabetic character
  12. C#加载本地相对路径HTML页面
  13. opencv3-编程入门学习笔记
  14. Promise对象的resolve回调函数和reject回调函数使用
  15. AutoService+javaPoet+maven+注解自动生成java代码
  16. 13-ZF标志位,JB和JNB跳转指令
  17. 命令行安装bar应用到 BlackBerry 10 手机上
  18. 边缘锐化和对比度增强的有效方法
  19. cached in the local repository的解决办法
  20. android中的滤镜,android 实现滤镜效果

热门文章

  1. access select max_超级玛丽2号Max:挑选重疾险需要避开这3大误区!
  2. 一些常见的AAC编解码库
  3. 免费使用 office, Office Standard 2010 (x64) - (Chinese-Simplified) 版本
  4. 小米公司在互联网的地位怎么样
  5. win10安装jdk及环境配置
  6. 梯度下降与反向传播算法的原理与推导
  7. matlab绘制系统的根轨迹
  8. int型变量占多少个字节?
  9. 预测分析 Python ARIMA模型预测(学习笔记)
  10. 计算机主机风扇怎么庄,机箱风扇怎么装,小编教你电脑机箱风扇怎么装