使用Java程序启动/关闭Appium server

本文介绍如何使用Appium进行移动应用自动化测试,包括配置启动和关闭Appium服务器的代码,设置设备参数,并通过一个测试类实例展示自动化测试流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://www.software-testing-tutorials-automation.com/2015/12/start-stop-appium-server.html(需翻墙)

开发工具:Eclipse + TestNG

1. 查看启动程序位置

node.exe路径:
mac系统是这样显示的:/usr/local/bin/node(请换成你自己的路径)
windows是这样显示的: C:/Progra~1/Appium/node.exe

appium.js安装路径:
mac系统,根据安装appium版本的不同,选择不同的启动路径:
appium1.5.3:/Applications/Appium.app/Contents/Resources/node_modules/appium/build/lib/main.js
appium1.5.3以前版本:/Applications/Appium.app/Contents/Resources/node_modules/appium/bin/appium.js
windows系统:C:/Progra~1/Appium/node_modules/appium/bin/appium.js

2. 启动/关闭appium server代码

package startappium;

import java.io.IOException;
import org.openqa.selenium.WebElement;
import io.appium.java_client.android.AndroidDriver;

public class AppiumStartStop {
 Process p;
 // Set path of your node.exe file.
 // Progra~1 represents Program Files folder.
 String nodePath = "/usr/local/bin/node";
 // Set path of your appium.js file.
 String appiumJSPath = "/Applications/Appium.app/Contents/Resources/node_modules/appium/build/lib/main.js";
 String cmd = nodePath + " " + appiumJSPath;
 AndroidDriver<WebElement> driver;

 // This method Is responsible for starting appium server.
public void appiumStart() throws IOException, InterruptedException {
        // Execute command string to start appium server.
        p = Runtime.getRuntime().exec(cmd);

        // Provide wait time of 10 mins to start appium server properly.
        // If face any eÏrror(Could not start a new session...) then Increase
        // this time to 15 or 20 mins.
        Thread.sleep(10000);
        if (p != null) {
            System.out.println("Appium server Is started now.");
        }
    }

    // This method Is responsible for stopping appium server.
    public void appiumStop() throws IOException {
        System.out.println(p);
        if (p != null) {
            p.destroy();
        }
        System.out.println("Appium server Is stopped now.");
    }

    public void startAppium() throws IOException, InterruptedException {
        System.out.println("come here");
        appiumStop();
        appiumStart();
    }
}

另:还有一种使用command line的方法启动,可参考文单顶部链接

实践,创建一个测试类,去调用启动appium server方法:
package test;

import java.io.IOException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import io.appium.java_client.android.AndroidDriver;

public class TestHomePage {

    AndroidDriver<WebElement> driver;
    AppiumStartStop appiumServer;

    @BeforeTest
    public void setUp() throws Exception {

        appiumServer = new AppiumStartStop();
        appiumServer.startAppium();

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "c0875f69"); 
        capabilities.setCapability("browserName", "Android");       
        capabilities.setCapability("platformVersion", "6.0.1");
        capabilities.setCapability("platformName", "Android");  
        capabilities.setCapability("appPackage", "包名"); // app包名
        capabilities.setCapability("appActivity", "启动activity"); // app启动方法

        driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
    }

    @Test
    public void testAppearCorrect() throws InterruptedException {
        /**此处写你的测试脚本**/

        System.out.println("操作结束");
    }

    @AfterTest
    public void endUp() throws IOException {
        driver.quit();
        appiumServer.appiumStop();
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值