Selenium教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Selenium IDE构筑
① Selenium IDE安装 在火狐的地址栏输入下列URL。 http://release.openqa.org/selenium-ide/1.0.2/selenium-ide-1.0.2.xpi 安装完成后重启火狐。 ② Firebug 安装 https://addons.mozilla.org/ja/firefox/addon/1843
・是Selenium的一个扩展,并行的Web测试。
Selenium不同版本的比较
Selenium IDE Selenium RC Selenium Core
浏览器支持
仅Firefox
很多 否 是 是
所有 是 是 否
需要远程安装
支持 HTTPS/SSL
否 是 是
支持跨域
需要JRE
将测试结果保存 到磁盘 多语言支持
附 录
① 官方网站 http://seleniumhq.org/ ② Xpath教程 http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html ③ Selenium各版本下载 http://seleniumhq.org/download/ ④ Selenium Doc http://seleniumhq.org/docs/03_selenium_ide.html ⑤ Selenium RC API http://release.seleniumhq.org/selenium-remote-control/0.9.2/doc/java/ com/thoughtworks/selenium/DefaultSelenium.html#DefaultSelenium (com.thoughtworks.selenium.CommandProcessor) ⑥ 部分API中文说明 同级文件夹下的[Selenium API参考手册.odt]
Selenium的语法基本元素
① 动作(Actions) 一般用于操作应用程序的状态。它们通过如点击链接和选择选项的方式进行工作。 如果一个动作执行失败,或是有错误,当前的测试将会停止执行。 ② 验证页面元素 可以验证应用程序的状态是否同所期望的相一致。相当于验证测试点。 ①断言Assertion:验证失败时,该测试将终止。 ②验证Verification:验证失败时,该测试将继续执行,并将错误记入日志。 ③waitfor:等待某些条件变为真(可用于Ajax应用程序的测试)。如果该条件已经为真 ,他们将立即成功执行。反之,如果该条件不为真,则将失败并暂停测试,直到超过 当前所设定的超时时间。 ③ 定位元素(Element Locators) 告诉Selenium是向HTML中的哪一个元素发送命令,许多命令需要一个target属性的元素 定位。 id和name,XPath定位,DOM定位,CSS定位等 ④ 匹配文本模式 通配符 例:dir *.com 正则表达式模式: 精确模式:用处不大。
Selenium版本:
・Selenium Core ・Selenium IDE ・Selenium RC ・Selenium Grid
Selenium Core
・支持DHTML的测试案例,它是Selenium IDE和Selenium Rc的引擎。 ・selenium-core 是使用HTML的方式来编写测试脚本,你也可以使用 Selenium-IDE 来录制脚本,但是目前Selenium-IDE只有 FireFox 版本。
Selenium 常用API③
selectWindow(windowID) - 选择一个弹出窗体;一旦一个弹出窗体被选中,所有的命令将指向该窗体。要再次 选择主窗体,将对象设定为null。 setTimeout(timeout) - 指定Selenium等待动作完成的等待时间。 - 需要等待的动作包括”open”和”waitFor*”。 - 默认超时为30秒。 waitForFrameToLoad(frameAddress,timeout) - 等待一个新的框架加载。 - Selenium通常会持续跟踪新页面和框架的加载状态,当其第一次注意到页面加载完 成,将会设定一个”newPageLoaded”标志。


仅Selenese

是 很多


仅Selenese
注: ①需要远程安装:是否需要在被测网站的服务端安装。 ②SSL的英文全称是Secure Sockets Layer中文名为"安全套接协议层"。 ③Selenium RC支持很多语言,如:C#,Java,Python,Ruby等。
名词解释
Firebug:是Firefox下的一款开发类插件,它集HTML查看和编辑、Javascript控制 台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和 Ajax的得力助手。 xpath: XPath 是XML的查询语言,和SQL的角色很类似。 Selenese:Selenium的命令通常被称为selenese,是命令运行测试集,它没有条件( 没有"if"表达式),并且它没有循环(没有"For"表达式)。
Selenium IDE使用实例
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ 最简单的一个例子:参照实例1。 带有子窗口(PopUp Window)的例子:参照实例2。 Publisher项目的测试NG实例:参照实例3。 Publisher项目的测试OK实例:参照实例4。 动态设定值实例:参照实例5。 Alert AND ConfirmBox实例:参照实例6。 使用JavaScript实例:参照实例7。 JavaScript代码中使用store变量实例:参照实例8。
Selenium 常用API②
select(dropDownLocator, optionSpecifier) - 根据optionSpecifier选项选择器来选择一个下拉菜单选项。 pause(millisenconds) - 根据指定时间暂停Selenium脚本执行。 store(valueToStore, variablename) - 保存一个值到变量里。 click(elementLocator) - 点击连接,按钮,复选和单选框 storeVisible(locator,variableName) 判定指定元素是否可见。一个元素可以通过将其本身或其父级的CSS的visibility属性设 定为hidden,或将dispaly属性设定为none,以使其不可见。如果该元素不存在,此方法将 失败。
关于测试限制事项
自动测试因为条件限制,对测试环境要求比较苛刻。主要有以下限制。 ① 对测试数据的依存: 要求对执行自动测试时刻的数据,要和录制脚本时刻的数据一至。 ② 对测试时间的依存: a. Text文本框内输入的时期,无限制。 b. 对于有业务逻辑的SelectList的时间选择,只能修改服务器时间。 如:配信Report概略画面: 昨日分,7日分,2010年01月分(当月),2009年12月分(先月) c. 对于没有业务逻辑的SelectList的时间选择,尽量使用label=文字的形式。 ③ 对于测试Case的限制: 图片内容,页面布局。。。。。 ④ 尽量使用相对URL,不使用绝对URL。
Selenium IDE使用介绍①
① 打开Selenium IDE: FireBox的「ツール」→Selenium IDE,如下图所示. ② 功能说明:
测试相对URL 测试速度设定 测试Suite(多个测试Case)执行 测试Case(单个测试Case)执行 执行中可以随时暂停测试 单步执行测试 在TestRun中执行,基本不用
Selenium教程
▲ ▲ ▲ ▲ ▲ ▲
Selenium简介 Selenium IDE使用 Selenium IDE使用实例 Selenium的语法基本元素 Selenium常用API介绍 关于测试限制事项
Selenium教程
什么是Selenium:
・ Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列。
Selenium Rc构筑
① ② ③ ④ 下载:http://seleniumhq.org/download/ 创建一个基于JUnit或者TestNG等的一个工程,此处以JUnit为例。 利用SelniumIDE将录制的实例转换成JUnit的代码,作为class加入建立的工程中。 启动Selenium Rc的服务(可以把run.bat文件拷贝到selenium-server.jar同级目录) "C:\Program Files\Java\jdk1.6.0_10\bin\java" -jar selenium-server.jar ⑤ 使用JUnit运行即可。可参照附图JUnitRun.PNG。
Selenium优点:
・Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。 ・Selenium 测试可以在IE、Mozilla 和 Firefox中运行,覆盖测试平台广。 ・通过编写模仿用户操作的Selenium测试脚本,可以从终端用户的角度来 测试应用程序。 ・通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。
录制测试脚本
Selenium IDE使用介绍②
① 打开Selenium IDE: FireBox的「オプション」→フォーマット,可以转换成各种测试工具的 代码,如下所示.
package com.example.tests; import com.thoughtworks.selenium.*; import org.testng.annotations.*; import static org.testng.Assert.*; import java.util.regex.Pattern; public class 実例1 extends SeleneseTestNgHelper { @Test public void test実例1() throws Exception { // 登録画面 selenium.open("file:////menu.html"); selenium.type("firstname", "test1"); selenium.type("password", "password"); selenium.click("link=実例1へ遷移"); selenium.waitForPageToLoad("30000"); // 詳細画面テスト確認 assertEquals(selenium.getText("//td[1]"), "row 1, cell 1"); assertEquals(selenium.getText("//td[2]"), "row 1, cell 2"); assertEquals(selenium.getText("//tr[2]/td[1]"), "row 2, cell 1"); assertEquals(selenium.getText("//tr[2]/td[2]"), "row 2, cell 2"); assertEquals(selenium.getText("//tr[3]/td[1]"), "row 3, cell 1"); assertEquals(selenium.getText("//tr[3]/td[2]"), "row 3, cell 2"); } }
Selenium 常用API①
open(url): - 在测试框架中打开一个URL,可以为相对和绝对URL。Open命令将等待页面加载完 成才继续进行。
Close() - 模拟用户点击弹出窗体或表单标题栏上的″关闭″按钮。
type(locator,value) - 设定一个输入域的值,如同你输入进去一样。 其同样可用于单选框,多选框等。在这些情况,value应为选项选择时的值,而不是 有效文本。 assertText verifyText verifyText - 验证页面相应对象值是否正确。 assertTextPresent VerifyTextPresent VerifyTextPresent waitForTextPresent - 判定指定文字在页面是否存在。不建议使用。
Selenium IDE
・Selenium IDE:FireFox的一个插件,支持脚本録制。
Selenium RC
・Selenium-Remote Control 缩写,使用具体的语言来编写测试类。 ・Selenium RC支持很多语言,如:C#,Java,Python,Ruby等。
百度文库
Selenium Grid
相关文档
最新文档