monkey命令 appium 自动化吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了monkey命令 appium 自动化吗相关的知识,希望对你有一定的参考价值。

参考技术A calendarFormat (Sim-only) 为ios的模拟器设置日历格式 如 gregorian (公历)
bundleId 被测应用的 bundle ID 。用于在真实设备中启动测试,也用于使用其他需要 bundle ID 的关键字启动测试。在使用 bundle ID 在真实设备上执行测试时,你可以不提供 app 关键字,但你必须提供 udid 。 如 io.appium.TestApp
udid 连接的真实设备的唯一设备编号 ( Unique device identifier ) 如 1ae203187fc012g
launchTimeout 以毫秒为单位,在 Appium 运行失败之前设置一个等待 instruments 的时间 比如: 20000
locationServicesEnabled (Sim-only) 强制打开或关闭定位服务。默认值是保持当前模拟器的设定 true 或 false
locationServicesAuthorized (Sim-only) 通过修改 plist 文件设定是否允许应用使用定位服务,从而避免定位服务的警告出现。默认值是保持当前模拟器的设定。请注意在使用这个关键字时,你同时需要使用 bundleId 关键字来发送你的应用的 bundle ID。 true 或者 false
autoAcceptAlerts 当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择接受( Accept )。默认值 false。 true 或者 false
autoDismissAlerts 当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择不接受( Dismiss )。默认值 false。 true 或者 false
nativeInstrumentsLib 使用原生 intruments 库 (即关闭 instruments-without-delay ) true 或者 false
nativeWebTap (Sim-only) 在Safari中允许“真实的",非基于 javascript 的 web 点击 (tap) 。 默认值: false。注意:取决于 viewport 大小/比例, 点击操作不一定能精确地点中对应的元素。 true 或者 false
safariInitialUrl (Sim-only) (>= 8.1) 初始化 safari 的时使用的地址。默认是一个本地的欢迎页面 如 https://www.github.com
safariAllowPopups (Sim-only) 允许 javascript 在 Safari 中创建新窗口。默认保持模拟器当前设置。 true 或者 false
safariIgnoreFraudWarning (Sim-only) 阻止 Safari 显示此网站可能存在风险的警告。默认保持浏览器当前设置。 true 或者 false
safariOpenLinksInBackground (Sim-only) Safari 是否允许链接在新窗口打开。默认保持浏览器当前设置。 true 或者 false
keepKeyChains (Sim-only) 当 Appium 会话开始/结束时是否保留存放密码存放记录 (keychains) (库(Library)/钥匙串(Keychains)) true 或者 false
localizableStringsDir 从哪里查找本地化字符串。默认值 en.lproj en.lproj
processArguments 通过 instruments 传递到 AUT 的参数 如 -myflag
interKeyDelay 以毫秒为单位,按下每一个按键之间的延迟时间。 如 100
showIOSLog 是否在 Appium 的日志中显示设备的日志。默认值 false true 或者 false
sendKeyStrategy 输入文字到文字框的策略。模拟器默认值:oneByOne (一个接着一个) 。真实设备默认值:grouped (分组输入) oneByOne, grouped 或 setValue
screenshotWaitTimeout 以秒为单位,生成屏幕截图的最长等待时间。默认值: 10。 如 5
waitForAppScript 用于判断 "应用是否被启动” 的 iOS 自动化脚本代码。默认情况下系统等待直到页面内容非空。结果必须是布尔类型。 例如 true;, target.elements().length > 0;, $.delay(5000); true;

appium拓展monkey

1.monkey简介

  下载Android studio后,sdk/tools下会有一个bat文件 monkeyrunner.bat,这就是monkey,monkey 底层还是调用adb的各种命令

  monkey命令以伪随机测试的形式对app进行各种操作的测试,常用于app产品的冒烟测试和终端性能测试,设置点击次数很多时,也可以看成压测

2.使用

  adb shell monkey 的常用参数(执行adb shell monkey可以查看所有参数)
    -p 选择包名

    --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes  使用4个ignore参数,让monkey忽略掉可能导致monkey脚本终止的错误,继续执行直到所有的事件全部完成

    --pct 指定某类事件的百分比

    -v 指定日志级别,一般使用 -v -v -v 指定最高级别

    -s 随机事件的种子数,种子数seed相同则生成相同随机操作序,可以随便指定,如123456;若不指定,则会自动分配一个seed

    --throttle 设置操作的延时,单位为 ms 

    COUNT 执行次数(执行次数参数写在最后面)

  如 随机执行操作 

    adb shell monkey -p com.baidu.tieba -v -v -v --throttle 200  200 > E:\\monkey.log

  如 使用ignore 和 pct 参数 

    adb shell monkey -p com.taobao.taobao --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes  --pct-touch 50 --pct-motion 50 -v -v -v 2000>D:\\taobao3.log

3. log解析

  (1)monkey中的seed值,代表着种子序列的编号,相当于在执行过程中挑选了一个对应编号的猴子,如果测试出现了bug需要复现,可以尝试使用同样的seed值和pct参数去完成操作(不一定是百分百复现)

  (2)monkey事件百分比,如点击,滚动等,如下图的 0~11即为各种事件,各事件对应的具体操作会在下面贴出参考链接

   (3)查看日志的时候,主要搜索各种异常log的关键词,如 error,exception,ANR(application not responding),crash,Fail 等

4.参考链接

  monkey 用法:https://www.cnblogs.com/miniren/p/4858788.html

  monkey 事件百分比:https://blog.csdn.net/zhanglu_400/article/details/50750298

以上是关于monkey命令 appium 自动化吗的主要内容,如果未能解决你的问题,请参考以下文章

Python Appium自动化测试 Monkey搭建+操作

Appium自动化测试教程-自学网-monkey事件

测试总结笔记——Appium自动化——测试工具MonkeyMonkeyRunner

appium-循环执行一条用例,失败时停止执行

android sdk安装

Android 自动化测试框架