appium grid模式运行自动化

背景介绍: 之前在项目中遇到一个问题, 测试服务器在机房, 无法直接将设备连接到服务器执行自动化测试, 于是就想到了使用appium grid的模式进行自动化的执行, 将appium server当做grid模式中的node节点部署在本机即可, 而这种模式也可以为后面的多设备并行自动化提供了一个可实施性, 以下内容就是一个大概的过程.

  1. 目标&需求:

    • 服务端运行代码,客户端模拟器远程执行测试指令;
    • 为后面的多设备并行执行测试打下基础;
  2. 解决方法

    • 使用appium grid模式来跑自动化。在服务端搭建一个server,与客户端的appiumServer进行通信,这样在服务端运行代码,server会将执行指令通过一个配置文件路由到相应客户端的appiumServer进行自动化测试;
  3. appium grid介绍

    • 官方地址:https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/grid.md
    • 基于selenium grid2,由一个中心节点(Hub)和多个node组成,测试代码在hub执行,然后会根据不通的配置文件将命令发送到对应的node节点,测试具体的执行是在node节点;
  4. 环境准备:

    • 下载selenium-server-standalone-2.53.0.jar;
    • 准备node配置文件,json格式,内容实例如下
{
    //appium的服务关键字参数配置
    "capabilities":
    [
        {
            "browserName":"192.168.82.101:5555",//设备名称
            "platform":"Android",//设备系统
            "version":"4.4",//设备版本号
            "maxINstances":"1" //最大允许的实例
        }
    ],
    // hub与node的配置
    "configuration":
    {
        "cleanUpCycle":"2000",
        "timeout":"30000",
        "proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
        "url":"http://10.10.2.48:4723/wd/hub",  //appiumserver地址,即node地址
        "host":"10.10.2.48",
        "port":"4723",
        "maxSession":"1",
        "register":true,
        "registerCycle":"5000",
        "hubPort":"4444", //hub端口
        "hubHost":"192.168.4.8"  //hub地址
    }   
}

具体实现步骤:

  • 服务端直接启动hubServer:java -jar selenium-server-standalone-2.53.0.jar -role hub
  • 测试代码执行远程ssh到windows启动appiumServer
    1. windows没有ssh服务,需要在远程机器安装freessh,并启动ssh服务;
    2. 使用java连接远程ssh服务再执行命令启动appiumServer;
  • 开始自动化执行;

你可能感兴趣的:(UI自动化测试)