uiautomator自动化测试原理和实现过程

uiautomator自动化测试原理和实现过程

博主博客网站:https://blog.zhenglin.work 干货满满

原理阐述

​ 本人从事过很长一段时间的自动化测试,其中安卓的自动化主要选用的uiautomator框架,我这里阐述一下uiautomator自动化测试的原理,从整体入手、化繁为简,可以轻松理解这款框架精妙之处。就相当于有了屋子的图纸,再分步来添砖加瓦就容易的多。

​ UIAutomator是Google开发的自动化测试工具,无需源代码,可在不同App间调度;并不需要知道程序内部的结构,通过界面来点击、返回、退出等来对程序进行测试,所以它也是黑盒测试。

​ uiautomator,把这个单词拆开ui+auto+mator,就很容易理解了,是基于UI界面然后对某个控件操作的自动化;利用uiautomator框架获取到APP 的UI(界面)上各种元素,然后实现对此app各种操作。从自带的控件获取工具uiautomatorview就可以看出来APP控件名称和方法等。
在这里插入图片描述

可以看出来,每一个APP图标就是一个控件(如果这里面出现了不能识别中文,把安卓设备自带uiautomator.jar替换成最新的就行了)

​ uiautomator框架是用Java语言编写的,也是三段体的,一个完整自动化过程必须包含setup 、自动化方法、 teardown 三个部分;这就像火车一样,有车头(setup)、车身(方法)、车尾(teardown);车身(自动化方法体)具体有几节、是载货还是拉人这个每次都由自己编写代码来定义;如果方法所在的类中没有setup、teardown,自动化执行此方法时,它会直接使用(继承的)父类的setup和teardown,如果父类都没有setup和teardown,它会执行uiautomator框架顶级类中setup和teardown;setup一般用来初始化,teardown用来复位;比如你上次自动化停留在某款APP的设置界面;再次执行新的自动化方法时,先初始化到home;这样就能保证左右滑动后能找到其他APP;teardown复位呢,就相当于用例执行完成后停留APP设置界面,执行teardown复位到此APP的主页;同样车头(setup)和车尾(teardown)也可以被改造(重构) ,定制化出来的火车能更好的适应实际生产情况。就像同一个UI(界面)就可以定义为一个特殊的火车,如设置界面中,这个界面所有控件的测试方法可以写到一个类中,共用setup和teardown;初始化(车头)都是打开应用进入我的-设置界面,并把所有开关按钮置为关闭状态;复位(复位)都是点击两次返回按钮进入到APP的初始主页中。然后再来编写某个控件测试的方法。这种三段体架构的精髓在于执行方法即可,初始化和复位无需重复编写,且自动执行,如果初始化和复位写的比较规范,相当于测试下一条用例时前置条件有了双保险;

代码展示

setup重构代码:

@Override
	protected void setUp() throws Exception {
   
		super.setUp();
		
		initDeviceParams();

		callShell("rm -rf /data/anr");
		callShell("rm -rf /data/tombstones");

		initCaseFolder();

		registerCommonWatcher();

		if (!device.isScreenOn()) {
   
			device.wakeUp();
			sleepSec(1);
		}
		
		launchHomeApp();
	}

方法体代码:

@CaseName("点击快捷菜单中的天气区域")
	public void clickWeatherArea() throws UiObjectNotFoundException, RemoteException {
   
		
		addStep("进入快捷菜单页面");
		clickExpandButtonOnStatusBar();
		sleepSec(2);
		
		addStep("发现时间区域,进入快捷菜单")</
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值