热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidApp压力测试

如何做androidapp的压力测试?为什么要开展压力测试1.提高产品稳定性2.提高产品的留存率什么时候开展压力测试1.首轮功能测试通过后

如何做android app的压力测试?

  为什么要开展压力测试

    1.提高产品稳定性

    2.提高产品的留存率    

  什么时候开展压力测试

    1.首轮功能测试通过后

    2.下班后夜间进行

 

测试需求:找美女聊天

        1.查找

        2.添加

        3.聊天

  手工测试场景

        1.查找

        2.添加

        3.聊天

 

  自动化测试场景

      上面一系列事件的组合,模拟事件流

  

monkey ADB

  发送伪随机用户事件的工具,在手机系统中;

  使用monkey需要将手机和电脑连接,通过ADB(Android Debug Bridge)进行连接

  硬链接:USB线;软连接ADB

 

monkey script (不支持截屏操作)

  一组可以被monkey识别的命令集合

  可以完成重复固定的操作

monkey runner

  提供一系列API,可以完成模拟事件,截屏操作

  1.monkey runner :用来连接设备或模拟器

  2.monkey device:提供安装、卸载应用,发送模拟事件

  3.monkey image:完成保存图像、对比操作

  可以完成的测试类型:

    1.多设备的控制

    2.功能测试

    3.回归测试

    

monkey 和 monkey runner 的区别

  monkey:在 adb shell 中,生成用户或系统的伪随机事件

  monkey runner:通过API定义特定命令和事件控制设备

    

压力测试结果

  1.CRASH

    崩溃,应用程序使用过程中非正常退出  

  2.ANR(application not responding)

    应用程序响应时间过长

    

 

APP的压测实践

  测试环境:

    1.android SDK

      下载地址:www.android-studio.org

    配置环境变量:

      mac:

        

        添加:    

        执行使配置生效:

       

      windows系统:

        同MAC,只需添加环境变量即可

     

    2.python

      安装python

      www.python.org

 

压测过程:

    1.手机开发者选项中勾选USB调试

    2.确认手机和电脑连接成功

        2.1数据线连接

        2.2 adb devices 确认

          

    3.安装测试APP

        adb install package.apk

    4.发送压力指令

        adb shell monkey   (mongkey随机发送1000个随机事件)       

 

     5.获取APP包名

      adb logcat |grep START  (抓取日志中包含START标签的信息)

      

 

     6.指定包打压力

      adb shell monkey -p package

 

    7.列出执行的操作事件:-v

      adb shell monkey -v -p package 

monkey高级参数应用

  1.throttle参数:  指定事件之间的间隔

    adb shell monkey --throttle<毫秒数> 1000

 

  2.seed参数:  指定随机生成数的seed值,每一个seed值都会生成唯一的操作序列,只要seed值一样,操作就是一样的

    adb shell monkey -s  1000

 

  3.触摸事件:  设定触摸事件百分比(点击事件占多大比例)

    adb shell monkey --pct-touch<数值:100就是100%>

    

 

  4.动作事件:  设定动作事件百分比(点击屏幕进行其他操作,然后松手)

    adb shell monkey --pct-motion<数值>  (如果设置的某两种百分比之和不为100,那么其他操作会占用剩余百分比)

    

  5.轨迹球事件:  设定轨迹球事件的百分比

    adb shell monkey --pct-trackball<数值>

  

  6.基本导航事件:  设定基本导航事件百分比,上下左右

    adb shell monkey --pct-nav<数值>

  

  7.主要导航事件:  设定主要导航事件百分比,中间键,返回键,菜单按键

    adb shell monkey --pct-majornav<数值>

 

  8.系统导航事件:  设定系统导航事件百分比,HOME、BACK、拨号、音量 

    adb shell monkey --pct-syskeys<数值>

  

  9. 启动Activity事件:  设定启动Activity的时间百分比

    adb shell monkey --pct-appswitch<数值>

 

  10.其他系统的事件:  设定其他不常用的事件百分比

    adb shell monkey --pct-anyevent<数值>

 

  11.崩溃事件:  忽略崩溃和异常直至完成

    adb shell monkey --ignore-crashes   

    

  12.超时时间:  忽略超时事件直至完成

    adb shell monkey --ignore-timeouts

    

CRASH结果汲取

  LOG输出的CRASH,下方有本次的seed值

        

 

  

 

  

ANR结果汲取

  ANR日志,同样有seed值;

  

 

  在手动点击出现ANR时,在哪里找log呢?

    1.adb shell  进入手机系统

    2.cd /data/anr/  中  traces.txt中

    3.more traces.txt  查看,如果出现ANR,那么会放在文件最上方

  

 monkey script

  可以进行重复操作,但是不能截屏

  执行命令:

    adb shell monkey -f <脚本文件>

  脚本命令:

    

    

    

    

    

    

 

实例:浏览器重复搜索100次

1.启动APP  2.点击输入框  3.输入查询词  4.点击回车  5.点击搜索按钮  6.等待结果  7.点击清空记录

 脚本内容:

  

  activity名要连上包名

 

 注;手机的monkey是不能执行电脑上的脚本的,需要将脚本放到手机里去执行,命令:

  adb push demo.script /data/local/tmp/

  adb shell

  cd /data/local/tmp/

  ls          确认脚本被推入

  ll          查看脚本推入时间

  启动脚本:

    mokey -f demo.script 3

 

  启动程序问题:

      android代码中,activity中如果不加入下图蓝色代码,那么程序不允许外部调起,也就说命令行无法调起

    

 

获取APP坐标:

  在 android-sdk 中的 uiautomatorviewer

  uiautomatorviewer  运行

  

 

 

 

 monkey runnre   API:

    monkeyrunner所在目录: android-sdk/tools

      主要实现脚本和用户间的沟通

  

      (正文、标题、button按钮)

      

      执行:

        monkeyrunnre demo.py

     

     

          等待链接的超时时间,单位秒, ID的字符串名称

 

   

 

     

 

     

 

     

 

    

    

    

    

     

 

 

实现搜索框输入查询,截图:

    

 

 执行脚本:

  monkeyrunner text.py

 

monkeyrunner要执行多次,使用python脚本循环操作,多线程来实现

 


推荐阅读
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文介绍了如何在 macOS 上安装 HL-340 USB 转串口驱动,并提供了详细的步骤和注意事项。包括下载驱动、关闭系统完整性保护、安装驱动以及验证安装的方法。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 在Linux系统中,针对USB输入设备(如鼠标和电容触摸屏)的动力分配后,自动创建的input节点可能导致事件处理不稳定。本文探讨了如何在Qt开发环境中,通过合理配置设备事件处理器,确保USB输入设备的稳定性和可靠性。具体实例包括使用udev规则进行设备节点的持久化管理,以及通过事件监听机制优化事件处理流程。 ... [详细]
  • 在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统
    本文详细介绍了在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统的步骤。首先,通过“文件”菜单选择“新建虚拟机”并进入自定义设置。接着,在硬盘兼容性选项中选择默认设置。为了更好地进行Linux操作系统的安装练习,建议选择稍后安装操作系统,并在虚拟机安装完成后,根据实际需求删除不必要的硬件组件。此外,本文还提供了详细的配置参数和注意事项,帮助用户顺利完成整个部署过程。 ... [详细]
author-avatar
谦谦骄子_458
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有