selenium是web自动化测试工具。
首先介绍selenium IDE,selenium IDE:是FireFox的插件,能够录制脚本和回放脚本。
Selenium1.0最受欢迎技术是:Selenium RC(Selenium Remote Control),Selenium RC 允许开发人员使用自己喜欢的语言编写测试用例,并可以应用在不同的浏览器。是个http代理程序,在被测的应用和测试脚本之间。Selenium RC同时包含了Selenium Core,所以不需要将Selenium Core安装到服务器端。
Selenium-Core:是一个JavaScript程序,实际上就是一套JavaScript函数解释和执行Selenese命令使用浏览器内置的JavaScript解释器。
想详细明白Selenium RC 如何工作和为什么使用Proxy 注入,首先了解同源策略。
Selenium面临主要限制是同源策略。此安全限制被应用在市场上每一个浏览器,其目的是确保网站的内容将永远不会从其他站点的脚本访问。同源策略决定了浏览器加载任何代码只能在该网站的域范围内运作。例如,打开一个baidu的网页只能执行baidu下的JavaScript脚本,而另外一个tab是google,不能执行baidu下的JavaScript,从而防止对本网页的非法篡改。
Selenium Core是使用JS实现,所以被同源策略受限制,Selenium RC通过http代理的方式很好的解决了同源策略并欺骗了浏览器。
以下是Selenium-RC工作流程图:
对以上进行说明:
1.和Selenium-RC 服务器建立连接。
2.Selenium-RC服务器启动浏览器(重用旧的浏览器),把Selenium Core 的JS加载入浏览器页面。
3.发送Selenese命令到Selenium服务器。
4.Selenim服务器解析命令,然后触发相应JS执行该命令。Selenium Core指示浏览器执行第一条指令,通常是打开个页面。
5.浏览器收到请求,再把请求发到HTTP Proxy。
6.Http Proxy和Web服务器进行通讯,把http请求发送到Web服务器获取相应内容。
7.RC Server的HTTP Proxy把收到的web页面返回给浏览器。