单元测试 — UIAutomator2.0

UI 自动化测试

听说可以模拟屏幕操作, 感觉挺有意思的, 有机会就学了一下;
// 今天试了下, 模拟点击屏幕, 可惜一秒只可以点击5~6次, (ノ ̄(エ) ̄)ノ

添加依赖

运行的时候, 在该类上右击run'类名'

API

UiDevice

  • pressBack() 模拟按下返回按钮
  • pressHome() 模拟按下主菜单键
  • sleep() 熄屏
  • wakeUp() 唤醒屏幕
  • isScreenOn() 检查屏幕是否开启
  • getDisplayWidth() 获取display区域宽度
  • getDisplayHeight() 获取display区域高度
  • click(int x, int y) 点击指定坐标
  • getCurrentPackageName() 获取当前应用包名
  • getCurrentActivityName() 获取当前 Activity 名称
  • findObject(BySelector selector) 通过 BySelector 找到 Object
  • wait(SearchCondition condition, long timeout) 等待 timeout 后执行 condition
  • swipe(int startX, int startY, int endX, int endY, int steps) 模拟滑动屏幕
  • drag(int startX, int startY, int endX, int endY, int steps) 模拟拖动

BySelector
规则

  • checkable(boolean isCheckable)
  • checked(boolean isChecked)
  • clazz(String packageName, String className)
  • clazz(String className)
  • depth(int min, int max)
  • desc(String contentDescription)
  • pkg(String applicationPackage)
  • res(String resourcePackage, String resourceId)

By
By的方法都是static方法, 用来生成一个BySelector;

  • desc(String contentDescription)
  • pkg(Pattern applicationPackage)
  • ……

InstrumentationRegistry

  • getContext() 测试程序的Context
  • getTargetContext() 目标程序的Context

UiObject2

  • click() 模拟单击这个对象
  • click(long duration) 点击时间
  • clickAndWait(EventCondition condition, long timeout)
  • findObject(BySelector selector)
  • getChildCount() 获取子view数量
  • getClassName()
  • getParent()
  • isCheckable()
  • isClickable()
  • isFocused()
  • recycle() 回收这个对象
  • wait(UiObject2Condition condition, long timeout)

Until

Until类里都是静态方法 返回 UiObject2Condition<> 对象

  • clickable(boolean isClickable)
  • focused(boolean isFocused)
  • ………

指令

有关测试的指令

0 Comments
Leave a Reply