【Web测试专栏】Selenium+JUnit自动化测试方案 (二)
来源:互联网 发布:网络鬼畜什么意思 编辑:程序博客网 时间:2024/05/08 11:09
在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对浏览器的支持情况比较
Selenium RC的框架
Selenium RC的程序文件同样包括两个部分。
Selenium Server:负责控制浏览器行为,它主要包括3个部分:Launcher,Http Proxy,Selenium Core。其中Selenium Core是被Selenium Server嵌入到浏览器页面中的。其实Selenium Core就是一堆JS函数的集合,就是通过这些JS函数,我们才可以实现用程序对浏览器进行操作。
Client Libraries:提供了编写测试用例控制Selenium Server所需的多种编程语言库。
Selenium RC的工作流程
测试用例(TestCase)通过Client Libraries的接口向Selenium Server发送Http请求,要求和Selenium Server建立连接。
Selenium Server的Launcher启动浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy。
测试用例通过Client Libraries的接口向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作。
Selenium Core接收到指令后,执行操作。
浏览器收到新的页面请求信息(因为在第4步中,Selenium Core的操作可能引发新的页面请求),发送Http请求,请求新的Web页面。由于Selenium Server在启动浏览器时做了手脚,所以Selenium Server会接收到所有由它启动的浏览器发送的请求。
Selenium Server接收到浏览器的发送的Http请求后,自己重组Http请求,获取对应的Web页面。
Selenium Server的Http Proxy把接收的Web页面返回给浏览器。
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (二)
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (二)
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (一)
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (三)
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (四)
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (一)
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (三)
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (四)
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (五)
- junit+selenium自动化测试
- selenium+Junit自动化测试
- selenium 自动化web测试
- selenium自动化测试web
- selenium webdriver junit自动化测试架构
- selenium Java Junit jenkins 自动化测试相关
- 利用 Selenium 自动化 web 测试
- 利用 Selenium 自动化 web 测试
- 利用 Selenium 自动化 web 测试
- ViewPagerIndicator系列之--引导界面
- 滑动删除
- 关于mybatis mapper中的resultMap一些基础知识
- 日经社説 20150205 清新な代表に生まれ変われ
- Android 如何实现圆形头像
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (二)
- QTcpSocket服务器 定时器,多线程结合
- checkbox全选
- 【转】数据流挖掘
- 22个值得收藏的android开源代码-UI篇
- 日经社説 20150205 タクシーは政府頼みから脱し需要創造を
- 协议的制定
- Vector类的实现
- python抓取网页