Selenium WebDriver架构

时间:2020-02-23 14:41:51  来源:igfitidea点击:

什么是Selenium?

Selenium是一个开源自动化测试工具,仅用于测试基于Web的应用程序,不能用于基于桌面,基于Windows的应用程序。
它可以在多种浏览器和多种操作系统中运行。

Selenium的历史

  • 当前,正在使用的Selenium 3.0 Web包括Selenium IDE,Selenium WebDriver和Selenium Grid。

  • Selenium 3.0 Web是一套工具。
    Selenium实际上是Jason Huggins于2004年创建的,它是Thoughtworks的内部工具。

  • 后来,保罗·哈曼特(Paul Hammant)加入了ThoughtWorks团队,开始了第二种开发模式,即Selenium RC。

  • Philippe Hanrigou在2008年晚些时候开发了Selenium Grid,它提供了一个中心,可以并行运行多个Selenium测试,从而减少了测试脚本的执行时间。

  • 市场上推出的第一个Selenium版本是Selenium 1.0。
    它是一套由Selenium IDE,Selenium RC和Selenium Grid组成的工具。

如果我们访问Selenium的官方(https://www.seleniumhq.org/download/),我们可以看到最新版本是3.14。
最初,在2007年,我们有了Selenium RC,IDE和Grid。

Selenium 网格

Selenium Grid是用于并行执行Selenium脚本的工具。
例如,如果我们只有一台计算机,并且要与此计算机连接,则可以将多台计算机与多个操作系统连接在一起,这样我们就可以在不同的计算机上并行运行测试用例,从而节省了时间。

Selenium IDE

Selenium IDE是一种工具,基本上只能在Chrome和Firefox浏览器上运行。
它不生成报告,并且不能执行多个测试用例。
例如,如果我们有5000个测试用例,则IDE无法正常工作,它不是执行多个测试用例的强大工具。
它无法生成日志。

Selenium RC

Selenium RC(目前在当前市场中已弃用)可以编写可在多种浏览器上运行的动态脚本。
在Selenium RC中,我们必须学习Python,C#,Ruby,Java等编程语言才能执行Selenium RC。
它可以生成报告和日志。

Selenium WebDriver

随着时间的推移,硒专家在2011年提出了WebDriver 2.0。
这不是从RC到WebDriver的迁移,它是与RC完全不同的工具,后者每个人都有自己的命令。

WebDriver还可以制作动态脚本,并且可以在多个浏览器上工作。
与Selenium RC一样,它可以生成报告和日志。
现在在当前市场上已经出现了可以完成WebDriver 2.0中完成的工作的WebDriver 3.0,并且Grid2演变为Grid3。

Selenium WebDriver架构

在开始了解Selenium WebDriver体系结构之前,如果我们想了解Selenium WebDriver的工作原理,我们需要了解一些概念。
Selenium体系结构包含五个组件:

  • Lanugage绑定或者Selenium客户端库:Jar文件只不过是我们编写Selenium框架所用的语言。
    这意味着我们用来编写脚本的语言可能是Java,C#,Ruby,Python,Perl。

  • Selenium API:API代表应用程序编程接口。
    API是一组特定的规则和规范,软件程序可以遵循这些规则和规范相互通信。
    API充当软件程序之间的接口,并促进它们之间的交互。
    API是软件到软件的交互,这意味着API在软件到软件之间工作。
    借助API应用程序,无需任何用户知识即可相互交谈。

  • 远程WebDriver:它是WebDriver界面的实现类,测试脚本开发人员可以使用该类通过远程计算机上的WebDriver服务器执行其测试脚本。

  • JSON有线协议:JSON表示JavaScript对象表示法。
    它是一种轻量级的数据交换格式,可帮助我们交换数据。
    JSON用于在Web上的客户端和服务器之间传输数据。
    一个简单的JSON文件扩展名为.json。
    JSON有线协议以JSON格式发送数据,服务器首先解析数据,然后执行数据,然后服务器给出的响应以JSON格式发送回客户端。

  • WebDriver:Webdriver是用于自动化Web应用程序并验证其是否按预期工作的工具。

Selenium WebDriver架构

Selenium WebDriver如何在内部工作?

实时地,我们将使用Java,C#,Python,Ruby,Perl等语言编写脚本。
让我们看看Selenium WebDriver在内部如何工作。
通常,您可以使用任何一种受支持的Selenium客户端库(在本例中为Java)在Eclipse IDE(集成开发环境)中编写代码。

WebDriver driver = new ChromeDriver();
driver.get(https://www.seleniumhq.org);

准备好脚本后,将单击"运行"以执行程序。
根据上述说明,将启动Chrome浏览器,并将导航到SeleniumHQ。

  • 单击运行后,Selenium客户端库将与Selenium API通信。

  • Selenium API将在JSON有线协议的帮助下将从语言级别绑定中获取的命令发送到浏览器驱动程序。

  • Selenium API将请求发送到浏览器驱动程序,它可能是Firefox驱动程序,IE驱动程序,Chrome驱动程序。

  • 浏览器驱动程序将使用HTTP服务器获取HTTP请求,并且HTTP Server过滤掉所有需要执行的命令。

  • 然后,硒脚本中的命令将在浏览器中执行。

  • 最后,HTTP服务器将响应发送回自动化测试脚本。