fishy 2008-3-13 11:05
强大的Web开源测试工具—Selenium
[font=黑体]介绍[/font][align=left][align=left][color=black][font=Verdana]Selenium [/font][/color][color=black][font=宋体]是[/font][/color][color=black][font=Verdana] ThoughtWorks [/font][/color][color=black][font=宋体]专门为[/font][/color][color=black][font=Verdana] Web [/font][/color][color=black][font=宋体]应用而开发的自动化测试工具,适合进行功能测试、验收测试[/font][/color][color=black][font=Verdana],[/font][/color][color=black][font=宋体]其最大的优势有几点:[/font][/color][color=black][font=Verdana][/font][/color][/align][/align][list][*][i][color=black][font=宋体]可直接运行在浏览器之上,所见即所得,就像真实用户所做的一样。[/font][/color][/i][i][color=black][font=Verdana]Selenium [/font][/color][/i][i][color=black][font=宋体]的核心,也称[/font][/color][/i][i][color=black][font=Verdana] browser bot[/font][/color][/i][i][color=black][font=宋体],是用[/font][/color][/i][i][color=black][font=Verdana] JavaScript [/font][/color][/i][i][color=black][font=宋体]编写的。这使得测试脚本可以在受支持的浏览器中运行。[/font][/color][/i][i][color=black][font=Verdana]browser bot [/font][/color][/i][i][color=black][font=宋体]负责执行从测试脚本接收到的命令[/font][/color][/i][i][color=black][font=Verdana][/font][/color][/i][*][i][color=black][font=宋体]支持多操作系统([/font][/color][/i][i][color=black][font=Verdana]Windows, Mac OS[/font][/color][/i][i][color=black][font=宋体]和[/font][/color][/i][i][color=black][font=Verdana]Linux[/font][/color][/i][i][color=black][font=宋体])和各种浏览器[/font][/color][/i][i][color=black][font=Verdana]Internet Explorer[/font][/color][/i][i][color=black][font=宋体]、[/font][/color][/i][i][color=black][font=Verdana]Mozilla [/font][/color][/i][i][color=black][font=宋体]和[/font][/color][/i][i][color=black][font=Verdana] Firefox[/font][/color][/i][i][color=black][font=宋体],更容易发现浏览器的不兼容性[/font][/color][/i][i][color=black][font=Verdana][/font][/color][/i][*][i][color=black][font=宋体]支持两种开发脚本的模式[/font][/color][/i][i][color=black][font=Verdana]test runner [/font][/color][/i][i][color=black][font=宋体]([/font][/color][/i][i][color=black][font=Verdana]HTML[/font][/color][/i][i][color=black][font=宋体]文件)和[/font][/color][/i][i][color=black][font=Verdana] driven[/font][/color][/i][i][color=black][font=宋体](脚本语言编写),其语言包括[/font][/color][/i][i][color=black][font=Verdana]Java, .NET, Perl, Python [/font][/color][/i][i][color=black][font=宋体]和[/font][/color][/i][i][color=black][font=Verdana] Ruby. [/font][/color][/i][i][color=black][font=宋体]使用[/font][/color][/i][i][color=black][font=Verdana] driven [/font][/color][/i][i][color=black][font=宋体]脚本,测试有一部分在浏览器之外运行,而如果使用[/font][/color][/i][i][color=black][font=Verdana] test runner [/font][/color][/i][i][color=black][font=宋体]脚本的话,测试是完全在浏览器中运行的。[/font][/color][/i][i][color=black][font=Verdana][/font][/color][/i][/list][align=left][align=left][color=black][font=宋体]但是[/font][/color][color=black][font=Verdana]Selenium[/font][/color][color=black][font=宋体]是轻量的测试框架,[/font][/color]
[color=black][font=宋体]脚本所处理的测试用例构成简单,其实质就是通过[/font][/color][color=black][font=Verdana]HTTP[/font][/color][color=black][font=宋体]协议,发送请求([/font][/color][color=black][font=Verdana]request[/font][/color][color=black][font=宋体])来完成测试用例,所以很困难处理业务逻辑关系强的测试用例。[/font][/color][color=black][font=Verdana][/font][/color][/align][/align][align=left][align=left][b][font=宋体][size=9pt]更多的讨论:[/size][/font][/b][b][font=Verdana][size=9pt] [url=http://forums.openqa.org/index.jspa][color=#0000ff]http://forums.openqa.org/index.jspa[/color][/url][/size][/font][/b][/align][/align]Selenium [font=黑体]命令[/font][align=left][align=left][color=black][font=宋体]Selenium [/font][/color][color=black][font=宋体]命令分成两类 —— [i]操作(action)[/i] 和[i]断言(assertion)[/i]:[/font][/color][/align][/align][list][font=宋体]操作模拟用户与 Web 应用程序的交互。例如,单击一个按钮和填写一个表单,这些都是常见的用户操作,可以用 Selenium 命令来自动化这些操作。 [/font][*][font=宋体]断言验证一个命令的预期结果。常见的断言包括验证页面内容或当前位置是否正确。 [/font][/list][align=left][align=left][color=black][font=宋体]在 Selenium 网站上可以找到可用命令的完整列表。通过 Selenium 命令,脚本编写者可以描述 browser bot 在浏览器中所执行的操作[/font][/color][/align][/align][font=黑体]组成[/font][list][b][font=Verdana][url=http://www.openqa.org/selenium-ide][color=black]Selenium IDE[/color][/url][/font][/b][font=宋体]:一个[/font][font=Verdana]firefox[/font][font=宋体]的[/font][font=Verdana]plug-in,[/font][font=宋体]可以录制和回放并保存一些[/font][font=Verdana]test cases, [/font][font=宋体]可以生成一些简单的基于[/font][font=Verdana]rc [/font][font=宋体]模式的简单[/font][font=Verdana]code. [/font][font=宋体](相当于[/font][font=Verdana]Jmeter[/font][font=宋体]的[/font][font=Verdana]gui[/font][font=宋体]模式和[/font][font=Verdana]jmeter[/font][font=宋体]脚本的生成[/font][font=Verdana]-badboy[/font][font=宋体])[/font][font=Verdana][/font] [b][font=Verdana][url=http://www.openqa.org/selenium-core/][color=black]Selenium Core[/color][/url][/font][/b][font=Verdana]. [/font][font=宋体]整个测试机制的核心部分,即有[/font][font=Verdana]assertion[/font][font=宋体](断言)[/font]
[font=宋体]机制的[/font][font=Verdana]test suite runner[/font][font=宋体]。它由一些纯[/font][font=Verdana]js[/font][font=宋体]代码组成,[/font]
[font=宋体]可以运行在[/font][font=Verdana]windows/linux[/font][font=宋体]的不同[/font][font=Verdana]browser[/font][font=宋体]上[/font]
[font=宋体](相当于[/font][font=Verdana]Jmeter [/font][font=宋体]的[/font][font=Verdana]runner [/font][font=宋体]跟[/font][font=Verdana] Assertion[/font][font=宋体])[/font][font=Verdana][/font] [*][b][color=black][font=Verdana][url=http://www.openqa.org/selenium-rc][color=black]Selenium Remote Control[/color][/url][/font][/color][/b][color=black][font=宋体]:一个代理与控制端,[/font][/color]
[color=black][font=宋体]可代替[/font][/color][color=black][font=Verdana]Selenium core/ Selenium IDE[/font][/color][color=black][font=宋体]的[/font][/color][color=black][font=Verdana]client[/font][/color][color=black][font=宋体]端[/font][/color][color=black][font=Verdana]([/font][/color][color=black][font=宋体]相当于通过编程来实现一切[/font][/color][color=black][font=Verdana])[/font][/color][color=black][font=宋体],是支持多语言的[/font][/color][color=black][font=Verdana]. ([/font][/color][color=black][font=宋体]相当于[/font][/color][color=black][font=Verdana]Jmeter[/font][/color][color=black][font=宋体]的[/font][/color][color=black][font=Verdana]client/server[/font][/color][color=black][font=宋体]模式[/font][/color][color=black][font=Verdana],[/font][/color][color=black][font=宋体]但[/font][/color][color=black][font=Verdana][url=http://www.openqa.org/selenium-rc][color=black]Selenium Remote Control[/color][/url][/font][/color][color=black][font=宋体]更强一些[/font][/color][color=black][font=Verdana])[/font][/color]
[font=Verdana][/font][/list][font=黑体]支持的平台[/font]
[list][font=Verdana][size=9pt]Windows:[/size][/font] [list][font=Verdana][size=9pt]Internet Explorer 6.0[/size][/font] [*][font=Verdana][size=9pt]Firefox 0.8 to 1.5, Mozilla Suite 1.6+, 1.7+[/size][/font] [*][font=Verdana][size=9pt]Seamonkey 1.0, Opera 8[/size][/font][/list][/list][list][font=Verdana][size=9pt]Mac OS X: [/size][/font][list][font=Verdana][size=9pt]Safari 1.3+ [/size][/font][*][font=Verdana][size=9pt]Firefox 0.8 to 1.5,
Mozilla Suite 1.6+, 1.7+ [/size][/font][*][font=Verdana][size=9pt]Seamonkey 1.0, Camino 1.0a1
[/size][/font][/list][/list][list][font=Verdana][size=9pt]Linux: [/size][/font][list][*][font=Verdana][size=9pt]Firefox 0.8 to 1.5,
Mozilla Suite 1.6+, 1.7+ [/size][/font][*][font=Verdana][size=9pt]Konqueror [/size][/font][/list][/list][font=宋体]部署[/font]Selenium[align=left][align=left][b][font=宋体][size=9pt]下载地方:[/size][/font][/b][b][font=Verdana][size=9pt][url=http://www.openqa.org/selenium/][color=#0000ff]http://www.openqa.org/selenium/[/color][/url][/size][/font][/b][/align][/align][b][font=Verdana][size=9pt]selenium[/size][/font][/b][b][font=宋体][size=9pt]目录下的内容:[/size][/font][/b][font=Verdana][size=9pt] [/size][/font]
[size=9pt]devtests:试验性功能 dom-images: 查看DOM用图片
dom-styles: 查看DOM用样式表
html-xpath: Xpath库
jsmock: javascript mock library
jsunit: javascript unit test library
tests: samples(以这个为基础开发测试用例)
核心js文件和html文件 [/size]
[size=9pt]如果想要测试自己开发的发布在服务器端的页面,需要把[/size][font=Verdana][size=9pt]selenium[/size][/font][size=9pt]配置在同一个服务器下:[/size][font=Verdana][size=9pt][/size][/font]
[b][font=Verdana][size=9pt]Apache[/size][/font][/b]
[size=9pt]:[/size][size=9pt]直接将[/size][font=Verdana][size=9pt]selenium[/size][/font][size=9pt]目录拷贝至[/size][font=Verdana][size=9pt]htdocs[/size][/font][size=9pt]([/size][font=Verdana][size=9pt]Apache[/size][/font][size=9pt]的确省根目录[/size][size=9pt])[/size][size=9pt]目录下[/size][size=9pt],[/size][size=9pt]然后启动[/size][font=Verdana][size=9pt]Apache[/size][/font][size=9pt],[/size][size=9pt]用地址[/size][font=Verdana][size=9pt][url=http://server/][color=#0000ff]http://server[/color][/url][/size][/font][size=9pt]:[/size][font=Verdana][size=9pt]8080/selenium/TestRunner.html[/size][/font][size=9pt]访问例子。[/size][font=Verdana][size=9pt][/size][/font]
[b][font=Verdana][size=9pt]Tomcat[/size][/font][/b]
[size=9pt]:[/size][size=9pt]直接将[/size][font=Verdana][size=9pt]selenium[/size][/font][size=9pt]目录拷贝至[/size][font=Verdana][size=9pt]webapps[/size][/font][size=9pt]目录下[/size][size=9pt],[/size][size=9pt]启动[/size][font=Verdana][size=9pt]Tomcat[/size][/font][size=9pt],[/size][size=9pt]用地址[/size][font=Verdana][size=9pt][url=http://server/][color=#0000ff]http://server[/color][/url][/size][/font][size=9pt]:[/size][font=Verdana][size=9pt]8080/selenium/TestRunner.html[/size][/font][size=9pt]访问例子。[/size][size=9pt]:[/size][font=Verdana][size=9pt][/size][/font]
[b][font=Verdana][size=9pt]IIS[/size][/font][/b][size=9pt]:[/size][size=9pt]建立一个虚拟目录[/size][font=Verdana][size=9pt]selenium[/size][/font][size=9pt],将该虚拟目录直接指向实际的[/size][font=Verdana][size=9pt]selenium[/size][/font][size=9pt]目录,用地址[/size][font=Verdana][size=9pt][url=http://server/selenium/TestRunner.html][color=#0000ff]http://server/selenium/TestRunner.html[/color][/url][/size][/font][size=9pt]访问例子[/size][font=Verdana][size=9pt][/size][/font]
[font=Arial][size=13.5pt]Test runner [/size][/font][font=宋体][size=13.5pt]脚本开发模式[/size][/font]
[size=10.5pt][/size][font=Verdana][size=10.5pt]Selenium test runner [/size][/font][size=10.5pt]脚本,就是[i]测试用例([/i][/size][i][font=Verdana][size=10.5pt]test case[/size][/font][/i][i][size=10.5pt])[/size][/i][size=10.5pt],是用[/size][font=Verdana][size=10.5pt] HTML [/size][/font][size=10.5pt]语言通过一个简单的表布局编写的,即使对于非技术人员来说,[/size][font=Verdana][size=10.5pt]test runner [/size][/font][size=10.5pt]脚本也易于阅读和编写。如[/size][font=Verdana][size=10.5pt] [url=http://www-128.ibm.com/developerworks/cn/java/wa-selenium-ajax/#code1][color=#996699][font=宋体]清单[/font][/color][color=#996699] 1[/color][/url] [/size][/font][size=10.5pt]所示。[/size][font=Verdana][size=10.5pt][/size][/font]
[b][font=宋体][size=9pt]清单[/size][/font][/b][b][size=9pt] 1. Selenium [/size][/b][b][font=宋体][size=9pt]测试用例的结构[/size][/font][/b]
[b][size=9pt] (HTML[/size][/b][b][font=宋体][size=9pt]格式[/size][/font][/b][b][size=9pt])[/size][/b]
[table][tr][td=1,1,189][size=9pt]Command1/Assertion1[/size]
[/td][td=1,1,189][size=9pt]Target1[/size]
[/td][td=1,1,189][size=9pt]Value1[/size][b][size=9pt][/size][/b]
[/td][/tr][tr][td=1,1,189][size=9pt]Command2 Assertion1[/size]
[/td][td=1,1,189][size=9pt]Target2[/size]
[/td][td=1,1,189][size=9pt]Value2[/size][b][size=9pt][/size][/b]
[/td][/tr][/table][font=Verdana][size=10.5pt]test runner [/size][/font][size=10.5pt]脚本使用与[/size][font=Verdana][size=10.5pt] xUnit [/size][/font][size=10.5pt]框架相同的测试套件([/size][font=Verdana][size=10.5pt]test suite[/size][/font][size=10.5pt])和测试用例概念。测试用例和命令按照它们在测试套件和测试用例中出现的顺序依次执行。在[/size][font=Verdana][size=10.5pt] [url=http://www-128.ibm.com/developerworks/cn/java/wa-selenium-ajax/#code1][color=black][font=宋体]清单[/font][/color][color=black] 1[/color][/url] [/size][/font][size=10.5pt]中:[/size][font=Verdana][size=10.5pt][/size][/font]
[list][font=宋体]第一列包含[i]命令[/i][/font]
[font=宋体]或[i]断言[/i]。[/font] [font=宋体]第二列包含命令或断言的[i]目标([/i][/font][i]target[/i][i][font=宋体])[/font][/i][font=宋体]。可以用多种受支持的组件定位符中的一种来指定目标。通常使用的是组件的[/font] ID [font=宋体]或名称,但[/font] XPath [font=宋体]和[/font] DOM [font=宋体]定位符也是受支持的。[/font] [*][font=宋体]第三列包含用于为命令或断言指定参数的[i]值[/i]。例如,当使用[/font]
[font=新宋体][size=12pt]type[/size][/font]
[font=宋体]命令时,这一列可能就是一个文本域所期望的值。[/font] [/list][size=10.5pt]Test runner [/size][size=10.5pt]脚本通常与所测试的应用程序(AUT)部署在同一个服务器上。这是因为 browser bot 使用 JavaScript 来模拟用户操作。这些脚本在一个受限制的沙箱环境中运行。如果需要绕过这些限制,可以使用一个代理。[/size]
[font=Arial][size=13.5pt]driven [/size][/font][font=宋体][size=13.5pt]脚本开发模式[/size][/font]
[size=10.5pt][/size][font=Verdana][size=10pt]driven Selenium [/size][/font][size=10pt]脚本是用多种受支持的编程语言[/size][font=Verdana][size=10pt]([i]Java, .NET, Perl, Python [/i][/size][/font][i][size=10pt]和[/size][/i][i][font=Verdana][size=10pt] Ruby[/size][/font][/i][font=Verdana][size=10pt])[/size][/font][size=10pt]中的一种编写的。这些脚本在浏览器之外的一个单独的进程中运行。驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的[/size][font=Verdana][size=10pt] browser bot [/size][/font][size=10pt]进行通信来驱动浏览器。驱动程序与[/size][font=Verdana][size=10pt] browser bot [/size][/font][size=10pt]之间的通信使用一种简单的特定于[/size][font=Verdana][size=10pt] Selenium [/size][/font][size=10pt]的连接语言[/size][font=Verdana][size=10pt] Selenese[/size][/font][size=10pt]。[/size][font=Verdana][size=10pt][/size][/font]
[font=Verdana][size=10pt]driven [/size][/font][size=10pt]脚本比[/size][font=Verdana][size=10pt] test runner [/size][/font][size=10pt]脚本更强大、更灵活,可以将它们与[/size][font=Verdana][size=10pt] xUnit [/size][/font][size=10pt]框架集成。[/size][font=Verdana][size=10pt]driven [/size][/font][size=10pt]脚本编写和部署更复杂些,它必须执行以下任务:[/size][font=Verdana][size=10pt][/size][/font]
[list][font=宋体][size=10pt]启动服务器。[/size][/font][font=Verdana][size=10pt] [/size][/font][font=宋体][size=10pt]部署所测试的应用程序([/size][/font][font=Verdana][size=10pt]AUT[/size][/font][font=宋体][size=10pt])。[/size][/font][font=Verdana][size=10pt] [/size][/font][font=宋体][size=10pt]部署测试脚本。[/size][/font][font=Verdana][size=10pt] [/size][/font][font=宋体][size=10pt]启动浏览器。[/size][/font][font=Verdana][size=10pt] [/size][/font][font=宋体][size=10pt]发送命令到[/size][/font][font=Verdana][size=10pt] browser bot[/size][/font][font=宋体][size=10pt]。[/size][/font][font=Verdana][size=10pt] [/size][/font][*][font=宋体][size=10pt]验证[/size][/font][font=Verdana][size=10pt] browser bot [/size][/font][font=宋体][size=10pt]执行的命令的结果。[/size][/font][font=Verdana][size=10pt] [/size][/font][/list][font=Verdana][size=10pt]driven [/size][/font][size=10pt]脚本更依赖于应用程序运行时环境。例如,[/size][font=Verdana][size=10pt]Java [/size][/font][size=10pt]驱动程序使用一个嵌入式[/size][font=Verdana][size=10pt] Jetty [/size][/font][size=10pt]或[/size][font=Verdana][size=10pt] Tomcat [/size][/font][size=10pt]实例来部署所测试的应用程序,如将[/size][font=Verdana][size=10pt] Selenium [/size][/font][size=10pt]集成到[/size][font=Verdana][size=10pt] Ruby on Rails [/size][/font][size=10pt]中。[/size][font=Verdana][size=10pt][/size][/font]
[b][font=宋体][size=16pt]开发测试用例[/size][/font][/b][size=16pt][/size][b][font=宋体][size=10pt]测试用例开发涉及四类文件[/size][/font][/b][b][font=Verdana][size=10pt][/size][/font][/b]
[size=9pt]主文件: TestRunner.html/TestRunner.hta(.hta文件是html application,windows平台特有);
Test suite和Test case文件:需要编写的由一个表格组成的html文件;
引擎库js文件:位于selenium根目录下的核心文件,其中html-xpath目录下的那个文件,也是必须的库文件;
user-extensions.js:用来扩展selenium的文件;用户自己编写的函数和扩展的命令都应该放在这个文件中;[/size]
[size=9pt]这四类文件中,除了引擎库以外,其他三类文件都是可以根据具体情况去修改的。[/size][font=Verdana][size=9pt]selenium [/size][/font][size=9pt]部署完毕后,可以打开浏览器来通过[/size][font=Verdana][size=9pt]url[/size][/font][size=9pt]来访问[/size][font=Verdana][size=9pt]TestRunner.html[/size][/font][size=9pt]文件。初始的时候,[/size][font=Verdana][size=9pt]TestRunner.html[/size][/font][size=9pt]文件中的[/size][font=Verdana][size=9pt] TestSuite[/size][/font][size=9pt]是链接到[/size][font=Verdana][size=9pt]tests[/size][/font][size=9pt]目录下的[/size][font=Verdana][size=9pt]TestSuite.html[/size][/font][size=9pt]文件,[/size][font=Verdana][size=9pt]TestCase[/size][/font][size=9pt]的[/size][font=Verdana][size=9pt]frame([/size][/font][size=9pt]上部中间[/size][font=Verdana][size=9pt])[/size][/font][size=9pt]中打开了[/size][font=Verdana][size=9pt] TestSuite.html[/size][/font][size=9pt]文件中的第一个[/size][font=Verdana][size=9pt]Test Case “TestOpen.html”[/size][/font][size=9pt]。[/size][font=Verdana][size=9pt][/size][/font]
[size=9pt]可以直接修改[/size][font=Verdana][size=9pt]TestSuite.html[/size][/font][size=9pt]文件,让其指向自己开发的[/size][font=Verdana][size=9pt]Test case html[/size][/font][size=9pt]文件。我们也可以建立另外一个目录,然后将自己的[/size][font=Verdana][size=9pt]TestSuite[/size][/font][size=9pt]文件和[/size][font=Verdana][size=9pt]Test case[/size][/font][size=9pt]文件都保存在这个目录中。如果使用后一种方式,那么在打开[/size][font=Verdana][size=9pt]TestRunner.html[/size][/font][size=9pt]的时候需要传递一个参数,例子如下:[/size][font=Verdana][size=9pt]
[url=http://localhost/selenium/TestRunner.html?test=/testDir/myTestSuite.html][color=#0000ff]http://localhost/selenium/TestRunner.html?test=/testDir/myTestSuite.html[/color][/url][/size][/font]
[size=9pt]下面就是开发测试用例——即编辑测试用例的表格。无论[/size][font=Verdana][size=9pt]Test Suite[/size][/font][size=9pt]还是[/size][font=Verdana][size=9pt]Test Case[/size][/font][size=9pt],表格的第一行都是描述性文字,[/size][font=Verdana][size=9pt]selenium[/size][/font][size=9pt]的引擎是不会处理这一行的内容的。实际内容都是从第二行开始的。[/size][font=Verdana][size=9pt]Test case[/size][/font][size=9pt]的表格列数一定不能少于[/size][font=Verdana][size=9pt]3[/size][/font][size=9pt]列,否则[/size][font=Verdana][size=9pt]Selenium[/size][/font][size=9pt]会出错。而基本的三列组成是:[/size][font=Verdana][size=9pt]
|command| Target| value|
[/size][/font][size=9pt][/size][font=Verdana][size=9pt] [/size][/font]
[font=Verdana][size=10pt]
[url=http://www-128.ibm.com/developerworks/cn/java/wa-selenium-ajax/#code2][color=#996699][font=宋体]清单[/font][/color][color=#996699] 2[/color][/url][/size][/font][size=10pt]就是四个测试用例的例子[/size][size=10pt],将执行以下操作:[/size][font=Verdana][size=10pt][/size][/font]
[list=1][font=宋体][size=10pt]通过进入[/size][/font][font=Verdana][size=10pt] /change_address_form.html [/size][/font][font=宋体][size=10pt]打开变更地址页面。[/size][/font][font=Verdana][size=10pt] [/size][/font][font=宋体][size=10pt]在[/size][/font][font=Verdana][size=10pt] ID [/size][/font][font=宋体][size=10pt]为[/size][/font]
[font=Verdana][size=10pt]address_field[/size][/font]
[font=宋体][size=10pt]的文本框中输入[/size][/font]
[font=Verdana][size=10pt]Betelgeuse state prison[/size][/font][font=宋体][size=10pt]。[/size][/font][font=Verdana][size=10pt] [/size][/font][font=宋体][size=10pt]单击名为[/size][/font]
[font=Verdana][size=10pt]Submit[/size][/font]
[font=宋体][size=10pt]的输入区。注意,这里使用[/size][/font][font=Verdana][size=10pt] XPath [/size][/font][font=宋体][size=10pt]找到[/size][/font][font=Verdana][size=10pt] [i]Submit[/i]
[/size][/font][font=宋体][size=10pt]按钮,这导致表单数据被发送到服务器。[/size][/font][font=Verdana][size=10pt] [/size][/font][*][font=宋体][size=10pt]验证页面是否包含文本[/size][/font]
[font=Verdana][size=10pt]Address change successful[/size][/font][font=宋体][size=10pt]。[/size][/font][font=Verdana][size=10pt] [/size][/font][/list][b][font=宋体][size=9pt]清单[/size][/font][/b][b][size=9pt] 2. [/size][/b][b][font=宋体][size=9pt]在测试用例中使用命令和断言的例子[/size][/font][/b]
[b][size=9pt][/size][/b]
[table][tr][td=1,1,139][size=9pt]command[/size]
[/td][td=1,1,195][size=9pt]Target[/size]
[/td][td=1,1,186][size=9pt]Value[/size][b][size=9pt][/size][/b]
[/td][/tr][tr][td=1,1,139][size=9pt]open[/size][b][size=9pt][/size][/b]
[/td][td=1,1,195][size=9pt]/change_address_form.html[/size][b][size=9pt][/size][/b]
[/td][td=1,1,186][b][size=9pt] [/size][/b]
[/td][/tr][tr][td=1,1,139][size=9pt]type[/size][b][size=9pt][/size][/b]
[/td][td=1,1,195][size=9pt]address_field[/size][b][size=9pt][/size][/b]
[/td][td=1,1,186][size=9pt]Betelgeuse state prison[/size][b][size=9pt][/size][/b]
[/td][/tr][tr][td=1,1,139][size=9pt]clickAndWait[/size][b][size=9pt][/size][/b]
[/td][td=1,1,195][size=9pt]//input[@name='Submit'][/size][b][size=9pt][/size][/b]
[/td][td=1,1,186][b][size=9pt] [/size][/b]
[/td][/tr][tr][td=1,1,139][size=9pt]verifyTextPresent[/size][b][size=9pt][/size][/b]
[/td][td=1,1,195][size=9pt]Address change successful<[/size][b][size=9pt][/size][/b]
[/td][td=1,1,186][b][size=9pt] [/size][/b]
[/td][/tr][/table][b][size=9pt] [/size][/b]
[b][font=宋体][size=16pt]测试套件[/size][/font][/b]
[size=16pt][/size][size=10.5pt]要达到对应用程序的完全测试覆盖,通常需要不止一个测试用例。这就是 Selenium 使用测试套件的原因。测试套件用于将具有类似功能的一些测试用例编成一组,以便让它们按顺序运行。[/size]
[size=10.5pt]测试套件和测试用例一样,都是用简单的 HTML 表编写的。Selenium 执行的缺省测试套件的名称是 TestSuite.html。测试套件使用一个只包含一列的表,表中的每一行指向一个包含某个测试用例的文件。[/size]
[font=宋体][size=10.5pt]对于一个有着多个功能模块、组件的web应用,编写的测试脚本html必然比较多。因此,应该建立一个合理的目录结构来组织这些脚本,一般按web服务、模块、功能来组织,形成层次性结构。 [/size][/font]
sihanjishu 2008-3-13 19:01
不错,又加入了一个selenium的成员。
neolin2003 2008-7-9 08:43
回复 1# 的帖子
selenium我一直在用,这个软件最大的两 个问题 是对https和ie的支持力度。国内网上你一搜selenium,总是那几个人,而且永远不变的是简单应用,要么就是xpath,要么就是selenium的语法。说实话都是入门指导,真正关键问题没抛出来。
其实抛出来也没办法,我给这家公司论坛上写了贴子,到现在也没回。所以我正在考虑自己写一个工具。目前正在构思中。
哪位有机会不妨研究一下selenium如何在mac os上通过safari 访问https的问题。看看国内多少人能给正解。
sihanjishu 2008-8-4 09:50
回复 3# 的帖子
问题挺多的。
他们的这种通过代理服务的机制,和普通的模拟用户操作(发送消息)上有些不同。
不过也会有很多独到的功能。不过是不太成熟。学习一下可以。
用来做项目,就有点不太划算了。有风险。遇到问题,难以解决。