Appium+TestNG+Grid并行运行测试用例

Appium支持一台电脑上并行运行多台测试设备,通过启动grid hub服务,注册多个节点设备,然后配置相应的testng.xml文件,达到并行运行测试的目的。

    目前有两种方式启动多个Appium Server

  • 一种是npm安装Appium,用命令行来启动Appium Server;
  • 一种是直接安装的客户端,在Appium客户端直接设置和添加json文件,手动来启动。

    命令行的方式更快捷,不需要每次打开Appium客户端设置,本文先介绍用Appium 客户端直接启动服务。

步骤:

1,启动Selenium Grid服务:进入selenium-server-standalone-2.48.2.jar目录,运行命令:java -jar selenium-server-standalone-2.48.2.jar -role hub

      或者把上面命令写成如下批处理文件,保存在grid目录下,运行时直接双击.bat文件即可。

@echo off
echo 正在启动appium grid服务,请稍等。
echo 启动完毕之后,请不要关闭此窗口。
echo 当你看到“Selenium Grid hub is up and running”则表示启动成功。
java -jar selenium-server-standalone-2.48.2.jar -role hub
Appium+TestNG+Grid并行运行测试用例_第1张图片

2,启动各节点Appium Server:

      node命令启动时主要参数如下:

  • -p Appium主端口
  • -U 设备ID
  • -bp Appium bootstrap端口
  • --chromedriver-port  chomedriver 端口(如果使用Webviews或者chrome)
  • --selendriod-port   selendriod port)(如果使用selendriod)

     node . -p 4492 -bp 2251 -U 设备1的ID

     node . -p 4491 -bp 2250 -U 设备2的ID


    例如:

   appium --address 127.0.0.1 --port 4723  --bootstrap-port 4724 --session-override --nodeconfig  nodeconfig1.json(在grid目录下运行)

    其中nodeconfig1.json 是节点配置文件,代码如下:

{
    "capabilities": [
        {
            "browserName": "HUAWEI GRA-UL 10",
            "version": "5.0.1",
            "maxInstances": 1,
            "platform": "WINDOWS"
        }
    ],
    "configuration": {
        "cleanUpCycle": 2000,
        "timeout":30000,
        "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
        "url":"http://127.0.0.1:4723/wd/hub",
        "host": "127.0.0.1",
        "port": 4723,
        "maxSession": 1,
        "register": true,
        "registerCycle": 5000,
        "hubPort": 4444,
        "hubHost": "127.0.0.1" 
    }
}


 直接配置Appium客户端相关参数来启动节点服务:

Appium Server端口号和节点配置文件如图一红圈所示位置配置,其他端口配置如图二所示,配置完成点击启动按钮:

Appium+TestNG+Grid并行运行测试用例_第2张图片

图二:

Appium+TestNG+Grid并行运行测试用例_第3张图片

启动成功:

Appium+TestNG+Grid并行运行测试用例_第4张图片


同样地启动第二个节点服务:

Appium+TestNG+Grid并行运行测试用例_第5张图片


testng.xml中关于设备的配置信息:

        
		
		
		
		
			
		
	

	
		
		
		
		
			
		
	

运行过程如图:

Appium+TestNG+Grid并行运行测试用例_第6张图片


添加更多设备就再启动一个Appium Server,添加nodeconfig3.json文件,配置文件添加相应的参数。

可以通过打开console检查node节点是否注册成功:

Appium+TestNG+Grid并行运行测试用例_第7张图片


存在的问题:因为三台设备运行的用例都依赖于登录这个@test,登录的账号又是同一个,所以数据不能公用,因此只有一台设备能运行通过,继续研究如何解决数据的问题。

你可能感兴趣的:(Appium,WebDriver)