1.移动端测试知识笔记(面试必备,测试点,adb命令)

移动端测试: 移动应用,特性(功能) 满足 需求(产品文档,隐性需求)

一。App功能测试: 死活背下来
1.业务逻辑正确性测试: 产品文档,隐性需求- 写成测试用例

2.兼容性测试:
   1.系统版本:
        android版本:官方版本(5.1 4.3 6.0…) 华为 小米 魅族
        iOS版本:官方版本
    2.分辨率:480x720 1920x 1080,关注点:图片展示
    3.网络情况:2G 3G 4G Wi-Fi
    (闲话:图片下载时网络切换会压缩图片但是保证APP流畅可用)

   
3.异常测试:
    1.热启动应用:应用置于后台,应用置于前台过程
    2.网络切换&中断恢复
    3.电话&信息中断恢复
   

4.升级&安装卸载测试
    1.升级:系统升级,渠道升级,临近版本(1.0->1.1),跨版本(1.0->1.5)
    2.安装卸载测试:系统版本,首次安装,覆盖安装,卸载后安装,卸载->安装->卸载

5.健壮性测试:
    1.手机资源消耗:cpu(闲话,如果应用有死循环那么占用率特别高,应用打开后占用超过50%就没法用了),内存(闲话:和cPU一样,后面会讲如何监控)
    2.流量消耗:图片(闲话:一个图片起来就要4M流量,不好),传输数据压缩(尽量数据压缩再传输上去,耗费太多安全助手安装好后看到流量使用用户觉得不好 直接删除该APP)
    3.崩溃恢复测试:闪退(闲话:自启动或者点击可启动),报错误(再启动要能用)

二。自动化测试:

1.重复的工作交给机器去做,解放初一部分人新功能测试和探索性测试
2.新功能和一些很难通过脚本模拟的业务

ADB原理:


1.帮助:adb —help

2.启动adb server:adb start-server

3.关闭adb server: adb kill-server
4.设备号:adb devices
5.系统版本号:adb shell getprop ro.build.version.release
6.电脑文件发送到手机:adb push 电脑文件路径/文件 手机存储路径
7.从手机拉取文件: adb pull 手机文件路径 电脑文件存储路径
8.查看手机运行日志:adb logcat 扩展 可以通过过滤报名取到指定app运行日志(mac/linux:| grep 包名 win: | findstr 包名)

9.进入手机shell命令行: adb shell 可以操作类Linux命令 top 过滤app占用资源

(举例:

测试正在被测的应用占用的实时内存是多少

 top|grep com.avatar.settings(操作的时候有变化)

10.获取app包名和启动名:(记住斜杠前面的就是包名,不一定都是com开头)
      1.mac/linux:adb shell dumpsys window windows | grep mFocusedApp
      2.win:adb shell dumpsys window windows | findstr mFocusedApp

(举例:机器人打开这个应用,adb输入

com.avatar.settings/.Settings  是包名 和启动名 )

11.安装apk到手机:adb install apk文件路径
12.卸载app/包:adb uninstall 包名

13.获取app 启动时间:adb shell am start -W 包名/启动名

(举例:

TotalTime:app自身启动时间 
WaitTime:系统启动应用时间


14.指定某台设备:adb -s 设备号


Appium:
appium: 封装android官方自动化工具uiautomator
appium原理图:脚本 <-> appium服务 <-> 手机端 ->uiautomator
appium声明手机驱动对象:webdriver.remote(服务地址,启动参数)

关闭app: close_app() # 关闭当前app 但不关闭driver
关闭驱动对象: quit() # 退出手机驱动对象,同时关闭所有关联窗口
启动新的app:start_activity(包名,启动名)
appium-安装app:install_app(app在电脑端的路径)

appium-卸载app:remove_app(包名)
判断app是否安装:is_app_installed(包名) # 安装返回True, 未安装:返回False

appium-电脑文件发送到手机:push_file(手机存储路径,data) # data:base64编码数据
appium-从手机拉取文件:pull_file(手机存储路径) # 返回是base64编码数据
获取当前屏幕内元素结构:page_source # 返回的是<<当前>>屏幕

 

转载于:https://www.cnblogs.com/yinlili/p/11165419.html

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

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

相关文章

Day 3 网络基础

网络基础 一、什么是互联网协议及为何要有互联网协议 &#xff1f; 互联网协议&#xff1a;指的就是一系列统一的标准&#xff0c;这些标准称之为互联网协议。互联网的本质就是一系列的协议&#xff0c;总称为‘互联网协议’&#xff08;Internet Protocol Suite)。 互联网协议…

element里面popover里面的高度_五斗柜的高度一般是多少 五斗柜放在什么位置好

五斗柜也就是一种抽屉收纳柜&#xff0c;目前在卧室或是书房等空间均是可以见到。其根据使用用途的不同&#xff0c;进而有着高度和款式&#xff0c;以及摆放位置等等的区别。因此&#xff0c;下面带来五斗柜的高度一般是多少、五斗柜放在什么位置好&#xff0c;以及五斗柜里面…

【NOIP2016】愤怒的小鸟

题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔。 简单来说&#xff0c;这款游戏是在一个平面上进行的。 有一架弹弓位于(0,0)处&#xff0c;每次Kiana可以用它向第一象限发射一只红色的小鸟&#xff0c;小鸟们的飞行轨迹均为形如的曲线&#xff0c;其中a,b是Kiana指定的参数…

java swing 动态生成表格_6 个曾经牛逼哄哄的 Java 技术,你用过吗?

大家好啊&#xff0c;今天给大家分享下我的开发历程中&#xff0c;我知道的那些被淘汰的技术或者框架&#xff0c;有些我甚至都没有用过&#xff0c;但我知道它曾经风光过。废话不多说&#xff0c;下面我要开始吹了……1、Swing下面这个是用 swing 开发的&#xff1a;Swing 算是…

[Java 安全]加密算法

Base64编码 算法简述 定义 Base64内容传送编码是一种以任意8位字节序列组合的描述形式&#xff0c;这种形式不易被人直接识别。 Base64是一种很常见的编码规范&#xff0c;其作用是将二进制序列转换为人类可读的ASCII字符序列&#xff0c;常用在需用通过文本协议&#xff08;比…

2个字段并在一次插入一个字段里面_elasticsearch外用与内观(二)-当插入文档时,elasticsearch都在做什么...

Previous: elasticsearch外用与内观(一)-常用功能与使用方法 在了解了es的基本用法之后&#xff0c;我们再来看看当插入文档数据时&#xff0c;elasticsearch都在做什么。首先&#xff0c;es的索引只是一个逻辑概念&#xff0c;实际上是由一个个物理分片组成的,每个分片就是一个…

学习Spring Data JPA

简介 Spring Data 是spring的一个子项目&#xff0c;在官网上是这样解释的&#xff1a; Spring Data 是为数据访问提供一种熟悉且一致的基于Spring的编程模型&#xff0c;同时仍然保留底层数据存储的特​​殊特性。它可以轻松使用数据访问技术&#xff0c;可以访问关系和非关系…

git 常用commands(转)

常用 Git 命令清单 作者&#xff1a; 阮一峰 日期&#xff1a; 2015年12月 9日 我每天使用 Git &#xff0c;但是很多命令记不住。 一般来说&#xff0c;日常使用只要记住下图6个命令&#xff0c;就可以了。但是熟练使用&#xff0c;恐怕要记住60&#xff5e;100个命令。 下面是…

检查集群状态命令_轻松管理Kubernetes集群的7个工具

Kubernetes正在不断加快在云原生环境的应用&#xff0c;但如何以统一、安全的方式对运行于任何地方的Kubernetes集群进行管理面临着挑战&#xff0c;而有效的管理工具能够大大降低管理的难度。K9sk9s是基于终端的资源仪表板。它只有一个命令行界面。无论在Kubernetes仪表板Web …

vscode 模糊部分代码_本周 GitHub 速览:您的代码有声儿吗?(Vol.38)

作者&#xff1a;HelloGitHub-小鱼干摘要&#xff1a;还记得花式夸赞程序员的彩虹屁插件 vscode-rainbow-fart 吗&#xff1f;它后续有人啦&#xff01;JazzIt 同它的前辈 vscode-rainbow-fart 一样&#xff0c;是一个能让代码“发声”的工具&#xff0c;它会在脚本运行成功或者…

C语言递归实现二叉树(二叉链表)的三种遍历和销毁操作(实验)

今天写的是二叉树操作的实验&#xff0c;这个实验有三个部分&#xff1a; ①建立二叉树&#xff0c;采用二叉链表结构 ②先序、中序、后续遍历二叉树&#xff0c;输出节点值 ③销毁二叉树 二叉树的节点结构定义 typedef struct BiTNode //二叉树的节…

Django 入门项目案例开发(中)

关注微信公众号&#xff1a;FocusBI 查看更多文章&#xff1b;加QQ群&#xff1a;808774277 获取学习资料和一起探讨问题。 昨天已经描述了如何搭建Django的开发环境&#xff0c;今天描述业务流程&#xff0c;具体我们要实现一个什么样的业务&#xff1b; 以下的业务都是假设的…

纵横公路造价软件学习_通辽分公司组织开展2020年 养护工程造价预算培训

为进一步提高养护员工业务水平和业务素质&#xff0c;提升熟练掌握信息化公路工程造价预算&#xff0c;11月5日&#xff0d;11月8日期间,通辽分公司组织开展了2020年养护工程造价预算培训。养护科全体人员、基层所站统计人员共计16人参加培训。本次培训邀请了纵横公路工程造价管…

arcgis插值不覆盖区划图_ArcGIS绘图—空气质量站点数据插值绘制等值线图

作者&#xff1a;吴琳&#xff1b;陈天舒&#xff0c;山东大学环境科学&#xff08;大气化学&#xff09;博士在读数据&#xff08;Excel格式&#xff09;&#xff1a;多站点污染物数据&#xff08;国&#xff0c;省&#xff0c;市控点&#xff09;&#xff0c;站点经纬度信息绘…

JavaScript覆盖率统计实现

主要需求 1、 支持browser & nodejs 由于javascript既能够在浏览器环境执行&#xff0c;也能够在nodejs环境执行&#xff0c;因此须要能够统计两种环境下单元測试的覆盖率情况。 2、 透明、无缝 用户写单元測试用例的时候&#xff0c;不须要为了支持覆盖率统计多写代码&…

单元格内容分列多行_姓名太多,放在一列打印时浪费纸张,可以分成多行多列打印...

在日常工作中&#xff0c;往往会碰到这种情况(如下图)&#xff1a;只有一列数据&#xff0c;而且比较多&#xff0c;如果打印起来就浪费纸张&#xff0c;然后复制、粘贴把表格变成几列&#xff0c;方便打印。今天小编和大家分享不用复制、粘贴&#xff0c;就能快速完成一列分成…

Java中接口、抽象类与内部类学习

2019独角兽企业重金招聘Python工程师标准>>> Java中接口、抽象类与内部类学习 接口与内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类和抽象方法 抽象方法&#xff1a;仅有声明而没有方法体。 抽象类&#xff1a;包含一个或多个抽象方法的类&am…

docker导入镜像 liunx_docker扫盲?面试连这都不会就等着挂吧

推荐阅读&#xff1a;java喵&#xff1a;6大面试技能树&#xff1a;JAVA基础JVM算法数据库计算机网络操作系统​zhuanlan.zhihu.com一只Tom猫&#xff1a;都是“Redis惹的祸”&#xff0c;害我差点挂在美团三面&#xff0c;真是“虚惊一场”&#xff01;​zhuanlan.zhihu.com现…

Linux iptables:规则原理和基础

什么是iptables&#xff1f; iptables是Linux下功能强大的应用层防火墙工具&#xff0c;但了解其规则原理和基础后&#xff0c;配置起来也非常简单。 什么是Netfilter&#xff1f; 说到iptables必然提到Netfilter&#xff0c;iptables是应用层的&#xff0c;其实质是一个定义规…

太阳系八大行星碰撞的视频_火星的身世:从太阳系的起源说起

大约46亿年前盘状的太阳星云从一大片又冷又暗的气体云中诞生太阳自己并没有任何暴露确切年龄的线索&#xff0c;我们之所以能够知道太阳系的“生日”&#xff0c;是因为迄今从陨石中找到的最古老固体物质&#xff0c;年龄约为45.68亿年。一般认为&#xff0c;太阳系的各个地方是…