E本特色应用APP回归测试

    2013年本人在E人E本对平板中的特色应用进行回归自动化测试,自动化脚本采用Java语言编写。代码如下:

    

/*	
 * 	Copyright (C)2013  Ebensz Auto Test
 * 
 * 		create by [email protected]
 * 
 * 	V0.2(20131108): optimize and Refactoring code:With an array called;
 * 	V0.1(20131105): create this program;
 * 
 * 	Function:
 * 		1. connect wlan network;
 * 		2. set launage;
 * 		3. run apps;
 * 		4. screencap to sdcard;
 * 
 */

package com.ebensz.regressiontest;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class AppTest extends UiAutomatorTestCase 
{
	
// set varilable
	
static String SSID = "QAC_TS";
	
	
static String PASSWORD = "8888888888";
	
	
static String[] LEFT_SCREEN_NAME = {"Camera","device","People","Messaging","EReader","Eben Security Guards",
		
"Gallery"};
	
	
static String[] MID_SCREEN_NAME = {"Handwriting suite","Calendar","HwOffice","Browser","HwMail"};
	
	
public void testDemo() throws UiObjectNotFoundException
	
{
		
// press home key
		
int i;
		
		
getUiDevice().pressHome();
		
		
wifiConnect();
		
		
deviceInfo();
		
		
for (i=0; i<=LEFT_SCREEN_NAME.length; i++)
		
{
			
leftMove();
			
			
startLaunchApk(LEFT_SCREEN_NAME[i]);
		
}
		
		
for (i=0; i<=MID_SCREEN_NAME.length; i++)
		
{
			
startLaunchApk(MID_SCREEN_NAME[i]);
		
}

		
startAllApp("EnoteWriter");
		
		
startAllApp("ThemeController");
				
	
}
	
	
private void wifiConnect() throws UiObjectNotFoundException
	
{
		
getUiDevice().pressHome();
		
		
// select all apps
		
UiObject allAppsButton = new UiObject(new UiSelector().description("Apps"));
		
		
allAppsButton.clickAndWaitForNewWindow();
		
        // select all apps tab
        UiObject appsTab = new UiObject(new UiSelector().text("Apps"));
  
        // click all apps tab
        appsTab.click();
  
        // set screen display mode
        UiScrollable appViews = new UiScrollable(new UiSelector().scrollable(true));
  
        // set horiz mode
        // appViews.setAsHorizontalList();
  
        if (allAppsButton.exists() && allAppsButton.isEnabled()) {
            // allAppsButton not display,don't exec it
            allAppsButton.click();
        }
        // find "settings" and click it
        UiObject settingsApp = appViews.getChildByText(
                new UiSelector().className(android.widget.TextView.class.getName()), "Settings");
        settingsApp.clickAndWaitForNewWindow();
  
        // verify Open screen is Settings
  
        UiObject settingsValidation = new UiObject(new UiSelector().packageName("com.android.settings"));
        // if not exists,then print error message
        assertTrue("Unable to detect Settings", settingsValidation.exists());
        
		
//	click WLAN switch wifiOn
        UiObject wifiText = new UiObject(new UiSelector().text("WLAN"));
        
        wifiText.click();
        
        getUiDevice().click(150,150);
        
        sleep(2000);
        
        UiObject wifiSsid = new UiObject(new UiSelector().text(SSID));
        
        wifiSsid.click();
        
        // set the SSID's  password
		
UiObject passWord = new UiObject(new UiSelector().index(1).className("android.widget.EditText"));
		
		
passWord.setText(PASSWORD);
		
		
// connect the network
		
UiObject connBotton = new UiObject(new UiSelector().text("Connect"));
		
		
connBotton.click();
		
		
sleep(2000);
		
		
getUiDevice().pressHome();
	
}

	
private void deviceInfo() throws UiObjectNotFoundException
	
{
		
getUiDevice().pressHome();
		
		
// select all apps
		
UiObject allAppsButton = new UiObject(new UiSelector().description("Apps"));
		
		
allAppsButton.clickAndWaitForNewWindow();
		
        // select all apps tab
        UiObject appsTab = new UiObject(new UiSelector().text("Apps"));
  
        // click all apps tab
        appsTab.click();
  
        // set screen display mode
        UiScrollable appViews = new UiScrollable(new UiSelector().scrollable(true));
  
        // set horiz mode
        // appViews.setAsHorizontalList();
  
        if (allAppsButton.exists() && allAppsButton.isEnabled()) {
            // allAppsButton not display,don't exec it
            allAppsButton.click();
        }
        // find "settings" and click it
        UiObject settingsApp = appViews.getChildByText(
                new UiSelector().className(android.widget.TextView.class.getName()), "Settings");
        settingsApp.clickAndWaitForNewWindow();
  
        // verify Open screen is Settings
  
        UiObject settingsValidation = new UiObject(new UiSelector().packageName("com.android.settings"));
        // if not exists,then print error message
        assertTrue("Unable to detect Settings", settingsValidation.exists());
        
        getUiDevice().swipe(100,900,100,200,2);
        
        UiObject devicesInfo = new UiObject(new UiSelector().text("About phone"));
        
        devicesInfo.click();
        
        sleep(500);
        
        Screencap("deviceInfo");
        
        sleep(1000);
        
        getUiDevice().pressHome();
	
}
	
	
private void startLaunchApk(String apks) throws UiObjectNotFoundException
	
{
		
// move to left home page
		
//leftMove();
		
		
UiObject apksButton = new UiObject(new UiSelector().text(apks));
		
		
apksButton.clickAndWaitForNewWindow();
		
		
Screencap(apks);
		
		
getUiDevice().pressBack();
		
		
getUiDevice().pressHome();
		
	
}
	
	
private void startAllApp(String apks) throws UiObjectNotFoundException
	
{
		
//	run all apps page apk
		
//	press home key
		
getUiDevice().pressHome();
		
		
// select all apps
		
UiObject allAppsButton = new UiObject(new UiSelector().description("Apps"));
		
		
allAppsButton.clickAndWaitForNewWindow();
		
        // select all apps tab
        UiObject appsTab = new UiObject(new UiSelector().text("Apps"));
  
        // click all apps tab
        appsTab.click();
  
        // set screen display mode
        UiScrollable appViews = new UiScrollable(new UiSelector().scrollable(true));
  
        // set horiz mode
        // appViews.setAsHorizontalList();
  
        if (allAppsButton.exists() && allAppsButton.isEnabled()) {
            // allAppsButton not display,don't exec it
            allAppsButton.click();
        }
        // find "settings" and click it
        UiObject startApps = appViews.getChildByText(
                new UiSelector().className(android.widget.TextView.class.getName()), apks);
        startApps.clickAndWaitForNewWindow();
        
        sleep(2000);
        
        Screencap(apks);
        
        getUiDevice().pressBack();
        
        getUiDevice().pressHome();
	
}
	
	
private void leftMove() throws UiObjectNotFoundException
	
{
		
// press home key
		
getUiDevice().pressHome();
		
		
getUiDevice().pressHome();
		
		
sleep(1000);
				
		
getUiDevice().swipe(200,500,700,500,2);
		
		
sleep(1000);
	
}
	
 	private void Screencap(String apps) throws UiObjectNotFoundException
	
{
		
SimpleDateFormat idt = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
		
		
String SCREENCAP_PATH = "/sdcard/EAT/" + apps + "_" + idt.format(new Date());
		
		
File screen_path = new File(SCREENCAP_PATH + ".png");
		
		
sleep(1000);
		
		
getUiDevice().takeScreenshot(screen_path);
		
		
assertTrue("Screenshot file not detected in store", screen_path.exists());
		
		
sleep(1000);
	
}
}

猜你喜欢

转载自blog.csdn.net/zljun8210/article/details/80611447