在携程使用TestNG/JUnit 并行跑Appium 有两个关键的地方

转载 2015年11月17日 16:38:01

转载地址:https://testerhome.com/topics/1944


在携程使用TestNG/JUnit 并行跑Appium 有两个关键的地方:

  • 独立使用的Appium Server Wrapper
  • 控制并行的Device Store Queue

Word is Cheap,示例代码如下(公布这些代码是希望大家更多的精力放到改进Appium本身):

public abstract class AbstractDeviceStore<T extends Device> implements
        DeviceStore<T> {

    protected static final Logger log = LoggerFactory
            .getLogger(AbstractDeviceStore.class);

    protected final ReentrantLock lock;
    protected final Condition notEmpty;
    protected final TreeSet<Device> devicesInUse = new TreeSet<>();
    protected final Set<T> devices = new TreeSet<>();

    protected AbstractDeviceStore() {
        lock = new ReentrantLock(true);
        notEmpty = lock.newCondition();
    }

    @Override
    public Device take() throws InterruptedException {
        final ReentrantLock lock = this.lock;
        lock.lockInterruptibly();
        try {
            // log.debug("devices in use size {}", devicesInUse);
            while (devicesInUse.isEmpty()) {
                log.debug("take need wait ....");
                notEmpty.await();
            }
            return devicesInUse.pollFirst();

        } finally {
            lock.unlock();
        }
    }

    @Override
    public void put(Device device) {
        final ReentrantLock lock = this.lock;
        lock.lock();
        try {
            devicesInUse.add(device);
            notEmpty.signal();
        } finally {
            lock.unlock();
        }

    }

    @Override
    public Set<T> getDevices() {
        return new TreeSet<T>(devices);
    }

}

APPIUM+JAVA实现对安卓APK的自动化测试----第十三篇【JUNIT框架】

好吧~终于要讲框架了,首先我们先来个懒汉的方法,就是借用JUNIT框架来实现运行,作者用下来发现JUNIT对APPIUM的支持并不十分友善,但是用来教学到时很合适,来吧,作者开始气定神闲+豪火球了。 ...
  • deadgrape
  • deadgrape
  • 2016年03月16日 09:35
  • 3730

Appium junit之自定义多次执行部分case的次数以及顺序,仅运行rePublish()即可

@Test     public void publishText(){           }         @Test     public void publishPicAndText(){ ...
  • liuy5277
  • liuy5277
  • 2015年09月18日 11:03
  • 2214

使用Appium官方提供的AppiumDriverLocalService类实现在eclipse启动和停止Appium服务

在网上和QQ群中,看到大多数学习appium的童鞋都是使用windows版本的Appium,windows版本有界面好操作,但实际使用过程中发现,如果连续跑几次用例会发现由于之前的appium服务se...
  • wsbl52006
  • wsbl52006
  • 2016年04月12日 23:10
  • 2200

AppiumDriverLocalService.java

/*  * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file...
  • wanglha
  • wanglha
  • 2015年11月17日 16:31
  • 1554

appium服务关键字

关键字 描述 实例 automationName 你想使用的自动化测试引擎 Appium (默认) 或 Selendroid platformName 你要测试的手机系统 ...
  • wangji_131400
  • wangji_131400
  • 2017年07月19日 14:16
  • 477

Appium使用教程_Android篇

--by keeng2008@qq.com 2016-05-16 一、Appium介绍 Appium是一个开源的自动化测试工具,其支持iOS和安卓平台上的原生的,基于移动浏览器的,混合的应用。 ...
  • keeng2008
  • keeng2008
  • 2016年05月16日 16:40
  • 33546

Appium自动化测试完整案例

  • 2015年08月26日 09:45
  • 1.07MB
  • 下载

并行 跑Junit

parallevel
  • u014452858
  • u014452858
  • 2015年06月01日 23:24
  • 424

appium android——利用testng和maven并行执行用例

一、测试类 package com.wiley.appiumConcurrent; import java.net.MalformedURLException; import java.net.UR...
  • fgwvip123
  • fgwvip123
  • 2016年05月12日 15:17
  • 1261

Appium自动化测试(一)环境安装+实例登录

最近开始接触Appium自动化测试。代码小菜鸟又开始遇到无穷无尽的问题。特此记录走过的坑。 第一篇包括测试环境的准备,该下载下载,该安装安装~ 提供一个python小实例实现登录 Java实例还在优化...
  • Pokharar
  • Pokharar
  • 2017年01月11日 18:52
  • 3647
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在携程使用TestNG/JUnit 并行跑Appium 有两个关键的地方
举报原因:
原因补充:

(最多只允许输入30个字)