环境准备
Eclipse + maven + appium + TestNg
确保已经在Eclipse 上面安装maven TestNg的插件打开Eclipse,新建一个java项目,把项目转换成maven,之后修改Pom 文件
新建一个java项目转换成Maven项目
点击finish,完成
修改Pom.xml 文件,添加dependency 依赖
<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的类
在项目下新建一个apps文件夹,用来存放要测试的app
打开appium 把地址设置成本机的ip,端口可以用默认的
之后点击启动看到Debug,说明启动成功了
- 代码实例
编写TestNg类,代码如下
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();
} }
- 代码实例