多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

selenium Remote Server 实现原理-自动化测试

更新时间:2022-03-29 09:21:49 作者:多测师 浏览:211

  selenium作为一个出色的web automation框架,被越来越多的企业采用究其原因,框架设计的比较remarkable,作为一个开源的框架,能够开辟出一套协议,以至于针对app测试的appium采取相同的strategy。使用的是webdriver protocol的扩展版。

selenium Remote Server 实现原理-自动化测试

  为什么说这个框架设计的比较好?究竟好在哪里?

  先从表面上看:

  selenium automation framework 支持多语言,java、python、c#、JavaScript、Perl、ruby ...... 测试工具中,能支持这么多语言还不牛逼么 ?QTP/UFT才只支持vbs

  跨平台支持windows/linux/Mac OS

  支持grid

  拥有page object model和page factory

  以上,均是不可多得的设计,那么问题又来了,为什么selenium支持那么多语言,怎么实现的?

  我想,我给出的答案是协议,selenium remote server/webdriver/appium等完全遵循webdriver json protocol

  通过json协议实现跨语言跨平台。

  如果你也要使用restful 自己测试一下下载使用restclient-ui-3.5-jar-with-dependencies.jar

  让我们来验证这一点,首先你需要一个restful client 和一个chromew ebdriver,selenium-server-standalone-2.48.0.jar

  在cmd起remote server

  java -Dwebdriver.chrome.driver="chromedriver.exe" -jar selenium-server-standalone-2.48.0.jar

  启动成功,接下来打开浏览器

  1.创建session

  2.打开百度

  3.创建截图

  那么这个过程是在怎么实现呢?

  看webdriver 的protocol

  第一步创建session:Post http://127.0.0.1:4444/wd/hub/session

  如果不想使用默认的,可以通过post desiredCapabilities

  这样设置body

  { "desiredCapabilities": {

  "browserName": "chrome",

  "javascriptEnabled": true,

  "platform": "ANY",

  "version": "55"

  }

  }

  可使用上面的办法,拿到session ID

  第二步:打开百度

  发送Post

  Body:

  {

  "url":"http://www.baidu.com"

  }

  第三步:findElement By id

  发送Post

  {

  "using": "id",

  "value": "kw"

  }

  也可以使用xpath

  {

  "using": "xpath",

  "value": "//input[@id='kw']"

  }

  第三步:输入selenium 从上一步获取element ID为1

  发送 Post

  body

  {

  "value": [

  "selenium"

  ]

  }

  总结:

  selenium remote sever 其实就是通过webdriver Json与浏览器交互,这也就介绍了为什么selenium能够实现支持各种语言,

  不管是java python 等,都是通过selenium API翻译成Json 与浏览器进行交互。掌握了webdriver protocol 可以通过自己直接写request来实现与浏览器交互。

  以上内容为大家介绍了自动化测试中的selenium Remote Server 实现原理,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部