• 0
  • 0
分享
  • monkey安卓专项测试——软件测试圈
  • TIMI 2021-08-19 11:32:55 字数 2931 阅读 963 收藏 0

一、adb环境部署

准备下载jdk及安卓adt

1、jdk下载地址(https://www.oracle.com/java/technologies/javase-downloads.html)

配置环境变量

① 打开配置环境入口

右键此电脑-高级系统设置-环境变量

② 配置JAVA_HOME

在系统变量中新增JAVA_HOME,变量值中输入jdk安装路径(C:\Program Files\Java\jdk-15.0.1 版本号及路径可能不一致,不能直接复制)

1.png

③ 编辑Path

在系统变量Path中新加两条:%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin(每条以英语分号隔开)

2.png

④ 编辑CLASSPATH

在系统变量CLASSPATH中新加两条:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(注意变量值字符串前面有一个".",一定不能丢失。)

3.png

⑤ 检查jdk环境是否部署成功

打开cmd命令行,输入java -version,出现版本号,则表示JDK环境部署成功

0.png

2、下载adt-bundle-windows-x86

linux 64 bit: http://dl.google.com/android/adt/adt-bundle-linux-x86_64-20140702.zip
linux 32 bit: http://dl.google.com/android/adt/adt-bundle-linux-x86-20140702.zip
MacOS X: http://dl.google.com/android/adt/adt-bundle-mac-x86_64-20140702.zip
Win32: http://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
Win64: http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip

下载后直接解压,找到sdk里tools和platform-tools的文件路径,并复制其路径.

① 配置Android环境变量

新增系统变量android,变量值为tools和platform-tools的完整路径

5.png

② 编辑Path

在Path的变量值中加:%android%

6.png

③ 检查adb是否部署成功

打开cmd命令行,输入adb

出现版本号,则表示adb环境部署成功

7.png

二、adb命令使用

1、使用模拟器连接adb(本地地址127.0.0.1)

adb connect 127.0.0.1:62001(或使用命令adb devices查看)

2、使用手机连接adb分几步完成

  • 通过usb线连接手机和电脑

  • 连接usb时手机会自动下载安装Android手机驱动(如果下载了手机助手下载驱动,则需要卸载,否则在运行adb时会冲突)

  • 在手机设置中打开开发者模式

  • 在手机弹窗中选择允许这台手机进行调试

  • 使用命令adb devices查看

3、adb常用命令

adb pull <手机路径> <本机路径> #从手机拉取信息到本地
adb push <本机路径> <手机路径> #从本地拉取信息到手机
adb shell #进入adb shell环境,查看手机路径
cd sdcard #进入手机内部存储目录
pwd #查看当前路径,如查到手机中文件/sdcard/pictures/screenshots/SVID_20201121_133317_1.mp4
exit #退出shell环境
adb push /sdcard/pictures/screenshots/SVID_20201121_133317_1.mp4 E:\adb

4、monkey的必须属性:COUNT 次数

可选参数:

-p 指定某个应用来执行monkey测试,若指定过个包名,可再追加-p 获取第三方包名方法:adb shell pm list packeage -3 (-3表示用户安装的应用包)

-v 指定日志详细程度,-v个数越多,日志越详细,一般采用最高3个-v

>d:\test.txt 指定日志生成路径

–throttle 设置操作之间的停顿时间,单位毫秒

-s seed值,可以理解为猴子的编号,会根据编号指定执行时各种动作所占的百分比(seed值一样,表示操作流程一样,操作界面或对象不能保证)

特殊参数:

–ignore 在执行过程中,忽略掉部分引起monkey停止的事件

crashes:应用崩溃

timeouts:应用未响应

security-exceptions:安全验证

native:系统崩溃

事件参数:

1:触摸事件百分比,参数–pct-touch

2:滑动事件百分比,参数–pct-motion

3:缩放事件百分比,参数–pct-pinchzoom

4:轨迹球事件百分比,参数–pct-trackball

5:屏幕旋转事件百分比,参数–pct-rotation

6:基本导航事件百分比,参数–pct-nav

7:主要导航事件百分比,参数–pct-majornav

8:系统事件百分比,参数–pct-syskeys

9:Activity启动事件百分比,参数–pct-appswitch

10:键盘翻转事件百分比,参数–pct-flip

11:其他事件百分比,参数–pct-anyevent

5、日志分析

查看logcat日志

adb logcat -b main> E:\logs.txt

四个log缓冲区

radio:输出通信系统的log

system:输出系统组件的log

events:输出event模块的Log

main:所有Java层的log(默认输出该模块的日志)

正常情况

如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成

adb shell monkey -p 包名 -v 1000 > d:\test.txt

异常情况

Monkey 测试出现错误后,一般的分析步骤,看Monkey的日志 (注意第一个swith以及异常信息等)

  1. 程序无响应的问题: 在日志中搜索 “ANR”

  2. 崩溃问题:在日志中搜索 “Exception”,“fatal”,“reboot”,“oom”, (如果出现空指针,NullPointerException) 肯定是有bug

  3. Monkey 执行中断, 在log最后也能看到当前执行次数

测试结束后,需要将手机连接PC,拷贝以下文件:

  • info.txt:此文件在手机上的SDCARD中,主要记录了monkey测试时发送的各种事件,如触摸事件的位置等等。

  • error.txt:此文件在手机上的SDCARD中,主要记录了monkey测试时产生的一些ANR、强制关闭等异常。

  • LOG文件:此文件在手机上的LOG文件夹中,主要主要记录程序对monkey测试时的响应情况。

作者:不负经年

原文链接:https://blog.csdn.net/test_number1/article/details/113783351

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   作为一名新入行的测试人员,如何提高自己在工作中的影响力呢?可能有人会问了:“测试人员不是只要安分守己的做好自己的测试工作不就行了吗?又不是当管理者,为什么要提高影响力呢?”说实话,我刚入行测试的时候也不懂得提高影响力和我的测试工作有什么关联,每天只是按部就班提交缺陷、回归缺陷罢了,交流的圈子很小。  直到有一次和带我的师傅聊起这个事情,我才明白,原来提高自己的影响力对于我们开展测试工作乃至今后职业的发展都大有裨益。提高影响力,说通俗一点就是提高自己在公司或者项目组内的“知名度”,让大家都知道自己。首先,在测试工作中,免不了要和不同角色的人打交道,比如项目经理、产品经理、开发、测试,还有用户...
            0 0 426
            分享
          • 对于一个待测试的对象,我们通常通过以下几个方面来进行测试:功能测试、可靠性测试、易用性测试、效率、可维护性、可移植性、安全性测试、界面测试等。本文将其分成两个方面来看:(1)站在测试人员的技术测试角度(功能测试、可靠性测试、兼容性、可维护性、效率、可移植性、安全性测试、可维护性)(2)站在用户的角度(功能测试、易用性测试)站在测试人员的技术测试角度:1.功能测试功能测试是软件测试中最基本的测试,功能实现不满足要求,软件就不能发布测试。要进行功能测试,首先就需要了解朋友圈的各个功能,那么如何了解朋友圈的功能呢?——需求文档。因为所有的开发设计、测试设计等,都是以需求文档来进行的。需求文档中规定了...
            0 0 5067
            分享
          • 作者:何文斯 - Vince,LLM 应用研究者,Dify 团队产品经理,对 LLM 应用、Embedding、LangChian 等保持持续关注和深度研究。大语言模型之上的应用层面有三项技术需要理解:提示词工程(Prompt Engineering);嵌入(Embedding);微调(Fine-tuning)。其中 Embedding  作为大语言模型理解文本语义的重要技术,在搜索引擎、构建私有知识问答系统、内容推荐系统等都有相当广泛的应用。本文作为我的一篇个人技术笔记在整理了一周后分享到公众号内。Embedding 的基本概念什么是 Embedding,OpenAI 官方文档中是...
            0 0 861
            分享
          • 在测试银行系统接口交易时,除了要关注系统本身的功能之外,主要需要特别注意以下内容:一、测试一些反向的案例,比如账户类型为销户、冻结,或是账户和币种不一致等情况。另外,每个系统在程序设计时,使用的分隔符不一样,在测试输入要素时一定要测当输入内容包含系统分隔符时,系统是否正常,如:竖线(|),单引号('),空格等。二、在测试新系统的时候,可以使用数据库设计手册对照着实际的数据库字段去看,要注意主键的设置、字段类型以及字段长度。这种对照表结构的测试方法比每个字段去逐一编写案例及测试更高效。在进行关联系统接口交易测试时,要注意每个系统的相关字段长度保持一致,如A系统的表结构中,户名字段长度设置...
            1 3 2771
            分享
          • 韩联社10月19日消息,韩国信息通信技术服务商SKInc.C&C数据中心19日全面恢复供电,IT巨头Kakao的多项电信服务也有望当天恢复正常。Kakao服务器所在的SKC&C板桥数据中心15日下午发生火灾,电力供应被切断,导致Kakao提供的电信服务陷入瘫痪状态。SKC&C于19日表示,当天上午5时许,数据中心全面恢复供电。由此,Kakao的多项服务也有望于当天恢复正常。Kakao曾表示,在电力供应恢复正常后,公司所有服务可在2小时之内恢复正常。截至目前,数据中心的Kakao服务器基本完成修复。截至19日上午8时,约3.2万台服务器中有3.1万台左右完成修复。随着数据...
            0 0 515
            分享
      • 51testing软件测试圈微信