使用Selenium+appium進行App測試

1. 啓動安卓虛擬機。java

2. 啓動appium:cmd中直接輸入appium啓動android

3. cmd中安裝測試apk,adb install apk路徑app

4. Eclipse建立Java項目,構建路徑加入Selenium、appium、Junit測試

5. 敲入源碼:ui

 ContactManager.javaurl

package appTest;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;

import java.io.File;
import java.net.URL;
import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
   
public class ContactManager {  
    private static AppiumDriver<WebElement> driver;  
   
    @Before  
    public static void setUp() throws Exception {  
        // set up appium  
        File classpathRoot = new File(System.getProperty("user.dir"));  
        File appDir = new File(classpathRoot, "apps");  
        File app = new File(appDir, "ContactManager-selendroid.apk");  
        DesiredCapabilities capabilities = new DesiredCapabilities();  
        capabilities.setCapability(CapabilityType.BROWSER_NAME, "");  
        capabilities.setCapability("platformName", "Android");  
        capabilities.setCapability("deviceName","Android Emulator");  
        capabilities.setCapability("platformVersion", "4.2.2");  
        capabilities.setCapability("app", app.getAbsolutePath());  
        capabilities.setCapability("appPackage", "com.example.android.contactmanager");  
        capabilities.setCapability("appActivity", ".ContactManager");
        URL url = new URL("http://127.0.0.1:4723/wd/hub");
        driver = new AndroidDriver<WebElement>(url, capabilities);  
    }  
   
    @After  
    public static void tearDown() throws Exception {  
        driver.quit();  
    }  
   
    @Test  
    public static void addContact() throws InterruptedException{  
        WebElement el = driver.findElement(By.name("Add Contact"));  
        el.click();  
        List<WebElement> textFieldsList = driver.findElementsByClassName(
                "android.widget.EditText");  
        Thread.sleep(3000);
        textFieldsList.get(0).sendKeys("tuanfuyao");
        Thread.sleep(3000);
        List<WebElement> spinner = driver.findElementsByClassName(
                "android.widget.Spinner");
        spinner.get(1).click();
        Thread.sleep(3000);
        driver.findElementByName("Work").click();
        System.out.println("textFieldsList.size: "+textFieldsList.size());
        textFieldsList.get(1).sendKeys("15858589999");
        spinner.get(2).click();
        Thread.sleep(3000);
        driver.findElementByName("Mobile").click();
        Thread.sleep(3000);
         textFieldsList.get(2).sendKeys("tuanfuyao@gmail.com");  
        
        //Thread.sleep(10000);
        driver.findElementByName("Save").click();  
    }  
    public static void main(String args[]) throws Exception{
        setUp();
        addContact();
        tearDown();
    }
}

 

 

6. 執行程序。spa

 

7. 使用uiautomatorviewer進行元素定位.net

 

 8. 獲取App包名:aapt dump badging apk路徑code

相關文章
相關標籤/搜索