软件测试 | Selenium-RC 工作原理
我们描述 Selenium-RC 组件是如何运转的,以及它们在测试案例运行过程中扮演什么角色。
1.RC 组件
Selenium-RC 组件包括:
Selenium Server,它负责启动和关闭浏览器,解释和运行从测试程序传来的 Selenium 命令,就像一个 HTTP 代理一样。截取和验证浏览器与待测应用(AUT)之间的 HTTP 消息;
客户端库文件提供编程语言和 Selenium-RC Server 之间的接口。
Selenium-RC 的一个简单的架构图,如图 5-1 所示。
图 5-1 说明客户端库文件将命令传递给 Server。接着 Server 使用 Selenium-Core 的 JavaScript 命令,将 Selenium 命令传递给浏览器。浏览器会使用自带的 JavaScript 翻译器来执行 Selenium 命令。这意味着测试脚本中的 Selenium 操作和验证将被执行。
2.Selenium Server
Selenium Server 从你的测试程序中接收 Selenium 命令,翻译它们,向测试程序反馈运行这些测试案例的结果。
在测试程序打开浏览器时(使用客户端库文件的 API 函数),RC Server 绑定 Selenium Core 并自动将它嵌入到浏览器中。Selenium-Core 是一个 JavaScript 程序,实际上是一系列 JavaScript 函数,它们使用浏览器内置的 JavaScript 翻译器来翻译和执行 Selenium 命令。
Server 使用简单的 HTTP GET/POST 请求从你的测试程序中获取 Selenium 命令。这意味着你可以使用任何支持 HTTP 请求的编程语言来自动化基于浏览器的测试案例。
3.客户端库文件
客户端库文件提供编程接口,允许你使用自己编写的程序来运行 Selenium 命令。对于每一种支持的语言都有对应客户端库文件。Selenium 客户端库文件提供编程接口(API),例如,一些列函数,以便通过你的程序来运行 Selenium 命令。对于任何一种接口而言,都有对应的函数支持每一个 Selenese 命令。
客户端库文件获取一条 Selenium 命令,并将它传递给 Selenium Server,以便于执行一个指定操作或者基于待测应用(AUT)进行测试。客户端库文件收到命令的执行结果,再将其传给你的测试程序。程序接受到结果后,将它保存在变量中,接着报告成功还是失败,如果结果是意料之外的失败,还能有针对性地采取正确措施。
因此要创建测试程序,你只须使用客户端库文件的 API 来编写程序,程序会去运行一系列 Selenium 命令。如果你已经在 Seleniu-IDE 中创建了一个 Selenium 测试脚本,可以用它来生成 Selenium。如果你已经在 Selenium-IDE 中创建了一个 Selenese 测试脚本,可以用它来生成 Selenium-RC 代码。Selenium-IDE 可以将它的 Selenium 命令,翻译成客户端驱动的 API 函数调用(使用 Selenium-IDE Export 菜单选项)。
搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核
评论