Selenium Grid方案介绍之appium 客户端的自动化应用

1.首先介绍下Selenium的工具集

如果被问到selenium是什么的时候,可以通过以下分析来回答
1)romote control早期1.0版本,通过server往浏览器注入js来让浏览器执行相应的操作 慢慢已经被废弃掉了
2)selenium WebDriver是一个协议,各浏览器根据协议来开发自己的驱动程序,只要满足这个协议就可以了
3) selenium server:server跟grid相关
4)selenium  client:我们写的测试脚本
5) IDE自带的录制组件
6) selenium Grid:能够帮助我们分布式的执行我们的测试用例;它能够把客户端发来的请求转发给hub,通过hub分配到各个节点上来完成我们自动化测试的工作
2.appium支持selenium grid 模式
 
1)通过操作hub来完成命令的转发,操纵各个节点;当我们要测试10或者20台手机设备时,这个时候一台电脑是满足不了我们的时候, 一台电脑最多也只能链接16台设备,还要求pc机的配置达到一定的速度
2) 通过hub来组织所有的测试资源和测试设备,这些测试设备只需要去注册到hub上,让hub知道这个设备时可用的,我们运行脚本的时候只需要跟hub通讯就可以了,hub可以帮我们分发到各个设备上,不仅可以运行web的设备,还可以运行android和ios设备
3) 注意⚠️还有一种场景,我们有100条测试case要执行,有3台闲置的测试设备;我们可以使用这个模式,可以分发到多台测试设备上,来完成测试
3.selenium grid for appium
selenium grid在前面已经说过, 一个中心可以很方便的操纵所有的设备,而不用操纵多台电脑,多台手机
环境配置:
通过查看selenium官方文档,参考性不是特别大,可以去selenium的git文档上查找最新文档
可以安装谷歌翻译等插件来翻译页面。。。
也就是ios手机可以在一个设备上,web浏览器可以在另一个设备上,android手机在一台设备上,然后hub可以在机房里
4. 启动selenium server
启动selenium server,默认开启4444端口
另外访问http://192.168.31.69:4444/grid/ 中的控制台可以查看注册的节点 
5. appium如何将节点注册到hub上?
有如下两种启动方式:
> appium --nodeconfig /path/to/nodeconfig.json 
# or, if running from source:
> node . --nodeconfig /path/to/nodeconfig.json
将文档中的配置复制到本地
1)字段含义介绍:
maxInstances最大实例数,proxy使用默认的就可以了
url:appium server的ip地址,也就是apppium server可以部署在任何地方,只要给我一个ip地址就可以了,host、port是最重要的三个部分 他们三个是一组的关系
hubhost:使用生成的ip地址,启动的时候生成的
2)当你本机连接多个设备时,配置的appium-node01.json\appium-node02.json 中的端口要变一下,比如第二个变成5237,但是如果是远程连接设备,都不在一个平台上的话,就都可以4237不会存在端口占用的情况了
如果不想用配置文件时也可以运行节点的时候指定参数,但是当参数比较多的时候就很麻烦
我本地的配置如下:
{
  "capabilities":
      [
        {
          "browserName": "android",
          "version":"6.0",
          "maxInstances": 1,
          "platform":"ANDROID"
        }
      ],
  "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": "192.168.31.69",
    "hubProtocol": "http"
  }
}

 

posted @ 2020-04-25 18:03  zhaikunkun  阅读(637)  评论(0)    收藏  举报