在网上和QQ群中,看到大多数学习appium的童鞋都是使用windows版本的Appium,windows版本有界面好操作,但实际使用过程中发现,如果连续跑几次用例会发现由于之前的appium服务session未结束导致无法创建新的服务session而无法执行用例,经过一番百度谷歌之后,发现appium官方有解决办法,但是前提是需要安装命令行方式的appium
命令行方式安装appium:
1、下载适合当前windows操作系统的node.js版本,下载地址:http://nodejs.org/download/
2、安装node.js 建议默认安装,否则后续安装appium可能出现莫名奇妙的错误
3、安装appium
npm --registry http://registry.cnpmjs.org install -g appium (推荐这种,npm的国内镜像)
下面实例演示AppiumDriverLocalService的使用,如何启动和停止appium的服务
如果运行时报 java.lang.NoClassDefFoundError: org/apache/commons/validator/routines/InetAddressValidator的错误,请网上自行下载commons-validator-1.5.0.jar包并添加到Build path
public class TestNGTest {
KeyWords keyword=new KeyWords();
AppiumDriverLocalService service=null;
@BeforeMethod
public void setUp(){
service=AppiumDriverLocalService.buildDefaultService();
service.start();
}
@AfterMethod
public void tearDown(){
service.stop();
}
@Test(enabled=true)
public void testTest1(){
keyword.run_app("", "");
try {
keyword.waitForElement("login.btn", "");
keyword.assertString("login.btn", "登录");
keyword.swipe("LEFT", 200);
keyword.swipe("LEFT", 200);
keyword.click("login.btn", "");
keyword.assertString("login.assert", "社交帐号登录");
} catch (InterruptedException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
keyword.getAppType("", "");
keyword.close_app("", "");
}
}
@Test
public void testTest2(){
keyword.run_app("", "");
try {
keyword.waitForElement("login.btn", "");
keyword.assertString("login.btn", "登录");
keyword.swipe("LEFT", 200);
keyword.swipe("LEFT", 200);
keyword.click("login.btn", "");
keyword.assertString("login.assert", "社交帐号登录");
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
keyword.close_app("", "");
}
}
}