当前位置: 首页 > news >正文

IOS 压力测试-UI AutoMonkey

UI AUtoMonkey是一款非常简单的IOS压力测试工具。通过它,你可以向ios设备发送滑动、拖动、旋转、甚至锁屏和解锁指令。原文github地址:https://github.com/jonathanpenn/ui-auto-monkey

如果你的mac电脑已经安装了xcode,那么环境就已经ok了,xcode中已经自带了UI Automation和Instruments。跟着下面的步骤进行操作就可以使用UIAutomonkey.js这个js脚本,进行monkey测试。

1、首先,用Xcode打开你的ios项目,or使用Xcode建立一个新项目,选好机型以后,从“Product”菜单中选择“Profile”(或者直接快捷键Command+i),这样就可以构建ios项目,并启动工具模板选择器。

以这个例子:《一个》为例(来自Github)

 

2、下一步,在选择器中选择“Automation”。当我们创建了自动化模板后,就可以测试app的性能了。

3、在Scripts面板中,点击“Editor Log”,在下拉列表中选择“Script”,点击设置,再点击“Add”按钮,在下拉列表中选择”Create”,就可以新建一个js脚本,将UIAutoMonkey.js这个文件的内容粘贴到新建的js脚本中,或者可以直接点击 imprt 将UIAutoMonkey.js import进去(推荐)。

 

 ,可以直接点击播放按钮,来。

UIAutoMonkey.js的地址https://github.com/jonathanpenn/ui-auto-monkey

4、点击播放按钮,执行这段脚本,monkey测试就开始了

5、获得的log:


 

UIAutoMonkey.js脚本,开头是下面的代码:

    config: {
        numberOfEvents: 1000,
        delayBetweenEvents: 0.05,    // In seconds

        //各事件的几率.
        // 数字越大,几率越大.
        eventWeights: {
            tap: 30,
            drag: 1,
            flick: 1,
            orientation: 1,
            clickVolumeUp: 1,
            clickVolumeDown: 1,
            lock: 1,
            pinchClose: 10,
            pinchOpen: 10,
            shake: 1
        },

        // Probability that touch events will have these different properties
        touchProbability: {
            multipleTaps: 0.05,
            multipleTouches: 0.05,
            longPress: 0.05
        }
        },

numberOfEvent的意思很明确,代表需要产生随机事件的个数。

delayBetweenEvents代表两个事件之间的延迟时间。这个值一般是需要调整的。如果该值为0,那么脚本会尽可能快的向设备发送事件。

eventWeights这个值代表每个事件的触发几率。如果tab事件的值为100、orientation事件的值为1,那么tab事件触发的几率就是orientation的100倍。

touchProbability控制着不同种类的tab事件。默认情况下,tab就是单击事件。调整这些参数可以设置双击、长按事件发生的频率。这些值要界于0、1之间。

转载于:https://www.cnblogs.com/auvxx/p/5757947.html

相关文章:

  • 将 Measurements 和 Units 应用到物理学
  • LeetCode 92 Reverse Linked List II(翻转链表II)(Linked List)(*)
  • 代理设计模式
  • 3.《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:...
  • Linux 第九天: (08月11日) 练习和作业
  • 原生js库,持续更新中……
  • MongoDB工具简要说明
  • apk签名
  • Java中创建对象的5种方式
  • OC多态
  • C标准I/O库函数与Unbuffered I/O函数
  • error: insufficient permissions for device: verify udev rules
  • python爬虫中文网页cmd打印出错问题解决
  • Lambda 表达式(C# 编程指南) 微软microsoft官方说明
  • (一)WLAN定义和基本架构转
  • 2019年如何成为全栈工程师?
  • Angular数据绑定机制
  • CAP理论的例子讲解
  • Git学习与使用心得(1)—— 初始化
  • interface和setter,getter
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Spring Boot MyBatis配置多种数据库
  • 翻译--Thinking in React
  • 构建工具 - 收藏集 - 掘金
  • 基于webpack 的 vue 多页架构
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 算法-插入排序
  • 译米田引理
  • 2017年360最后一道编程题
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​Spring Boot 分片上传文件
  • #162 (Div. 2)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转) Android中ViewStub组件使用
  • (转)关于多人操作数据的处理策略
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net Remoting(分离服务程序实现) - Part.3
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • @Conditional注解详解
  • @JsonFormat与@DateTimeFormat注解的使用
  • @RequestMapping-占位符映射
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [C++基础]-入门知识