環境準備
Eclipse + maven + appium + TestNg
確保已經在Eclipse 上面安裝maven TestNg的插件java
打開Eclipse,新建一個java項目,把項目轉換成maven,以後修改Pom 文件
新建一個java項目
android
轉換成Maven項目
markdown
點擊finish,完成
app
修改Pom.xml 文件,添加dependency 依賴maven
<dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>LATEST</version> </dependency> <dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>2.1.0</version> </dependency> </dependencies> </project>
以後如圖所示,jar包依賴成功
測試
新建一個TestNg的類
ui
在項目下新建一個apps文件夾,用來存放要測試的app
spa
打開appium 把地址設置成本機的ip,端口能夠用默認的
.net
以後點擊啓動看到Debug,說明啓動成功了
插件
package appiumDemo; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.remote.MobileCapabilityType; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class NewTest { private AndroidDriver driver; //初始化參數,安裝apk @BeforeClass public void setUp() throws Exception { // 設置啓動的程序位置和程序的名字,安裝的apk文件 File classpathRoot = new File(System.getProperty("user.dir")); File appDir = new File(classpathRoot, "./apps"); File app = new File(appDir, "填寫apk文件名字"); //例如apkName.apk // 設置設備的屬性 DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); // 設置平臺 Android capabilities.setCapability("platformName", "Android"); // 設置設備的名稱,真機或者模擬器的, 設備鏈接電腦,在命令行輸入adb devices 查看便可 capabilities.setCapability("deviceName", ""); // 設置Android系統的版本號,例如 4.3 4.4 capabilities.setCapability("platformVersion", ""); // 設置apk文件的路徑 capabilities.setCapability("app", app.getAbsolutePath()); // 設置apk的包名 capabilities.setCapability("appPackage", ""); // 設置main Activity,例如 .mainNmae.activity 記得帶上點 capabilities.setCapability("appActivity",""); //waitActivity ,若是啓動成功,沒有影響,能夠不填寫 capabilities.setCapability("appWaitActivity", ""); // 設置UNicode鍵盤支持中文輸入,會默認的代替內置的鍵盤 capabilities.setCapability("unicodeKeyboard", "True"); capabilities.setCapability("resetKeyboard", "True"); try { // 加載驅動,ip,填寫相應的ip和端口 例如 http://172.16.11.120:4720 driver = new AndroidDriver(new URL("http://ip地址:端口/wd/hub"), capabilities); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //啓動成功後,會自動的安裝apk,這個斷言判斷apk是否安裝成功,修改包名爲實際值 @Test public void Test() //輸出判斷結果 System.out.println("Result:"+driver.isAppInstalled("包名")); //判斷是否安裝成功 Assert.assertEquals(driver.isAppInstalled("包名"), true, "安裝失敗"); } //測試完成後,退出driver @AfterClass public void tearDown() throws Exception { driver.quit(); } }