Java + TestNG + Appium 实现单机多个Android终端并发测试

本文介绍了如何使用Java、TestNG和Appium实现在单机上多个Android终端的并发测试。通过配置TestSuite XML文件,每个文件对应一个终端,结合TestNG的并发执行功能,实现自动化测试。详细阐述了实现原理,包括RunSuite类的加载、AppiumTestCase的服务器启动与停止、AppiumServerController的单例模式以及用例执行顺序。
摘要由CSDN通过智能技术生成

前言

我们知道,单台 PC 上用 Appium 连接多个 Android 终端进行测试时,需要同时用不同的端口号启动不同的 Appium Server,例如启动两个服务器:

node main.js -p 4723 -bp 4724 -chromedriver-port 9515 -U emulator1
node main.js -p 4725 -bp 4726 -chromedriver-port 9516 -U emulator2

然后测试代码的 AppiumDriver 连接到对应的端口,然后就可以并发地执行测试。

这就意味着有很多环境数据需要配置,包括各种端口号,终端的UDID等,同时也需要为不同的终端分发测试用例,这些数据最好是与 Java 测试代码分离。另外服务器的启动和关闭最好也能通过代码自动执行。

之前我用的是 Junit4 单元测试框架,感觉功能不够强大,难以实现上述要求,后来了解了下 TestNG 框架,它自带的 xml 方式,参数化测试,并发执行等功能,刚好可以用来实现我设想的功能。

完整代码地址: https://github.com/zhongchenyu/AppiumTest ,下面就来介绍一下思路。

效果展示

首先看下最终实现的效果,只需配置好测试套的 xml 文件,将环境信息作为参数,指定好要执行的用例,执行 RunSuite 类,即可完成从启动服务器开始的所有测试过程。

1. 配置测试套 xml 文件,每个xml对应一个终端:

环境参数通过 parameter 标签配置,其中包含:
node:node.exe 的路径,如果配置了系统环境变量,直接填 node 就行。
appium.js:appium.js的路径,新版本的Appium应该是main.js的路径。和node参数配合,用来执行启动Appium 服务器。
portbootstrap_portchromedriver_port:Appium服务器的端口。
udid:终端名称,可以通过 adb devices 查到。
剩下的参数为 DesiredCapabilities 需要的参数。

第一个终端 testng1.xml

<suite name="WebViewSuit1" >
    <parameter name="suitName" value="WebViewSuit1"/>
    <parameter name="node" value="node"/>
    <parameter name="appium.js" value="C:\Users\chenyu\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\build\lib\main.js"/>
    <parameter name="port"  value="4725"/>
    <parameter name="bootstrap_port" value="4726"/>
    <parameter name="chromedriver_port" value="9516"/>
    <parameter name="udid" value="127.0.0.1:21503"/>
    <parameter name="platformName" value="Android"/>
    <parameter name="platformVersion" value="4.4.4"/>
    <parameter name="deviceName" value="127.0.0.1:21503"/>
    <parameter name="appPackage" value="chenyu.memorydemo"/>
    <parameter name="appActivity" value=".MainActivity"/>
    <parameter name="noReset" value="false"/>
    <parameter name="app" value="chenyu.memorydemo-debug-v1.2.apk"/>

    <test name="WebView">
        <classes>
            <class name
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值