开源Web测试工具—Selenium
来源:互联网 发布:seo sem ppc 编辑:程序博客网 时间:2024/03/28 18:38
Selenium 是 ThoughtWorks 专门为 Web 应用而开发的自动化测试工具,适合进行功能
可直接运行在浏览器之上,所见即所得,就像真实用户所做的一样。Selenium 的核心,也称 browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令支持多操作系统(Windows, Mac OS和Linux)和各种浏览器Internet Explorer、Mozilla 和 Firefox,更容易发现浏览器的不兼容性支持两种开发脚本的模式test runner (HTML文件)和 driven(脚本
但是Selenium是轻量的测试框架, 脚本所处理的测试用例构成简单,其实质就是通过HTTP协议,发送请求(request)来完成测试用例,所以很困难处理业务逻辑关系强的测试用例。
Selenium 命令
Selenium 命令分成两类 —— 操作(action) 和断言(assertion):
操作模拟用户与 Web 应用
断言验证一个命令的预期结果。常见的断言包括验证页面
在 Selenium 网站上可以找到可用命令的完整列表。通过 Selenium 命令,脚本编写者可以描述 browser bot 在浏览器中所执行的操作
组成
Selenium IDE:一个firefox的plug-in,可以录制和回放并保存一些test cases, 可以生成一些简单的基于rc 模式的简单code. (相当于 Jmeter的gui模式和jmeter脚本的生成-badboy)
Selenium Core. 整个测试机制的核心部分,即有assertion(断言) 机制的test suite runner。它由一些纯js
Selenium Remote Control:一个代理与控制端, 可代替Selenium core/ Selenium IDE的client端(相当于通过编程来实现一切),是支持 多语言的. (相当于Jmeter的client/server模式,但Selenium Remote Control更强一些)
Windows:
Internet Explorer 6.0
Firefox 0.8 to 1.5, Mozilla Suite 1.6+, 1.7+
Seamonkey 1.0, Opera 8
Mac OS X:
Safari 1.3+
Firefox 0.8 to 1.5, Mozilla Suite 1.6+, 1.7+
Seamonkey 1.0, Camino 1.0a1
Linux:
Firefox 0.8 to 1.5, Mozilla Suite 1.6+, 1.7+
Konqueror
部署Selenium
selenium
devtests:试验性功能 dom-images: 查看DOM用
dom-styles: 查看DOM用样式表
html-xpath: Xpath库
jsmock: javascript mock library
jsunit: javascript unit test library
tests: samples(以这个为基础开发
核心js文件和html文件
如果想要测试自己开发的发布在服务器端的页面,需要把selenium配置在同一个服务器下:
Apache :直接将selenium
Tomcat :直接将selenium目录拷贝至webapps目录下,启动Tomcat,用地址http://server:8080/selenium/TestRunner.html访问例子。:
IIS:建立一个虚拟目录selenium,将该虚拟目录直接指向实际的selenium目录,用地址http://server/selenium/TestRunner.html访问例子Selenium test runner 脚本,就是测试用例(test case),是用 HTML
清单 1. Selenium 测试用例的
Command1/Assertion1
Target1
Value1
Command2 Assertion1
Target2
Value2
test runner 脚本使用与 xUnit 框架相同的测试套件(test suite)和测试用例概念。测试用例和命令按照它们在测试套件和测试用例中出现的顺序依次执行。在 清单 1 中:
第一列包含命令 或断言。
第二列包含命令或断言的目标(target)。可以用多种受支持的组件定位符中的一种来指定目标。通常使用的是组件的 ID 或名称,但 XPath 和 DOM 定位符也是受支持的。
第三列包含用于为命令或断言指定
Test runner 脚本通常与所
driven 脚本开发模式driven Selenium 脚本是用多种受支持的编程语言(Java, .NET, Perl, Python 和 Ruby)中的一种编写的。这些脚本在浏览器之外的一个单独的进程中运行。驱动
driven 脚本比 test runner 脚本更强大、更灵活,可以将它们与 xUnit 框架集成。driven 脚本编写和部署更复杂些,它必须执行以下任务:
启动服务器。
部署所测试的
部署测试脚本。
启动浏览器。
发送命令到 browser bot。
验证 browser bot 执行的命令的结果。
driven 脚本更依赖于应用程序运行时环境。例如,Java 驱动程序使用一个嵌入式 Jetty 或 Tomcat 实例来部署所测试的应用程序,如将 Selenium 集成到 Ruby on Rails 中。
开发测试用例测试用例开发涉及四类文件
主文件: TestRunner.html/TestRunner.hta(.hta文件是html application,
Test suite和Test case文件:需要编写的由一个表格组成的html文件;
引擎库js文件:位于selenium根
user-extensions.js:用来扩展selenium的文件;用户自己编写的函数和扩展的命令都应该放在这个文件中;
这四类文件中,除了引擎库以外,其他三类文件都是可以根据具体情况去修改的。selenium 部署完毕后,可以打开浏览器来通过url来访 问TestRunner.html文件。初始的时候,TestRunner.html文件中的 TestSuite是链接到tests目录下的TestSuite.html文件,TestCase的frame(上部中间)中打开了 TestSuite.html文件中的第一个Test Case “TestOpen.html”。
可以直接修改TestSuite.html文件,让其指向自己
http://localhost/selenium/TestRunner.html?test=/testDir/myTestSuite.html
下面就是开发
|command| Target| value|
清单 2就是四个测试用例的例子,将
通过进入 /change_address_form.html 打开变更地址页面。
在 ID 为 address_field 的文本框中输入 Betelgeuse state prison。
单击名为 Submit 的输入区。注意,这里使用 XPath 找到 Submit 按钮,这导致表单数据被发送到服务器。
验证页面是否包含文本 Address change successful。
清单 2. 在测试用例中使用命令和断言的例子
command
Target
Value
open
/change_address_form.html
type
address_field
Betelgeuse state prison
clickAndWait
//input[@name='Submit']
verifyTextPresent
Address change successful<
测试套件和测试用例一样,都是用简单的 HTML 表编写的。Selenium
对于一个有着多个功能模块、组件的web
- 开源Web测试工具—Selenium
- Web测试工具:Selenium
- Web自动化测试工具——Selenium
- selenium——Web自动化测试工具
- selenium web自动化测试工具
- Web自动化测试工具——Selenium IDE
- 强大的Web开源测试工具—Selenium
- 强大的Web开源测试工具—Selenium
- 强大的Web开源测试工具—Selenium
- 强大的Web开源测试工具—Selenium
- 强大的Web开源测试工具—Selenium
- Web开源测试工具—Selenium介绍(1)
- Web测试工具Selenium:如何选取元素
- web测试工具-selenium用法(二)
- web 页面自动化测试工具--selenium
- Web测试工具Selenium:如何选取元素
- selenium web的自动化测试工具
- 关于java web自动化测试工具 selenium
- 数据结构set string vector的使用
- 10.8
- CSS代码结构初探:再谈div和span!
- 一个女程序员的男友需求说明书
- 还魂夜里的化妆师
- 开源Web测试工具—Selenium
- 搭建Apache + Mongrel 最佳RoR Web服务器平台
- 制作WEB在线编辑器-插入HTML标签
- 我要过滤你, 讨厌的广告AD --- 新浪广告
- 程序员为什么单身?细数程序员"六宗罪"
- 编译boost库
- 软件业里成功未必考研
- 利用二叉搜索树来实现排序 BSTree(pku 1002)
- 在Spring中实现事务挂起