怎么启动ui aotomator viewer

怎么启动ui aotomator viewer,第1张

Settings主界面Activity使用的是Settings

Settings子界面Activity基本上都是使用SubSettings

Settings与SubSettings中都是空Activity,这里的空Activity指的是没有重写7大生命周期方法

Settings与SubSettings都是继承于SettingsActivity

主界面使用的layout是:settings_main_dashboard,子界面使用的layout是:settings_main_prefs

在SettingsActivity的onCreate方法中,通过判断当前是Settings还是SubSettings来确定用什么布局来显示

@Override

protected void onCreate(Bundle savedState) {

superonCreate(savedState);

mIsShowingDashboard = classNameequals(SettingsclassgetName());

setContentView(mIsShowingDashboard

Rlayoutsettings_main_dashboard : Rlayoutsettings_main_prefs);

}

这里会有两个问题,Settings作为主界面,加载的是settings_main_dashboardxml文件,下面是这个xml文件具体内容

uiautomator和appium都作为移动端自动化测试的工具那么他们有什么区别呢

1适用场景不同

uiautomator适用于adroid手机端自动化测试而appium不仅适用于Android手机,同样适用于ios手机

2作用域不同

在Android系统场景中,uiautomator可跨app,在手机ROM层面实现交互而appium只适合在应用内部,不能跨app

而且appium可以实现webview界面的自动化测试,而uiautomator却不能

3原理

appium是通过webDriver调起应用,以appium server作为桥梁,通过Bootstrapjar调用的android端uiautomator命令和ios端uiautomation/XCTest(ios 8以上)

uiautomator通过android instrumentation获取系统上下文,设备信息状态等

互相学习android自动化测试,请关注我的微博:weibocom/ganchaojiang

一、一个BUG引发的问题

如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”。这个问题我们如何验证呢?我想,最好的方式应该是自动化测试。

那么,自动化测试可以完成哪些任务呢?

简单的说,那些重复性的测试工作,都可以交给自动化完成:

1、设置手机的语言

2、添加、删除、收藏联系人

3、拨号、挂断

4、甚至发送短信、收藏短信

如果需要上面的功能,那么就开始自动化之旅吧。

二、Android自动化测试简单介绍

Android自动化测试主要分为Monkeyrunner、Rubotium、UiAutomator、Monkey(在我看来这个不算)等。主要特点:

1、Monkeyrunner:优点: *** 作最为简单,可以录制测试脚本,可视化 *** 作;缺点:主要生成坐标的自动化 *** 作,移植性不强,功能最为局限;

2、Rubotium:主要针对某一个APK进行自动化测试,APK可以有源码,也可以没有源码,功能强大;缺点是针对APK *** 作,而且需要对APK重新签名(有工具),因此 *** 作相对复杂;

3、UiAutomator:优点:可以对所有 *** 作进行自动化, *** 作简单;缺点:Android版本需要高于40,无法根据控件ID *** 作,相对来说功能较为局限,但也够用了;

4、Monkey:准确来说,这不算是自动化测试,因为其只能产生随机的事件,无法按照既定的步骤 *** 作;

由上面介绍可以有这样的结论:测试某个APK,可以选择Rubotium;测试过程可能涉及多个APK,选择UiAutomator;一些简单的测试,选择Monkeyrunner;

本文主要介绍UiAutomator的使用方法。

三、环境搭建

31、必备条件:

1、JDK

2、SDK(API高于15)

3、Eclipse(安装ADT插件)

4、ANT(用于编译生成jar)

32、简要步骤:

1、安装JDK并添加环境变量。

安装后,一定要通过JAVA_HOME的方式添加环境变量,即先建立JAVA_HOME变量,然后在path中添加%JAVA_HOME%\bin;

2、添加SDK环境变量。

一定要先建立ANDROID_HOME,然后把%ANDROID_HOME%\tools添加到path中;

3、安装Eclipse,并安装ADT插件。

4、安装ANT工具,并添加环境变量。

同样一定要先建立%ANT_HOME%变量,然后在path中添加%ANT_HOME%\bin

四、详细 *** 作

41、建立工程

用Eclipse新建Java Project,注意,不是Android Project!

42、添加JUnit库

next->Libraries->Add Library

43、添加Android库

Add External JARs:

找到路径Android-sdk\platforms\android-17\下面的androidjar和uiautomatorjar添加进来:

所有库添加完应该是这个样子:

44、在src中添加包,然后添加class文件

文件内容为:

[java] view plaincopy

package com;

import comandroiduiautomatorcoreUiObject;

import comandroiduiautomatorcoreUiObjectNotFoundException;

import comandroiduiautomatorcoreUiScrollable;

import comandroiduiautomatorcoreUiSelector;

import comandroiduiautomatortestrunnerUiAutomatorTestCase;

public class Runner extends UiAutomatorTestCase {

public void testDemo() throws UiObjectNotFoundException {

getUiDevice()pressHome();

// 进入设置菜单

UiObject settingApp = new UiObject(new UiSelector()text("Settings"));

settingAppclick();

//休眠3秒

try {

Threadsleep(3000);

} catch (InterruptedException e1) {

// TODO Auto-generated catch block

e1printStackTrace();

}

// 进入语言和输入法设置

UiScrollable settingItems = new UiScrollable( new UiSelector()scrollable(true));

UiObject languageAndInputItem = settingItemsgetChildByText(

new UiSelector()text("Language & input"), "Language & input", true);

languageAndInputItemclickAndWaitForNewWindow();

}

}

上面工程路径在e:\workspace\AutoRunner,类全名为comRunner,至于具体的作用我们现在不去关心。

45、找到SDK ID

CMD进入\Android-sdk\tools\目录下,运行命令:

android list

查看对应android版本的SDK的ID值,当前是60;

46、创建build文件

仍然在\Android-sdk\tools\目录下,运行命令:

android create uitest-project -n <name> -t <android-sdk-ID> -p <path>

比如:

android create uitest-project -n AutoRunner -t 60 -p e:\workspace\AutoRunner

上面的name就是将来生成的jar包的名字,可以自己定义,android-sdk-ID就是上面看到的6;path是Eclipse新建的工程的路径;运行命令后,将会在工程的根目录下生成buildxml文件。如果没生成,检查上面的步骤。

47、编译生成jar

CMD进入项目的工程目录,然后运行ant build,将使用ant编译生成jar,成功将会提示:

然后会在bin目录下生成jar文件。

48、push并运行jar

adb push <jar文件路径> data/local/tmp

adb shell uiautomator runtest <jar文件名> -c <工程中的类名,包含包名>

比如:

adb push e:\workspace\AutoRunner\bin\AutoRunnerjar data/local/tmp

adb shell uiautomator runtest AutoRunnerjar -c comRunner

然后就能看到手机会按照Runner中的步骤自动执行。具体效果就是,进入设置菜单,然后再进入“语言和输入法”菜单

五、代码分析

我们从几个最重要的对象来介绍。

51、UiDevice对象

getUiDevice()的方法可以得到一个UiDevice的对象,通过这个对象可以完成一些针对设备的动作:

click(int x, int y)

----在(x,y)表示的像素地方点击

pressBack()

pressDelete()

pressEnter()

pressHome()

pressMenu()

pressSearch()

----点击相应的按键

wakeUp()

----当手机处于灭屏状态时,唤醒屏幕,并解锁。

swipe(startX, startY, endX, endY, steps)

----在手机上滑动,从(startX,startY)到(endX,endY)。steps表示滑动的这个距离分为几步完成,数目越少,滑动幅度越大。

setOrientationLeft()

setOrientationRight()

----将手机向相应方向旋转。

setOrientationNatural()

----将手机旋转状态回归正常。

52、UiSelector对象

这个对象可以理解为一种条件对象,描述的是一种条件,经常配合UiObject使用,可以得到某个(某些)符合条件的控件对象。

checked(boolean val)

----描述一种check状态为val的关系。

className(className)

----描述一种类名为className的对象关系

clickable(boolean val)

>

以上就是关于怎么启动ui aotomator viewer全部的内容,包括:怎么启动ui aotomator viewer、android性能测试工具有哪些、bat启动程序命令startexexml等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9639589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存