什么是 Selenium(只做初始解释,更详细的请看官网)
Selenium 是 ThoughtWorks 专门为 Web 应用程序编写的一个验收测试工具。据 Selenium 主页所说,与其他测试工具相比,使用 Selenium 的最大好处是:
1. Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在 Windows、Linux 和 MacintoshAnd 上的 Internet Explorer、Mozilla 和 Firefox 中运行。其他测试工具都不能覆盖如此多的平台。
2. 使用 Selenium 和在浏览器中运行测试还有很多其他好处。下面是主要的两大好处:
通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序。
通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。
Selenium 能做什么
作为 Programmer 来说,写一段程序来帮助我们完成一系列繁琐的人工操作工作,是一件多么愉快的事。21 世纪是网络的时代,几乎所有的互联网操作都离不开浏览器,如果能让程序控制浏览器来为我们做一系列繁琐的工作,互联网的那些事儿不就变得简单了吗?太好了,想起都太好了。
Selenium 正是能为我们做这些事的工具。
如何安装
1. Linux 环境
操作系统一定要为桌面型 Linux 操作系统 (因为需要启浏览器)
安装 java 环境 (JDK)
点击链接下载:selenium-server-standalone-2.39.0.jar(现在最近版本己是 2.42, 线上布署的为 2.39)
运行该 jar 包 (java -jar /root/code/selenium-server-standalone-2.39.0.jar -role hub -DPOOL_SIZE 512 -port 80 ) 后面跟的参数大家可以在官网查询,这里不做重复解释,特别需要注意的是:最好使用 root 来启动,因为 jar 包里面需要权限去执行其他操作。
浏览器访问:http://127.0.0.1 就能看到 selenium server grid 的界面, 表时 selenium 服务器己搭建好
需要在 selenium server 上启动具体的 Selenium-RC 实例. (java -jar /root/selenium/selenium-server-standalone-2.39.0.jar -role node -hub http://localhost:80/grid/register -browser browserName=firefox,firefox_binary=/usr/bin/firefox,version=24.6.0 platform=LINUX -port 5553 -registerCycle=60000) 该命令执行后,就有运行的具体实例了。
2. Windows 环境
与 Linux 环境有很多相同点。由于 linux 环境下相比 Window 环境更稳定,所以一般在没有使用 Windows 环境的情况下,都是使用的 Linux 环境下面的 firefox,如果我们一定要使用Windows 环境,我们主要是使用它的 IE 浏览器。
如果一定要使用 Windows 环境,我们这里也说一下如何搭建
安装 java 环境 (JDK)
点击链接下载:selenium-server-standalone-2.39.0.jar(现在最近版本己是 2.42, 线上布署的为 2.39),IEDriverServer.exe(启动 IE 浏览器的 Driver)
运行该 jar 包 (java -jar C:\selenium\selenium-server-standalone-2.39.0.jar -role hub -DPOOL_SIZE 512 -port 80) 后面跟的参数大家可以在官网查询。
浏览器访问:http://127.0.0.1 就能看到 selenium server grid 的界面, 表时 selenium 服务器己搭建好
需要在 selenium server 上启动具体的 Selenium-RC 实例. (java -jar C:\selenium\selenium-server-standalone-2.39.0.jar -role node -hub http://localhost:80/register -browser browserName="internet explorer" -Dwebdriver.ie.driver=C:\selenium\IEDriverServer.exe -port 5553 naxInstance=1,platform=WINDOWS) 该命令执行后,就有运行的具体实例了
与 Linux 环境的区别:
Selenium 默认使用的 Driver 是 firefox, 在 window 环境下面需要启动 IE,所以我们需要 IEDriverServer.exe
Window 环境下面, 目前官网明确说明支持 XP,其他系统官方没有明确说明是否支持
Ruby 如何操作
1、所需 GEM 包
gem 'selenium-webdriver', '2.39.0' #2.39.0 该版本号一定要与 selenium-server-standalone-2.39.0.jar 这个 java 包的版本一致
gem 'selenium'
gem 'selenium-client'
gem 'capybara', '2.2.1'
2、Selenium-RC 实例为:Firefox,初始化代码如下:include Capybara::DSL #我们使用Capybara来操作Selenium
Capybara.run_server = false
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
http_client.timeout = 1800
Capybara::Selenium::Driver.new(app,
:browser => :remote,
:url => 'http://localhost:5553/wd/hub', #我们上面为之非常努力配置的 Selenium-RC实例
:desired_capabilities => :firefox#其实只有这里不同
)
end
初始化成功后,我们就可以使用 Capybara::DSL 里面封装的 selenium 操作浏览器的方法了。
比如:让浏览器访问一个网页,就只需要使用 visit 'http://www.baidu.com'
大家先看看这里面,非常的人性化的方法:https://github.com/jnicklas/capybara
3、Selenium-RC 实例为:IE, 初始化代码如下:include Capybara::DSL #我们使用Capybara来操作Selenium
Capybara.run_server = false
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
http_client = Selenium::WebDriver::Remote::Http::Default.new
http_client.timeout = 1800
Capybara::Selenium::Driver.new(app,
:browser => :remote,
:url => 'http://localhost:5553/wd/hub', #我们上面为之非常努力配置的 Selenium-RC实例
:desired_capabilities => :internet_explorer,#其实只有这里不同
:http_client => http_client
)
end
初始化成功后,我们就可以使用 Capybara::DSL 里面封装的 selenium 操作浏览器的方法了。
比如:让浏览器访问一个网页,就只需要使用 visit 'http://www.baidu.com'
大家先看看这里面,非常的人性化的方法:https://github.com/jnicklas/capybara