2016年1月31日星期日

如何使用Java代码启动Appium Server?



 我们已经了解了如何手动启动和停止Appium服务器,现在在本文中,我们将了解如何以编程方式启动和停止Appium服务器。 鸦片提供了API,因此您可以在运行测试用例或测试服之前启动服务器,然后在执行结束后停止服务器。

一旦安装了appium,文件node.exe和appium.js将存在。您需要这两个文件的路径以编程方式启动apium服务器。然后,您可以复制并粘贴以下代码。在@BeforeClass或@BeforeTest中调用appiumStart()。

所需的Jar文件是 commons-validator-1.4.1.jarjava-client-3.2.0.jar 您可以从中下载 这里.

视频 -



有关代码的说明-

鸦片DriverLocalService类提供了用于启动和停止服务器的api,因此我们在下面的代码中使用了此方法。usingPort()方法用于提供用于启动服务器的端口号。我们需要将node.exe路径传递给usingDriverLocation()方法,并将appium.js路径传递给withAppiumJs()方法。然后使用start()和stop()方法来启动和停止服务器。在设置所需功能时,我们需要使用getUrl()方法获取和传递网址。




import java.io.File;

import io.appium.java_client.service.local.AppiumDriverLocalService;
import io.appium.java_client.service.local.AppiumServiceBuilder;

public class 鸦片ServerStartStop {

    static String 鸦片_Node_Path="C:\\Program Files (x86)\\Appium\\node.exe";
    static String 鸦片_JS_Path="C:\\Program Files (x86)\\Appium\\node_modules\\appium\\bin\\appium.js";
    static 鸦片DriverLocalService service;
    static String service_url;

    public static void 应用程式iumStart() throws Exception{
        service = 鸦片DriverLocalService.buildService(new 鸦片ServiceBuilder().
                usingPort(2856).usingDriverExecutable(new File(鸦片_Node_Path)).
                withAppiumJS(new File(鸦片_JS_Path)));
        service.start();
        Thread.sleep(25000);
        service_url = service.getUrl().toString();
    }

    public static void 应用程式iumStop() throws Exception{
        service.stop();

    }
}

请注意,在设置所需功能时,请使用如下所示的service_url-

鸦片Driver driver= new 安卓Driver(new URL(service_url),cap);

如果您发现此贴子有用,请与您的朋友分享,如果您有任何问题或建议,请在下面的评论部分与我分享。请按照QA Automated获取最新更新。


 

25条评论:

  1. 嗨Anuja。谢谢你的榜样。但是我在使用您的代码并使用maven命令运行测试时遇到了问题。
    "Couldn'启动Appium REST HTTP接口监听器。请求的端口已被使用。请确保在那里'没有其他appium实例正在运行。"

    如果您知道解决方法,请帮助我。提前致谢

    回复删除
    回覆
    1. 这意味着您的appium服务器实例使用相同的端口运行。您可以尝试更改端口号。在下面的代码行中进行更改。
      服务= 鸦片DriverLocalService.buildService(新的AppiumServiceBuilder()。
      usingPort(2856).usingDriverExecutable(新文件(Appium_Node_Path))。

      删除
    2. 好文章 基于android的项目

      钦奈Java培训

      钦奈项目中心

      钦奈Java培训

      CSE项目

      Angular培训涵盖了广泛的主题,包括组件,Angular指令,Angular服务,管道,安全基础知识,路由和Angular可编程性。新的Angular TRaining将奠定您专门研究Single Page Application开发人员所需的基础。 角度训练

      删除
  2. 我已经通过NODE启动了Appium ...下面是詹金斯的..

    命令行
    / usr / local / bin / node /Applications/Appium.app/Contents/Resources/node_modules/appium/build/lib/main.js --address 0.0.0.0 --port 4723 / wd / hub

    how do i start 和 make the tests run...as of now it just starts 应用程式ium 和 does nothing :(


    由匿名用户启动
    [EnvInject]-加载节点环境变量。
    在工作空间中构建/ Users / Shared / Jenkins / 首页 / jobs / MMLocalProject / workspace /​
    [​] $ / bin / sh -xe /Users/Shared/Jenkins/tmp/hudson6798240980173597906.sh
    + cd /用户/共享的/詹金斯/家庭/工作/ MMLocalProject /工作区/
    + chmod g+w+x 应用程式ium.sh
    + sh 应用程式ium.sh
    [Appium]欢迎使用Appium v​​1.5.3
    [Appium]非默认服务器参数:
    [Appium] 应用程式: '/用户/共享的/詹金斯/首页/工作/MMLocalProject/workspace/src/T/result/MeasuringMaster.app'
    [Appium]不推荐使用的服务器参数:
    [Appium] --app =>--default-capabilities'{"app":"/用户/共享的/詹金斯/首页/工作/MMLocalProject/workspace/src/T/result/MeasuringMaster.app"}'
    [Appium]默认功能,将被添加到每个请求中,除非被所需功能覆盖:
    [Appium] 应用程式: '/用户/共享的/詹金斯/首页/工作/MMLocalProject/workspace/src/T/result/MeasuringMaster.app'
    [Appium] 鸦片 REST HTTP接口侦听器从0.0.0.0:4723开始

    回复删除
  3. 解决了对几个库的依赖后,它的工作原理就像魅力。非常感谢。

    回复删除
  4. i have installed 应用程式ium 1.6 using npm but programmatically it still opens up 应用程式ium 1.4 ..how could i resolve

    回复删除
  5. can i use this 应用程式ium for web based 应用程式lication 和 how?

    回复删除
    回覆
    1. Hi , you can use 应用程式ium to test mobile 应用程式lication having webviews plus you can test web 应用程式lications in mobile browser check out my 应用程式ium tutorial for How to Test Web Views using 鸦片 (http://www.yubo666.com/2016/02/testing-web-views-with-appium.html)

      删除
  6. 嗨Anuja,
    能否为MacOS制作相同的教程?
    先感谢您。

    回复删除
  7. There is a slight changes happened as per new 应用程式ium server 鸦片 v1.7.0

    ** No need to specify the 安卓 js path only Node js is enough.

    代码如下。

    @BeforeTest
    public void 应用程式iumStart() throws Exception
    {
    服务= 鸦片DriverLocalService.buildService(新的AppiumServiceBuilder()
    .usingDriverExecutable(新文件(Appium_Node_Path))
    .usingPort(4723));
    service.start();
    线程。睡眠(25000);
    System.out.println("----服务已启动-----");
    service_url = service.getUrl()。toString();

    DesiredCapabilities功能= DesiredCapabilities.android();
    abilities.setCapability(MobileCapabilityType.BROWSER_NAME,BrowserType.CHROME);
    abilities.setCapability(MobileCapabilityType.PLATFORM,Platform.ANDROID);
    abilities.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
    abilities.setCapability(MobileCapabilityType.DEVICE_NAME,"4d00a95f4fde3117");
    abilities.setCapability(MobileCapabilityType.VERSION,"6.0.1");
    driver= new 安卓Driver(new URL(service_url),capabilities);
    }

    回复删除
  8. Yes this site is very useful.....i was struggling from long time to install 应用程式ium before i browsed into this site.

    回复删除
  9. 从导入{ipcMain,BrowserWindow,Menu}'electron';
    ^^^^^^
    SyntaxError:意外的令牌导入
    在createScript(vm.js:56:10)
    在Object.runInThisContext(vm.js:97:10)
    在Module._compile(module.js:542:28)
    在Object.Module._extensions..js(module.js:579:10)
    在Module.load(module.js:487:32)
    在tryModuleLoad(module.js:446:12)
    在Function.Module._load(module.js:438:3)
    在Module.runMain(module.js:604:10)
    运行时(bootstrap_node.js:390:7)
    在启动时(bootstrap_node.js:150:9)
    这是我在编译代码时遇到的错误...您能帮我解决吗

    回复删除
  10. 惊人&内容丰富的博客,它为像我这样的开发人员提供了非常有用的实用信息。除此之外,Wisen已确立为最佳 来自印度的Java在线培训 。或通过在线培训模式学习 休眠在线培训 。如今,Hibernate ORM在各种垂直行业中都有大量的工作机会。或通过学习 来自印度的JavaScript在线培训。如今,即使JavaScript在各个垂直行业中都有大量的工作机会。

    回复删除
  11. 嗯,好像您的网站吃了我的第一条评论(时间很长),所以我想我’总结一下我写的话,我’我非常喜欢您的博客。我也是有抱负的博客作家,但我’我对整个事情还是陌生的。你有给菜鸟博客作家的建议吗?一世’d 应用程式reciate it.
    班加罗尔的高级AWS培训|班加罗尔最佳亚马逊网络服务培训学院
    浦那高级AWS培训学院|浦那最佳亚马逊网络服务培训学院
    印度高级AWS在线培训学院|印度最佳在线AWS认证课程
    班加罗尔的AWS培训|班加罗尔最好的AWS培训

    回复删除
  12. 哇,这真是太棒了,真棒,因此对我理解很多概念和帮助我非常有用。这真的很好解释,我从您的博客中获得了更多信息。

    RPA velachery培训| 坦帕兰姆的RPA培训 |RPA sholinganallur培训 | 安娜纳加的rpa培训| 加里安加尔的RPA培训

    回复删除
  13. 您在玩所有乐曲方面的丰富知识和友善非常有用。我不’不知道如果没有这样的步骤我该怎么办。
    最佳Devops在线培训
    在线DevOps认证课程-Gangboard

    回复删除
  14. 访问您的站点真是太好了。感谢您分享这些信息,这对我很有用...
    浦那python课程
    钦奈python课程学院
    班加罗尔python培训学院

    回复删除
  15. 从ExcelR参加bangalore的Python培训。在班加罗尔会议中进行实用的Python培训,并请有经验的老师提供确定的实习支持。 ExcelR在班加罗尔提供Python培训。
    班加罗尔python培训

    回复删除
  16. 我正在寻找,我喜欢发表评论 Pune中的Python类那"您的帖子内容很棒" Great work!

    回复删除
  17. 我真的很喜欢阅读您的所有博客。只是想通知您,您中有像我这样的人对您的工作表示赞赏。绝对是一个很棒的职位。向你致敬!您提供的信息非常有帮助。
    在金奈的aws培训 | 在annanagar的aws培训 | AWS的OMR培训 | AWS porur培训 | 在坦巴拉姆的aws培训 | AWS velachery培训

    回复删除