您的位置:首页 > 移动开发

移动平台测试自动化工具Appium试用笔记(二)

2014-07-23 09:30 721 查看
对不同的自动化工具做了初步的比较,个人总结下。

1. Appium 使用的Driver是在Selenium Webdriver的基础上进行封装,底层会根据不同的平台决定调用ios的UIAutomation还是Android的UIAutomator. 也就是说用户使用的webdriver相应的方法会根据不同的平台转换成对应的UIAutomaxxxx的方法。所以用户使用Appium的Driver时候就可以像使用Webdriver一样。

2. Android下面的测试支持框架根据出现时间的先后有两个:Test Instrumentation和UIAutomator. 个人认为两者最重要的一个区别是Test Instrumentation框架是不能跨应用,而UIAutomator是可以跨应用的。 也就是说如果你在测试当前应用的时候需要调用照相机去拍照,前者是控制不了的。

3. 自动化测试工具Robotium是基于Test Instrumentation的,所以Robotium是不能跨应用的

4. UIAutomator就是基于UIAutomator框架的,所以可以跨应用

5. Appium是基于UIAutomator和Test Instrumentation的,所以可以跨应用

6. Robotium中只有一个solo类就处理了所有的事情,比如:

public void testAddNote() throws Exception {

solo.clickOnMenuItem("Add note");

//Assert that NoteEditor activity is opened

solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor");

//In text field 0, add Note 1

solo.enterText(0, "Note 1");

solo.goBack();

//Clicks on menu item

solo.clickOnMenuItem("Add note");

//In text field 0, add Note 2

solo.enterText(0, "Note 2");

//Go back to first activity named "NotesList"

solo.goBackToActivity("NotesList");

//Takes a screenshot and saves it in "/sdcard/Robotium-Screenshots/".

solo.takeScreenshot();

boolean expected = true;

boolean actual = solo.searchText("Note 1") && solo.searchText("Note 2");

//Assert that Note 1 & Note 2 are found

assertEquals("Note 1 and/or Note 2 are not found", expected, actual);

}

7. UIAutomator主要是用几个类进行控制:"UiDevice,UiSelector,UiScrollable,UiObjectUiCollection.

public void testDemo() throws UiObjectNotFoundException {

getUiDevice().pressHome();

// 进入设置菜单

UiObject settingApp = new UiObject(new UiSelector().text("MAJC Box"));

settingApp.click();

//休眠3秒

try {

Thread.sleep(3000);

} catch (InterruptedException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

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

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

settingItems.setAsHorizontalList();



UiObject languageAndInputItem = settingItems.getChildByText(

new UiSelector().textContains("192.168.1.174"), "MAJC Box\n192.168.1.174", true);

languageAndInputItem.clickAndWaitForNewWindow();



UiObject btnSetup = new UiObject(new UiSelector().resourceId("com.incasedata.app:id/btn_setting_up"));

btnSetup.clickAndWaitForNewWindow();

UiObject btnNext = new UiObject(new UiSelector().resourceId("com.incasedata.app:id/btn_next"));

btnNext.clickAndWaitForNewWindow();



//UiObject imgView = new UiObject(new UiSelector().resourceId("com.incasedata.app:id/user_avatar"));

//imgView.clickAndWaitForNewWindow();

UiObject txtUserName = new UiObject(new UiSelector().resourceId("com.incasedata.app:id/edit_account"));

txtUserName.setText("MAJCBOXISTHEBESTTOOLSFORYOUTOUSERPLEASEGOAHEAD");





}

8. 易测云可以接受Robotium框架开发的测试脚本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: