1. 什么是Selenium
- 是自动化测试浏览器,主要用于Web应用程序的自动化测试。
- 同时支持所有基于Web的管理任务自动化
- 与其他工具的不同:一般的脚本测试工具录制脚本,实际上都是通过拦截浏览器收发的http请求来实现的。事实上并没有办法录制用户对html页面的操作。 当然,对那些执行压力测试的工具来说,这类模拟已经足够。Selenium的脚本录制工具是通过监听用户对html页面的操作来录制脚本的。Selenium是真正能够监听用户对html页面的操作的录制工具。结构:
(1)Selenium1.0
a) Selenium IDE
- 是嵌入到 Firefox 浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。
- 在什么情况下用:快速的创建Bug重现脚本
b) Selenium Grid
- 是一种自动化的测试辅助工具
- Grid通过利用现有的计算机基础设施,能加快Web-app的功能测试。
- 利用Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试用例
- 其特点为:并行执行、通过一个主机统一控制用例在不同环境、不同浏览器下运行、灵活添加变动测试机
c) Selenium RC
- selenium RC 是 selenium 家族的核心工具,selenium RC 支持多种不同的语言编写自动化测试脚本,通过 selenium RC 的服务器作为代理服务器去访问应用从而达到测试的目的。
- selenium RC 使用分 Client Libraries 和 selenium Server。
- Client Libraries 库主要主要用于编写测试脚本,用来控制 selenium Server 的库。
- Selenium Server 负责控制浏览器行为,总的来说,Selenium Server 主要包括 3 个部分:Launcher、Http Proxy、Core。其中 Selenium Core 是被 Selenium Server 嵌入到浏览器页面中的。其实 Selenium Core就是一堆
JS 函数的集合,就是通过这些 JS 函数,我们才可以实现用程序对浏览器进行操作。Launcher 用于启动浏览器,把 selnium Core 加载到浏览器页面当中,并把浏览器的代理设置为 Selenium Server 的Http
Proxy。
(2)Selenium2.0
selenium 2.0 = selenium 1.0 + WebDriver
其中:WebDriver
& Selenium RC区别:
- Selenium RC:在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行selenese 命令(selenese 是 selenium 命令集合) 。
- WebDriver:通过原生浏览器支持或浏览器扩展直接控制浏览器,WebDriver针对各个浏览器而开发,取代了被嵌入到被测Web应用中的JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver 还利用操作系统级的调用模拟用户输
2. WebDriver原理
1) WebDriver启动目标浏览器,并绑定到指定端口。该启动的浏览器实例,作为WebDriver的remote server
2) Client端通过CommandExcuter发送HTTPRequest给remote
server的侦听端口(通信协议:the webdriver wire protocol)
3) Remote server需要依赖原生的浏览器组件(如:IEDriverServer.ex)来转化浏览器的native调用
3. 学习路线
1) 熟悉WebDriverAPI:API就是selenium 所定义一方法,用于定位,操作页面上的各种元素。
- 先学习元素的定位,selenium 提供了id、name、class name、 tag name、link text、partial link
text、 xpath、css、等定位方法。xpath和css 功能强大语法稍微复杂,在这其间你可能还需要了解更多的前端知识。xml, javascript 等。 - 定位元素的目的是为了操作元素,接着就要学习各种元素有操作,输入框,下拉框,按钮点击,文件上传、下载,分页,对话框,警告框...等等。
2) 学习并使用单元测试框架,单元测试框架本身就解决了用例的组织与运行。
3)学习POM设计模式
时间: 2024-11-07 23:57:52