软件测试52讲笔记--12 从0到1:你的第一个GUI自动化测试

这是我购买的”极客时间”上的一套课程的笔记,总共52讲,定期对其中的内容做一笔记,巩固学习内容。

12 从0到1:你的第一个GUI自动化测试

构建一个Selenium自动化测试用例示例

这里作者使用Java+Selenium实现了一个访问百度主页并搜索,验证页面标题的自动化测试用例,具体细节参考作者的文章跟着操作即可,不再笔记中重复。

Selenium的实现原理

这里解释了一下Selenium1.0,2.0的工作原理。
作者简单介绍了一下之后,就开始讲原理了,对于初次Selenium的朋友可能还是有点懵逼,因为有三个版本,每个版本里面都有一套工具集。那么我之前也写过关于Selenium的介绍文章:https://mmcatt.github.io/2018/06/19/selenium-selenide-katalon/
有兴趣的可以点击查看。

一、Selenium 1.0的工作原理

核心是Selenium RC, RC的原理是:JavaScript代码可以很方便地获取页面上的任何元素并执行各种操作。
这部分作者介绍的比较详细,但是由于在Selenium 2.0 中引入的WebDriver,目前已经取代了RC成为了新的核心,所以我个人觉得稍微看看就好,没有必要扣得十分细。

二、Selenium 2.0的工作原理

核心是WebDriver,它利用的原理是:使用浏览器原生的WebDriver实现页面操作。
它是典型的Server-Client模式,Server端是Remote Server。

  1. Selenium 2.0 启动浏览器时,后台会同时启动基于WebDriver Wire协议的Web Service作为Selenium的Remote Server,并与浏览器绑定。
    绑定完成后,Remote Server开始监听Client端的操作请求。
  2. 执行测试时,测试用例作为Client端,将需要执行的页面操作请求以HTTP Request的方式发送给Remote Server。该HTTP Request的body,是以WebDriver Wire协议规定的JSON格式来描述需要浏览器执行的具体操作。
  3. Remote Server接收到请求后,解析并将结果发给WebDriver,WebDriver去实际执行浏览器的操作。
  4. WebDriver是直接操作浏览器的原生组件,所以搭建测试环境时,需要先下载浏览器对应的WebDriver。

【心得】这种写作方式很棒,先给例子,让完全不懂的小伙伴可以跟着例子一步步操作下来,有一个直观的概念。
然后话锋一转,开始细细讲述工作原理,不像其他的教程,直接上来就教你api的使用,导致不少小伙伴学习之后还是对背后的原理糊里糊涂,会发出类似这样的疑问:为何不同的浏览器要装不同的WebDriver?

本文原创首发在我的个人博客https://mmcatt.github.io,同步搬运到简书等平台。