appium自启动测试实例
1、win7系统安装node(不做讲解)
2、使用npm安装appium,命令为:
npm install -g appium
npm install -g cnpm
npm install appium-doctor -g
注:win7使用 cmd命令进入命令行,然后依次输入以上命令即可
3、打开idea,创建一个demo,pom添加依赖如下:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>6.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
4、创建StartDriver类启动driver,代码如下:
public static AndroidDriver startDingDriver(String platformVersion, String device, String udid, String port){
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, Platform.ANDROID);
capabilities.setCapability(MobileCapabilityType.NO_RESET, true);
capabilities.setCapability("appPackage","com.alibaba.android.rimet");
capabilities.setCapability("appActivity",".biz.LaunchHomeActivity");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, platformVersion);
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, device);
capabilities.setCapability(MobileCapabilityType.UDID, udid);
capabilities.setCapability("newCommandTimeout", 3600);
AndroidDriver driver = null;
try {
driver = new AndroidDriver(new URL("http://127.0.0.1:"+ port +"/wd/hub"), capabilities);
} catch (MalformedURLException e) {
e.printStackTrace();
}
return driver;
}
5、 编写AppiumTest类自动启动appium并打开钉钉界面,代码如下:
public static AndroidDriver driver = null;
private AppiumDriverLocalService service;
private AppiumServiceBuilder builder;
private DesiredCapabilities cap;
private BaseCase appiumServer;
private StartDriver startDriver;
public void startServer() {
cap = new DesiredCapabilities();
cap.setCapability("noReset", "false");
builder = new AppiumServiceBuilder();
builder.withIPAddress("127.0.0.1");
builder.usingPort(4723);
builder.withCapabilities(cap);
builder.withArgument(GeneralServerFlag.SESSION_OVERRIDE);
builder.withArgument(GeneralServerFlag.LOG_LEVEL,"error");
service = AppiumDriverLocalService.buildService(builder);
service.start();
}
public void stopServer() {
service.stop();
}
public boolean checkIfServerIsRunnning(int port) {
boolean isServerRunning = false;
ServerSocket serverSocket;
try {
serverSocket = new ServerSocket(port);
serverSocket.close();
} catch (IOException e) {
isServerRunning = true;
} finally {
serverSocket = null;
}
return isServerRunning;
}
public static AndroidDriver getDriver() {
return driver;
}
@BeforeTest
private void setUp(){
appiumServer= new BaseCase();
int port = 4723;
if(!appiumServer.checkIfServerIsRunnning(port)) {
appiumServer.startServer();
}
}
@Test
public void startDingTest(){
String platformVersion = "10";
String deviceName = "自己手机名字";
String udid = "*******自己手机的uuid";
String port2= "4723";
driver=StartDriver.startDingDriver(platformVersion, deviceName, udid, port2);
}
@AfterTest
private void quit(){
if(driver != null){
driver.quit();
appiumServer.stopServer();
}
}
6、创建testng.xml运行测试类,代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="dingding" thread-count="1">
<test name="测试钉钉">
<classes>
<class name="com.test.AppiumTest"></class>
</classes>
</test>
</suite>