从零开始学习软件测试-第44天笔记

2023-09-13 20:43:36

adb命令

  • adb存在于android sdk中
  • 全称:Android Debug Bridge(安卓调试桥)
  • 只适用于android系统

adb工作原理

  • 由client、server、daemon三部分组成
  • client:运行在电脑中,用来发送adb命令
  • server:运行在电脑中,用来管理client和daemon之间的通信
  • daemon(守护进程):运行在手机中,用来接收并且执行adb命令

包名和界面名

  • 包名:决定程序的唯一性(包名不是应用的名字)
    • 常见的包名一般是反写的域名
  • 界面名:一个界面名,对应着一个应用界面

获取包名和界面名

  • mac/linux
    • adb shell dumpsys window windows | grep mFocusedApp
  • windows
    • adb shell dumpsys window windows | findstr mFocusedApp

获取设备号

  • adb devices
  • 作用
    • 可以查看设备有没有连接成功
      • 设备号 device 表示已连接
      • 设备号 offline 表示未连接
    • 当有多台设备连接时,想要对指定设备进行操作,需要指定设备号
      • adb -s 设备号 命令

传输文件

  • 从电脑发送文件到手机
    • adb push 电脑的文件路径 手机的文件夹路径
  • 从手机拉取文件到电脑
    • adb pull 手机的文件夹路径 电脑的文件路径
  • 注意:
    • 手机的文件夹路径为/sdcard
    • 路径中尽量不要有中文

获取app的启动时长

  • adb shell am start -W 包名和界面名

获取日志

  • adb logcat
    • 可以根据日志的级别进行过滤
      • adb logcat *:级别(V,D,I,W,E,F,S)
      • 他会过滤当前级别和更高级别的日志

获取电池信息

  • adb shell dumpsys battery

获取内存信息

  • adb shell dumpsys meminfo
  • 获取指定程序的内存
    • adb shell dumpsys meninfo 包名/pid

获取cpu

  • adb shell top
  • 获取前几条
    • adb shell top -m 条数 -s cpu
  • 获取指定程序的cpu占用
    • adb shell top | findstr 包名

安装和卸载

  • 安装
    • adb install 安装包的路径
  • 卸载
    • adb uninstall 包名
  • 覆盖安装
    • adb install -r 安装包的路径
  • 降级安装
    • adb install -r -d 安装包的路径

进入linux系统

  • adb shell

杀死adb服务

  • adb kill-server

启动adb服务

  • adb start-server

帮助命令

  • adb --help

monkey

  • monkey主要用于Android的压力测试
  • 自动化的一个压力测试小工具,主要目的就是为了测试app是否会Crash

monkey基本操作

  • adb shell monkey 次数

monkey操作指定的程序

  • adb shell monkey -p 包名 次数

monkey让操作慢下来

  • adb shell monkey -p 包名 --throttle 间隔时间(毫秒)次数

输出日志

  • adb shell monkey -p 包名 -v -v -v 次数 > 输出的文件路径
  • 日志级别分为低中高
    • 低:-v
    • 中:-v -v
    • 高:-v -v -v

复现monkey操作

  • adb shell monkey -p 包名 -s seed值 --throttle 间隔时间 -v -v 次数>输出的文件路径

更多推荐

uniapp:APP开发,后台保活

前言:在ios中,软件切换至后台、手机息屏,过了十来秒软件就会被系统挂起,APP内的任务就不能继续执行;在android中,默认情况下,软件在后台运行的时候,触发某些特定条件的情况下,会被杀掉进程。解决方案:以下方案均测试息屏后台运行两小时一、后台运行音频(无声音频)(一般)manifest.json配置:APP常用其

JavaScript:二进制数组【笔记】

二进制数组【ArrayBuffer对象、Type的Array视图和DataView视图】JavaScript操作二进制数据的一个接口。这些接口原本是和WebGL有关【WebGL是浏览器与显卡之间的通信接口】,为了满足JavaScript与显卡之间大量、实时数据交换,那么JavaScript和显卡之间的数据通信必须是二进

MYSQL 窗体汇总函数

如果我们想要汇总当天数据,当月数据,当年数据的。如果不懂窗体函数,可能会比较费劲,那小编就说了,我用java处理同样可以达到效果啊。可问题是。明明有现成的函数,为啥要用java处理,当然同时,java会不停的判断时间范围,严重影响性能。当我们掌握了一下函数使用时,①,提高工作效率②,防止过多bug③,提升项目性能④,适

ruoyi-nbcio增加websocket与测试页面

为了后面流程发起等消息推送,所以需要集成websocket。1、后端增加websoket支持首先在framework模块里的pom.xml增加websocket<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-s

【用文心一言学习】MongoDB查询问题

说明:如下答案来自百度文心一言,已确定无误,请放心食用。1.MongoDB嵌套文档怎么查询在MongoDB中,可以使用嵌套文档来存储相关的数据。要查询嵌套文档,可以使用点符号(.)来引用嵌套字段。例如,假设你有一个名为users的集合,其中包含以下文档:[{"_id":1,"name":"John","address"

Python实战:用多线程和多进程打造高效爬虫

文章目录🍋引言🍋为什么要使用多线程和多进程?🍋线程的常用方法🍋线程锁(也称为互斥锁或简称锁)🍋小案例🍋实战---手办网🍋总结🍋引言在网络爬虫的世界里,效率是关键。为了快速地获取大量数据,我们需要运用一些高级技巧,如多线程和多进程。在本篇博客中,我们将学习如何使用Python的多线程和多进程来构建一个高效

c++ 归并排序

归并排序算法时间复杂度较为稳定,一般为nlogn,而快速排序受源数组排序影响较大,今天来学习归并排序。一.归并排序代码首先上代码:可以直接运行#include<bits/stdc++.h>usingnamespacestd;voidinsertsort(vector<int>&nums,intleft,intmid,i

中兴面试-Java开发

1、Springboot框架,yarn是怎么配置的SpringBoot本身没有直接的配置或集成与YARN(YetAnotherResourceNegotiator)的特性,YARN是Hadoop的一个资源管理和作业调度平台。如果你想在YARN上运行SpringBoot应用,你需要考虑将你的SpringBoot应用打包为

分布式AKF拆分原则

目录1前言2什么是AKF3如何基于AKFX轴扩展系统?4如何基于AKFY轴扩展系统?5如何基于AKFZ轴扩展系统?6小结1前言当我们需要分布式系统提供更强的性能时,该怎样扩展系统呢?什么时候该加机器?什么时候该重构代码?扩容时,究竟该选择哈希算法还是最小连接数算法,才能有效提升性能?在面对Scalability可伸缩性

大数据-玩转数据-Flink恶意登录监控

一、恶意登录对于网站而言,用户登录并不是频繁的业务操作。如果一个用户短时间内频繁登录失败,就有可能是出现了程序的恶意攻击,比如密码暴力破解。因此我们考虑,应该对用户的登录失败动作进行统计,具体来说,如果同一用户(可以是不同IP)在2秒之内连续两次登录失败,就认为存在恶意登录的风险,输出相关的信息进行报警提示。这是电商网

图解Raft协议

前言分布式系统设计中,在极大提高可用性、容错性的同时,带来了一致性问题(CAP理论),Raft协议就是解决分布式中的一致性问题。最近研究了Raft协议,谈谈自己对Raft协议的理解。希望这篇文章能够帮助大家理解。raft协议是什么?Raft协议是一种分布式一致性算法(共识算法),共识就是多个节点对某一个事件达成一致的算

热文推荐