功能测试(九)—— adb命令、Charles手机抓包

news2024/11/13 23:30:49

目录

目标

一、APP命令格式

1.1 查看已连接的设备列表

1.2 断开连接设备

1.3 无线连接设备

1.4 开启adb服务

1.5 关闭adb服务

1.6 安装软件包

1.7 卸载软件包

1.8 获取包名

1.9 获取当前窗口(注意大小写区分)

1.10 清除缓存

1.11 启动/停止应用

1.12 获取手机日志

1.13 获取启动时间

1.14 获取内存信息

1.15 获取CPU

1.16 获取流量消耗值

1.17 稳定性测试(Monkey)

二、Charles手机抓包

2.1 Charles工具介绍

2.2 Charles工具的使用 —— APP抓包

2.3 Charles工具的使用 —— APP弱网测试


目标

  • 能独立说出常用的APP命令格式(内存、CPU、安装、卸载、流量、启动时间、抓取日志)
  • 能使用命令测试APP客户端的稳定性(monkey)
  • 能抓取手机包(https)

一、APP命令格式

  • ADB( Android Debug Bridge) 是一个通用命令行工具,也是Android软件测试开发工作者常用的调试工具
  • ADB可以用来安装卸载软件、 管理安卓系统软件、 启动测试、 抓取操作日志等
     

SDK下载地址:http://tools.android-studio.org/index.php/sdk
ADB下载地址: https://pan.baidu.com/s/1R-XimjkEzhvLfZ0rgjzJIQ ( 提取码: 3hnt)


1.安装安卓SDK
2.安装ADB
3.配置环境变量( 计算机右键—属性—高级系统设置—环境变量--新增系统变量)
        ① 配置SDK变量
        ② 配置Path路径
4.启动命令行, 运行adb, 检查安装结果

        未安装时:

        已安装成功:

1.1 查看已连接的设备列表

adb devices

1.2 断开连接设备

adb disconnect 手机ip

1.3 无线连接设备

adb connect 手机ip(手机和电脑处于同一网段)

1.4 开启adb服务

adb start-server

1.5 关闭adb服务

adb kill-server

1.6 安装软件包

adb install /路径/软件包文件名(-r 保留数据 -t 强制覆盖 例如: adb install -r -t /路径/软件包的
文件名)

1.7 卸载软件包

adb uninstall app的包名

1.8 获取包名

# 获取手机里所有的包名
adb shell pm list packages

# 获取手机里所有的系统应用的包名
adb shell pm list packages -s

# 获取手机里所有第三方软件的包名
adb shell pm list packages -3

1.9 获取当前窗口(注意大小写区分)

# Windows: 
adb shell dumpsys window | findstr mCurrentFocus

# Mac/linux: 
adb shell dumpsys window | grep mCurrentFocus

1.10 清除缓存

adb shell pm clear 包名

1.11 启动/停止应用

# 启动: 
adb shell am start 包名/activity名(包名是软件的标识,Activity主要描述app的某个页面)

# 停止: 
adb shell am force-stop 包名

1.12 获取手机日志

adb logcat > 本地文件

 注意: 执行命令后,手机上操作复现步骤

抓取日志以后重定向到某个文件
'>' : 覆盖文件内容
'>>' : 追加在文件末尾
使用场景: 测试期间记录日志. adb logcat >本地文件
避免问题由于不确定复现步骤而导致无法复现,并且被研发拒绝.        

1.13 获取启动时间

adb shell am start -W 包名/activity名

-W :获取时间
-S:启动前强行停止应用 (冷启动的时间)
-R 数字: 启动次数
注意:参数均为大写,顺序可以调整,但-R后必须是数字

1.14 获取内存信息

adb shell dumpsys meminfo 包名

1.15 获取CPU

# 1. 
adb shell dumpsys cpuinfo (查看当前CPU占用情况)
# 2.
adb shell top -s 9(代表CPU)

1.16 获取流量消耗值

# 1.获取userId : 
adb shell dumpsys package 包名 | findstr userId

# 2.获取上行: 
adb shell cat proc/uid_stat/userId/tcp_snd

# 3.获取下行:
adb shell cat proc/uid_stat/userId/tcp_rcv

# 注意:cat后的路径是固定; userId中的'i"是大写; package后不加s

1.17 稳定性测试(Monkey)

# 1. 
adb shell monkey -p 包名 数字 -v >本地文件

# 2. -v -v -v :最高级别日志

# 3. 常用命令:
adb shell monkey -p 包名 10000 -v -v -v --throttle 500 > 本地文件

语法: adb shell monkey -p 包名 -v(日志) 次数 >c:\日志.txt
说明:
        -p 指定包名 ( 所有命令都在此包内执行, 如不指定, 则在整个系统内执行)
        -v log详细程度( 最高支持’ -v -v -v’ 最详细)
        --throttle 单步延时( 每步操作间隔, 单位毫秒)
        --pct-touch 点击事件
举例:
不控制事件: adb shell monkey – p com.tpshop.malls – v – v 1000 >C:\Users\18810\Desktop\monkey.txt
控制事件: adb shell monkey – p com.tpshop.malls --throttle 100 --pct-touch 50 --pct-motion 50 – v – v 1000 >C:\Users\18810\Desktop\monkey.txt

二、Charles手机抓包

2.1 Charles工具介绍

Charles是一款在Mac下常用的数据包截取工具, 在做移动开发时, 为了调试移动端与服务端的网络通讯协议, 常常需要截取网络数据包来进行分析。


抓包的原理

2.2 Charles工具的使用 —— APP抓包

1. 手机和电脑保持同一网段( 连接同一个WiFi)


2. Charles设置代理

  • Proxy->Proxy Sting->修改端口号

  • 查看电脑IP( ipconfig)

3. 手机安装证书-01

① 点击Charles菜单栏Help->SSL Proxying->install Charles Root Certificates on a Mobile Device or Remote Browser,可以看到手机端安装证书提示

3. 手机安装证书-02
① 根据以上提示, 打开手机的WiFi设置, 连接和电脑同一个WiFi【 或者连接电脑开启的热点】 , 设置代理IP与端口(代理IP就是电脑的IP, 端口就是Charles的代理端口8888);
② 手机浏览器访问网页, 输入chls.pro/ssl, 出现证书安装页面;
③ 如果是苹果手机, 点击安装后完成, 在设置->通用->关于手机, 信任证书如下图一:
④ 如果是Android手机, 点击下载, 然后在手机设置的安全里面, 安装证书如下图二:


4. Charles确认连接

① 手机设置好后, Charles页面会弹出以下信息, 点击“ Allow”

2.3 Charles工具的使用 —— APP弱网测试

弱网测试方法

  • SIM卡网络切换
  • 实际弱网场景测试( 地铁、 电梯、 停车场)
  • 使用软件进行网络代理( Charles)
    • ① 保证抓包成功(参考抓包教程)
    • ② Charles打开弱网设置配置项
    • ③ 设置带宽值

2.打开弱网设置配置项
路径: Proxy->Throttle Settings

3.设置带宽值
弱网、 2G、 3G的上下行速率如下:

网络上行下行
弱网1030
2G1550
3G3842800

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

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

相关文章

Verilog语法之条件编译指令`ifdef, `ifndef,`else, `elsif, `endif

0、前言 一般情况下,C语言中的每一行代码都要参加编译。但有时候出于对程序代码优化的考虑,希望只对其中一部分内容进行编译,此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃&…

Canal-1-安装-代码

1总体简介 1 mysql需要开启binlog binlog分类 1.1)statement: 语句级别,binlog 会记录每一次执行写操作的语句。相对于row模式节省空间,但是会产生数据不一致性,例如:update aa set create_timenew(); 如果用binlo…

Java学习笔记7.2.2 事件处理 - Swing常用事件

文章目录零、本讲学习目标一、Swing常用事件二、窗体事件(一)窗体事件概述(二)窗体事件类API概述(三)窗体事件使用方法(四)窗体事件案例演示三、鼠标事件(一)…

【进阶】C语言第一课:深度剖析数据在内存中的存储

目录 前言: 一、数据类型详细介绍: 1.相关知识回顾: 2.类型的基本归类: 整型家族: 浮点型家族: 构造类型: 指针类型: 空类型: 二、整形在内存中的存储: …

PS 更换证件照背景色

哈喽,各位小伙伴!今天我们来学习一下如何更换证件照背景色? 常见证件照 常见的证件照一般有白色、蓝色和红色三种样式,我们拍证件照一般只拍一种,为了节省支出,其他两种颜色就需要我们自己调色处理了 蓝…

计算机毕业设计ssm+vue基本微信小程序的客户资源管理系统

项目介绍 基于Vue技术的客户资源管理系统是对客户的一些资料进行有效的管理, 它将企业的经营管理以客户为中心,通过系统管理员就可以轻松有效的对客户的信息进行操作管理。从而实现客户资料的一致性、准确性,查询的及时性等等。 该系统提供了客户管理、系统管理、合同管理、…

Java学习笔记7.1.2 初探Swing世界 - 布局管理器

文章目录零、本讲学习目标一、布局管理器二、边框布局管理器(BorderLayout)(一)边框布局管理器概述(二)边框布局管理器API文档(三)边框布局管理器使用方法(四&#xff09…

Java项目:SSM在线物流综合管理平台系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为前后台,后台为管理员登录; 管理员角色包含以下功能 管理员登录,管理员管理,合作公司管理,车型信息,货物基本…

MongoDB 数据库安装详细教程

1. MongoDB 下载流程 (急用)直接抵达:Download MongoDB Community Server | MongoDB 打开MongoDB官网:MongoDB (点击进入) 下载完成之后双击打开会出现如下界面: 2. MongoDB 环境配置 通过刚刚的安装知道了MongoDB Se…

人工智能--决策树原理与代码实现、特征提取、回归决策树

决策树:本质就是一个拥有多个判断节点的树 1,熵 系统越有序,集中,熵值越低;系统越混乱,越分散,熵值越高 在这里的计算中,log2记为1,通常以2为底 2,决策树…

Matlab|基于粒子群优化算法及鲁棒MPPT控制器提高光伏并网的效率

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

SpringBoot中使用Easyexcel实现Excel导入导出功能(三)

导出的数据包含有图片 导出excel表格的数据包含有图片,这种场景比较少。通Easyexcel实现这样的需求,我认为最简便的方法就是使用前面提到的自定义转换器(com.alibaba.excel.converters.Converter);假如有这样一个场景&…

mysql学习-- 聚合函数,group by理解与使用

文章目录聚合函数定义常用的聚合函数group by的使用使用单个列进行分组根据多个列进行分组having 的使用作用要求sql 语法sql92语法:sql99语法:sql语句的执行过程(进理解为主):聚合函数 定义 作用一组数据&#xff0…

ArcGIS Pro为CAD设置投影

将CAD加载到GIS中,经常出现与GIS数据不能重合的问题。 现在的国空规划的数据基本都是CGCS2000,不重叠的原因不太可能是因为地理坐标系不统一,那极有可能就是ArcGIS的动态投影与CAD的带号没有统一。 如下图,左边为ArcGIS动态投影…

宠物之家网站大学生网页制作教程 学生HTML静态宠物网页设计作业成品 DIV布局简单动物网页制作代码

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

宝塔无法安装fileinfo扩展解决办法(小白篇)

宝塔无法安装fileinfo扩展解决办法(小白篇) 宝塔无法php安装fileinfo扩展的方法:手动安装 重装系统登录宝塔先不要安装其他软件,先设置swap是Linux下的虚拟内存,设置内存后先安装PHP版本,安装好PHP以后&…

Python实现数据结构与算法(三)链表

链表 为什么需要链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。 链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 链表的定义 链表&#xf…

html内联框架iframe

<!--iframe内联框架src&#xff1a;地址w-h&#xff1a;宽度高度 --> <iframe src"https://www.4399.com" frameborder"0" width"800px" height"800px"></iframe> 使用name属性&#xff1a; <!--回顾&#xff1…

Allegro如何创建差分对操作指导

Allegro如何创建差分对操作指导 Allegro可以在规则管理器里面进行差分对的创建,让两个网络以差分的形式布线,具体操作如下 打开规则管理器 选择Physical-net-All layers 选择两个需要创建差分对的网络,选择Create-Differential Pair 输入差分对的名字 选择Create 差分…

【MATLAB教程案例58】使用matlab实现yolov2网络目标检测功能与仿真分析

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 1.软件版本 2.yolo网络理论概述