App、Web自动化测试平台实战(一)

官网:https://developer.android.com/studio/test/monkey

基本操作

  • 基本配置:设置操作数量
  • 操作限制:只测指定的包
  • 事件类型和出现频率
  • 调试选项
adb shell monkey -p com.xueqiu.android -v 500
adb shell monkey -p com.xueqiu.android -vv 500
adb shell monkey -p com.xueqiu.android -v --throttle 300 30
adb shell monkey -p com.xueqiu.android -v -s 200  500

事件操作

adb shell monkey -p com.xueqiu.android -v --pct-nav 70 --pct-touch 30  500

–pct-touch :点击事件(按下弹起)
–pct-motion 移动事件(按下,移动,弹起)
–pct-trackball 轨迹球事件(随机移动+概率点击)
–pct-nav 导航事件(点击设备的上、下、左、右按键)
–pct-majornav :点击主要导航按键的操作(如键盘的中间键、回退按键、菜单按键)
–pct-syskeys :点击系统保留使用的按键的操作(如点击Home键、返回键、音量调节键等)
–pct-appswitch :启动Activity的操作(执行startActivity()方法)
–pct-anyevent :不常用的设备上的按钮

多设备 monkey 并行

#!/bin/bash
devices=`adb devices | grep - | awk '{print $1}'`
for device in $devices; do
 { nohup adb -s $device shell monkey -p com.xueqiu.android --pct-touch 30 --pct-nav 40 -v --throttle 100 300 & }
done

maxim

https://github.com/zhangzhao4444/Maxim

adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.xueqiu.android --uiautomatormix --running-minutes 60 -v -v

appcrawler

点击我的,进行滑动,点击设置
在设置页面完成自动化遍历

capability:

  noReset: "true"

  fullReset: "false"

  appium: "http://127.0.0.1:4723/wd/hub"

  appPackage: "com.xueqiu.android"

  appActivity: ".view.WelcomeActivityAlias"

  udid: "emulator-5556"

testcase:

  name: "TesterHome AppCrawler"

  steps:

    - xpath: 我的

      action: click

    - xpath: //*

      action: driver.swipe(0.5, 0.9, 0.5, 0.1)

    - xpath: 设置

      action: click

弹窗解决

点击按钮,触发triggerActions关闭登录页面

testcase:
  name: "TesterHome AppCrawler"
  steps:
    - xpath: "//*[@resource-id='com.xueqiu.android:id/post_status']"
      action: click
triggerActions:
    - xpath: "//*[@resource-id='com.xueqiu.android:id/iv_close']"
      action: click

作业

点击搜索按钮,输入alibaba,点击阿里巴巴-SW
选取股票,先后遍历如图两个部分

image

配置文件:
task.yml.txt (2.2 KB)
日志文件如下:
appcrawler.log (96.8 KB)

为什么在current index = 12时,就退出了要遍历的页面呢,没有继续遍历剩下的两个已经指定的遍历范围?