【Web测试专栏】Selenium+JUnit自动化测试方案 (二)

时间:2022-01-24 05:07:24
【Web测试专栏】Selenium+JUnit自动化测试方案 (二)

在Selenium+JUnit自动化测试方案(一)中,介绍了Selenium和一种快速开始Selenium自动化测试的Firefox插件Selenium IDE。

本文将介绍一种完整的Selenium框架 Selenium RC。


Selenium RC 使用编程语言编写脚本,通过Selenium RC服务器作为代理服务器去访问应用从而达到测试的目的。

由于Selenium RC不再需要依附Firefox,所以其可以在其它更多的浏览器上进行测试。

Selenium RC的使用包括两部分:

  • 第一部分是服务器。服务器下载后即可使用,记得开始跑脚本时把服务器打开。它是一个已经打包好的JAVA程序,运行 java -jar selenium-server.jar即可。

  • 另一部分是脚本,脚本需要我们自己编写。它可以使用多种语言编写,如C#、Ruby、JAVA等,在这里我采用的是JAVA。它可以在多个测试框架上应用,比JUnit/Nunit,Testng等,这里采用的是Junit。在整个测试框架中,Selenium提供了封装好的Selenium接口与类,如果使用JUnit它同样提供了封装好的测试类。


Selenium IDE和Selenium RC对浏览器的支持情况比较

【Web测试专栏】Selenium+JUnit自动化测试方案 (二)


Selenium RC的框架

Selenium RC的程序文件同样包括两个部分。

【Web测试专栏】Selenium+JUnit自动化测试方案 (二)

  • Selenium Server:负责控制浏览器行为,它主要包括3个部分:Launcher,Http Proxy,Selenium Core。其中Selenium Core是被Selenium Server嵌入到浏览器页面中的。其实Selenium Core就是一堆JS函数的集合,就是通过这些JS函数,我们才可以实现用程序对浏览器进行操作。

  • Client Libraries:提供了编写测试用例控制Selenium Server所需的多种编程语言库。

    【Web测试专栏】Selenium+JUnit自动化测试方案 (二)


Selenium RC的工作流程

【Web测试专栏】Selenium+JUnit自动化测试方案 (二)

  1. 测试用例(TestCase)通过Client Libraries的接口向Selenium Server发送Http请求,要求和Selenium Server建立连接。

  2. Selenium Server的Launcher启动浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy。

  3. 测试用例通过Client Libraries的接口向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作。

  4. Selenium Core接收到指令后,执行操作。

  5. 浏览器收到新的页面请求信息(因为在第4步中,Selenium Core的操作可能引发新的页面请求),发送Http请求,请求新的Web页面。由于Selenium Server在启动浏览器时做了手脚,所以Selenium Server会接收到所有由它启动的浏览器发送的请求。

  6. Selenium Server接收到浏览器的发送的Http请求后,自己重组Http请求,获取对应的Web页面。

  7. Selenium Server的Http Proxy把接收的Web页面返回给浏览器。


【Web测试专栏】Selenium+JUnit自动化测试方案 (二)


【Web测试专栏】Selenium+JUnit自动化测试方案 (二)

原文链接

如需转载该篇文章,请注明来自“搜狗测试”