当前位置:   article > 正文

Appium入门自动化测试(11)—— Appium Server 在启动

appium server

Appium Server 在启动

各位小伙伴们,今天继续Appium框架的学习,阅读此文大约需要20分钟。希望小伙伴们认真的瞧一瞧。首先问大家一个问题:大家有没有在case里面start/stop Appium server? 如果有,是怎么实现的?

之前写过Java控制Appium server start/stop

http://www.cnblogs.com/tobecrazy/p/5118170.html

采用的是封装系统cmd,事实上Appium 依然提供通用的方法。

Appium自带的 AppiumDriverLocalService 类

AppiumDriverLocalService 可以实现各种方式启动/停止Appium Server。 然后把这些方法写到测试类的父类中,就不用每次手动启动Appium Server。

默认的启动:

service = AppiumDriverLocalService.buildDefaultService();

service.start();

采用默认端口和密码

进一步优化,封装几个常用的start Appium Server的方法

简单封装AppiumDriverLocalService实现不同的需求

  1. package main.java.com.dbyl.appiumServer;
  2. import java.io.File;
  3. import java.net.URL;
  4. import io.appium.java_client.service.local.AppiumDriverLocalService;
  5. import io.appium.java_client.service.local.AppiumServiceBuilder;
  6. import io.appium.java_client.service.local.flags.ServerArgument;
  7. /**
  8.  * @author Young
  9.  * @since 2016-11-09
  10.  */
  11. public class AppiumServerUtils {
  12. public static AppiumDriverLocalService service;
  13. public static AppiumServerUtils appiumServerUtils;
  14. /**
  15.  * @author young
  16.  * @return
  17.  */
  18. public static AppiumServerUtils getInstance() {
  19. if (appiumServerUtils == null) {
  20. synchronized (AppiumServerUtils.class) {
  21. if (appiumServerUtils == null) {
  22. appiumServerUtils = new AppiumServerUtils();
  23. }
  24. }
  25. }
  26. return appiumServerUtils;
  27. }
  28. /**
  29.  * This method is for start appium use default host and IP
  30.  * 
  31.  * @author young
  32.  * @return
  33.  */
  34. public URL startAppiumServerByDefault() {
  35. service = AppiumDriverLocalService.buildDefaultService();
  36. service.start();
  37. if (service == null || !service.isRunning()) {
  38. throw new RuntimeException("An appium server node is not started!");
  39. }
  40. return service.getUrl();
  41. }
  42. /**
  43.  * @author Young
  44.  */
  45. public void stopServer() {
  46. if (service != null) {
  47. service.stop();
  48. }
  49. }
  50. /**
  51.  * @author young
  52.  * @param ipAddress
  53.  * @param port
  54.  * @return
  55.  */
  56. public URL startServer(String ipAddress, int port) {
  57. AppiumServiceBuilder builder = new AppiumServiceBuilder();
  58. builder.withIPAddress(ipAddress);
  59. builder.usingPort(port);
  60. service = AppiumDriverLocalService.buildService(builder);
  61. service.start();
  62. if (service == null || !service.isRunning()) {
  63. throw new RuntimeException("An appium server node is not started!");
  64. }
  65. return service.getUrl();
  66. }
  67. /**
  68.  * @author young
  69.  * @param ipAddress
  70.  * @param port
  71.  * @param logFile
  72.  * @param arguments
  73.  * @return
  74.  */
  75. public URL startServer(String ipAddress, int port, File logFile, ServerArgument... arguments) {
  76. AppiumServiceBuilder builder = new AppiumServiceBuilder();
  77. builder.withIPAddress(ipAddress);
  78. builder.usingPort(port);
  79. builder.withLogFile(logFile);
  80. for (ServerArgument argument : arguments) {
  81. builder.withArgument(argument);
  82. }
  83. service = AppiumDriverLocalService.buildService(builder);
  84. service.start();
  85. if (service == null || !service.isRunning()) {
  86. throw new RuntimeException("An appium server node is not started!");
  87. }
  88. return service.getUrl();
  89. }
  90. }

在测试用例中需要这样使用

URL url = AppiumServerUtils.getInstance().startAppiumServerByDefault();

driver = new AndroidDriver<MobileElement>(url, capabilities);

执行case,发现如下问题:ANDROID_HOME 未设置,然而已经在环境变量中设置过了,原来是eclipse执行的时候,拿不到环境变量的设置。

可以在eclipse中设置环境变量eclipse ->Click on Run -> 点击 Run configurations。

这样就可以成功执行测试。

如下图: 

后记

UI自动化测试没有那么好,慢慢的资本家发现纯UI自动化投入产出比太低,目前国内一线互联网公司已经把UI自动化的比重降低了许多,取而代之的是API和非功能测试,测试行业在近几年并没有什么新技术,我们现在用的东西都是换汤不换药的,大差不差。我总爱和相声行业对比,我们和相声艺人一样,老郭总说,相声的准入门槛太低,是个人都行。测试还不一样么,准入门槛太低,但这个行业你想做好,就必须要技术,业务能力都要很强。相声艺人拼到最后拼的是文化和身体,我们呢? 拼到最后拼的是技能(业务也是技能)和身体。


最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的qq群大家一起讨论交流,里面也有各种软件测试资料和技术交流。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/186989
推荐阅读
相关标签
  

闽ICP备14008679号