Selenium RC 官方文档 中文版.docx
- 文档编号:7879740
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:31
- 大小:468.70KB
Selenium RC 官方文档 中文版.docx
《Selenium RC 官方文档 中文版.docx》由会员分享,可在线阅读,更多相关《Selenium RC 官方文档 中文版.docx(31页珍藏版)》请在冰豆网上搜索。
SeleniumRC官方文档中文版
Selenium1(Selenium遥控)
简介
正如你可以看到Selenium项目的简史,SeleniumRC的Selenium很长一段时间的主要项目,前WebDriver/Selenium合并带来的Selenium2,最新的和更强大的工具。
Selenium1仍积极支持(大多维护模式),并提供一些功能,可能无法在Selenium2一段时间,包括支持多国语言的Java,JavaScript,红宝石,PHP,Python中的Perl和C#中和支持几乎所有的浏览器有。
SeleniumRC的工程
首先,我们将介绍SeleniumRC的组件如何操作和作用,在各次运行测试脚本。
RC元件
SeleniumRC的组成部分是:
∙Selenium服务器启动并杀死的浏览器,解释和执行Selenese命令通过测试程序,并作为HTTP代理行为,通过浏览器和奥克兰之间的HTTP消息的拦截和验证。
∙客户端库提供了每种编程语言和SeleniumRC服务器之间的接口。
下面是一个简化的架构图....
该图显示了客户端库的沟通与传递Selenium命令执行每个服务器。
然后服务器通过Selenium命令到浏览器使用含Selenium核心JavaScript命令。
浏览器,使用它的JavaScript解释器,执行Selenium命令。
这将运行Selenese的行动或验证您在您的测试脚本中指定。
Selenium服务器
Selenium服务器接收Selenium命令,从你的测试程序,解释他们,回报你的程序运行这些测试的结果。
RC服务器捆绑Selenium核心,并自动注入到浏览器。
发生这种情况时,你的测试程序打开浏览器(使用一个客户端库的API函数)。
Selenium的核心是一个JavaScript程序,实际上是一组JavaScript函数的解释和执行Selenese命令使用浏览器内置的JavaScript解释。
服务器接收Selenese命令,从你的测试程序,使用简单的HTTPGET/POST请求。
这意味着你可以使用任何编程语言,可以发送HTTP请求来自动化Selenium测试。
客户端库
客户端库提供的编程支持,允许你运行Selenium命令,从自己的设计方案。
是为每个受支持的语言有不同的客户端库。
Selenium客户库提供了一种编程接口(API),即一组功能,从你自己的程序运行Selenium命令。
在每个接口,是一种编程功能,支持每个Selenese命令。
客户端库需要Selenese命令,并通过它来处理具体的行动或测试下测试对应用程序(AUT)Selenium服务器。
客户端库也收到该命令的结果,并把它传递回你的程序。
您的程序可以接受的结果,并存储到一个程序变量,并报告成功或失败的,或可能采取纠正措施,如果它是一个意外的错误。
因此,要创建一个测试程序,你只要写一个程序,运行一套Selenium命令使用一个客户端库API。
可选,如果你已经有一条SeleneseSeleniumIDE中创建的测试脚本,你可以 生成SeleniumRC的代码。
SeleniumIDE可以转换(使用其导出“菜单项)到一个客户端驱动程序的API函数调用Selenium命令。
看到从Selenium-IDE导出RC代码的具体SeleniumIDE章。
安装
安装是相当为Selenium名不副实。
Selenium在您所选择的编程语言提供的库。
你可以下载他们的下载页面
一旦你选择了使用的语言,你只需:
∙安装SeleniumRC服务器。
∙建立使用特定语言的客户端驱动程序的编程项目。
安装Selenium服务器
SeleniumRC服务器仅仅是一个Java的jar文件(Selenium服务器,独立
JAR),它不需要任何特殊的安装。
只要下载并解压所需的目录服务器是足够的。
运行Selenium服务器
任何测试开始之前,你必须启动服务器。
去Selenium区局的网站服务器位于目录,并运行下面的命令行控制台。
Java的罐子Selenium服务器,独立的
这可以简化创建一个批处理或包含上述命令外壳可执行文件(在Windows和Linux上。
SHBAT)。
然后建立一个快捷方式在桌面上的可执行文件,只需双击图标启动服务器。
对于服务器来运行,你需要安装Java和PATH环境变量的正确配置,从控制台运行。
您可以检查是否有Java的正确安装在控制台上运行以下。
Java的版本
如果你得到一个版本号(需要1.5或更高版本),你准备好开始使用SeleniumRC的。
使用Java客户端驱动程序
∙Selenium的的Java客户从SeleniumHQ的驱动程序zip 下载页面。
∙jar文件提取SeleniumJava-
∙打开您想要的JavaIDE(Eclipse中,NetBeans中的IntelliJ,NetWeaver的,等等)
∙创建一个Java项目。
∙Selenium的Java
jar文件添加到您的项目作为参考。
∙添加到您的项目的classpath文件SeleniumJava-
罐子。
∙从Selenium-IDE,导出脚本到一个Java文件,它包含在你的Java项目,或写在JavaSelenium测试使用的SeleniumJava的客户端API。
在本章后面介绍的API。
您可以使用JUnit或TestNG的运行测试,你可以写你自己的简单的main()程序。
在本节后面解释这些概念。
∙从控制台运行Selenium服务器。
∙从JavaIDE或命令行执行测试。
Java测试项目配置的详细信息,请参阅附录部分 使用Eclipse配置SeleniumRC的配置Selenium钢筋混凝土的IntelliJ。
使用Python客户端驱动程序
∙安装Selenium通过画中画,说明挂钩在SeleniumHQ 下载页面
∙无论是在Python写Selenium测试或从Selenium-IDE导出脚本到一个python文件。
∙从控制台运行Selenium服务器
∙从控制台或你的PythonIDE执行测试
关于Python客户端驱动程序配置的详细信息,请参阅附录的 Python客户端驱动程序配置。
使用。
NET客户端驱动程序
∙从SeleniumHQ 下载页面下载SeleniumRC的
∙解压缩文件夹
∙下载并安装NUnit的(注:
可以使用NUnit的,如果你不熟悉但与NUnit,你也可以写一个简单的main()函数来运行测试,但是NUnit的测试引擎测试引擎是非常有用的。
。
)
∙打开你想要的。
NETIDE(VisualStudio中,SharpDevelop的,MonoDevelop中)
∙创建一个类库(DLL)
∙下列DLL添加引用:
nmock.dll,nunit.core.dll,NUnit的。
framework.dll,ThoughtWorks.Selenium.Core.dll,ThoughtWorks.Selenium.IntegrationTests.dll和ThoughtWorks.Selenium.UnitTests.dll
∙写在你的Selenium测试。
NET语言(C#中,VB.NET),或从Selenium-IDE导出脚本C#文件,并复制到您刚刚创建的类文件代码。
∙写你自己的简单main()程序,或您可以在您的项目包括NUnit的运行测试。
在本章稍后解释这些概念。
∙从控制台运行Selenium服务器
∙无论是从IDE运行测试,从NUnit的GUI或命令行
对于使用VisualStudio。
NET客户端驱动程序配置的具体细节,请参阅附录 。
NET客户端驱动程序的配置。
使用Ruby客户端驱动程序
∙如果你不已经有RubyGems的安装RubyForge的
∙运行安装Selenium客户端宝石
∙在你的测试脚本的顶部,添加要求 “Selenium/客户端”
∙写测试脚本使用任何Ruby测试工具(如测试:
:
单位,迷你:
:
测试或RSpec的)。
∙从控制台运行SeleniumRC服务器。
∙以同样的方式,你可以运行任何其他的Ruby脚本,执行测试。
对于Ruby客户端驱动程序的配置的详细信息,请参阅的Selenium客户文件
从Selenese的一个程序
使用SeleniumRC的首要任务是转换成一种编程语言,你的Selenese的。
在本节中,我们提供了几种不同的语言,具体的例子。
样品测试脚本
让我们先从一个例子Selenese的测试脚本。
试想记录以下测试使用Selenium-IDE。
打开
/
类型
q
SeleniumRC
clickAndWait
btnG
assertTextPresent
SeleniumRC结果*
注:
此示例将使用谷歌搜索页面
Selenese的代码作为编程
这里是测试脚本出口(通过SeleniumIDE)每个受支持的编程语言。
如果你有至少一个面向对象编程语言的基本知识,你就会明白如何Selenium运行Selenese命令,通过阅读这些例子之一。
看到在一个特定的语言,例如,选择其中一个按钮。
/**添加JUnit框架到你的classpath,如果已经不存在
这个例子*工作
*/
包COM。
例如测试;
进口com.thoughtworks.selenium*。
进口的java.util.regex.Pattern;
*Selenium区局“));
}}
在下一节,我们将解释如何建立一个测试程序,使用生成的代码。
编程测试
现在,我们将说明如何编写您自己的测试,在每个受支持的编程语言使用的例子。
基本上有两个任务:
∙成从Selenium-IDE编程语言生成脚本,可以选择修改结果。
∙编写一个非常简单的主程序执行生成的代码。
或者,您可以通过像JUnit或TestNGJava或NUnit的测试引擎平台。
NET,如果你正在使用这些语言之一。
在这里,我们显示的语言具体的例子。
语言特定的API往往从一个到另一个不同,所以你会发现为每一个单独的解释。
∙Java的
∙C#中
∙蟒蛇
∙红宝石
∙使用Perl,PHP
Java的
对于Java,人们在使用JUnit或TestNG测试引擎。
一些开发环境如Eclipse插件通过这些直接的支持。
这使得它更容易。
教学JUnit或TestNG是超出了本文档的范围,但是材料可在网上找到有提供出版物。
如果您已经是“Java的店”的机会是你的开发已经有一些经验,这些测试框架之一。
你可能会想重命名“NewTest”改为测试类,你自己选择的东西。
此外,您将需要在声明中改变了浏览器打开参数:
Selenium=新DefaultSelenium(“localhost”的,4444“*iehta”,“);
SeleniumIDE生成的代码会是这个样子。
这个例子注释手动添加额外的清晰度。
封装COM。
例子。
测试;
//指定我们的测试包
进口com.thoughtworks.selenium*;
//这是司机的进口。
你会使用这个实例化
//浏览器,使它成为你所需要的。
进口的java.util.regex.Pattern;
//SeleniumIDE添加的模块,因为它有时用于模式
。
您可以删除模块,如果它在你不使用
//脚本。
公共类NewTest,延伸SeleneseTestCase{
//我们创建我们的Selenium测试用例
公共无效的setUp()抛出异常{
设置(“,“火狐”);
//实例化和启动浏览器
}
“公共的无效testNew()抛出异常{
Selenium。
开放(“/”);
Selenium型(“Q”,“Selenium
*Selenium区局“));
//这是真正的考验步骤
}
}
C#的
与Microsoft.NET。
NET客户端驱动程序的工作。
它可用于任何类似NUnit的测试的。
NET框架或VisualStudio2005TeamSystem中。
SeleniumIDE假定您将使用您的测试框架NUnit的。
在下面生成的代码,你可以看到这一点。
它包括确定为每个测试类的成员函数的作用与相应的NUnit的属性一起使用 NUnit的声明。
你可能会重命名“NewTest”改为测试类,你自己选择的东西。
此外,您将需要在声明中改变了浏览器打开参数:
Selenium=新DefaultSelenium(“localhost”的,4444“*iehta”,“);
生成的代码将类似于此。
你可以用NUnit来管理你的测试执行。
或者,你可以写一个简单的main()程序实例测试对象和运行的三种方法中,SetupTest()中,TheNewTest(),反过来TeardownTest()。
Python的
pyunit是使用Python的测试框架。
要了解Pyunit参考其官方文档 //docs.python.org/library/unittest.html >。 基本测试结构是: 红宝石 SeleniumIDE生成合理的Ruby,但需要老Selenium宝石的。 这是一个问题,因为官方的Ruby驱动Selenium是Selenium的客户端的宝石,老Selenium宝石的。 事实上,Selenium宝石甚至不再正在积极发展。 因此,它是明智的更新如下IDE所产生的任何Ruby脚本: 1。 1号线,改变要求 “Selenium”,要求 “Selenium/客户端” 2。 第11行,改变Selenium: : SeleniumDriver.new到 Selenium: : 客户: : Driver.new的 你也可能要改变类的名称,东西多信息“无题”,并改变测试方法的名称“test_untitled比其他的东西。 ” 下面是创建一个简单的例子,通过修改SeleniumIDE生成的Ruby代码,如上所述。 的Perl,PHP的 文档团队成员没有用过Perl或PHP的SeleniumRC。 如果您正在使用这两种语言之一的SeleniumRC,请与文档团队联系(参见上作出贡献的章节)。 我们很想从你和你的经验,包括一些例子,以支持Perl和PHP用户。 学习API 在SeleniumRCAPI使用命名约定,假设你理解Selenese的,大部分的接口将是不言自明。 然而,在这里,我们解释了最关键的,可能不太明显的方面。 启动浏览器 设置(“,“火狐”); 这些例子都打开浏览器,并表示该浏览器的程序变量分配一个“浏览器实例”。 然后用这个程序变量调用从浏览器的方法。 这些方法执行Selenium命令,即如开放或类型或校验 命令。 创建浏览器实例时需要的参数是: 主持人 指定的服务器所在的计算机的IP地址。 通常,这是作为客户端运行的同一台机器,所以在这种情况下,本地主机通过。 在一些客户,这是一个可选参数。 端口 指定服务器正在监听等待客户端建立连接的TCP/IP套接字。 这也是在某些客户端驱动程序的可选。 浏览器 你想运行测试的浏览器中。 这是一个必需的参数。 网址 下测试应用程序的基础URL。 这需要所有的客户端库和启动浏览器的代理AUT的沟通是不可或缺的信息。 请注意,一些客户端库需要浏览器开始通过调用其明确的start()方法。 运行命令 一旦你的浏览器初始化,并分配给一个变量(通常命名为“Selenium”),您可以通过各自的方法调用从浏览器中的变量,它运行Selenese命令。 例如,调用类型的Selenium对象的方法: selenium.type(“字段ID”,“输入字符串”) 在后台浏览器实际上将执行类型的操作,基本上是相同的用户输入到浏览器,使用的定位和你在方法调用中指定的字符串。 报告结果 SeleniumRC的不报告结果有其自身的机制。 相反,它允许你建立你的报告,定制您需要使用您选择的编程语言的特点。 这是伟大的,但如果你只是想东西快,这已经为你做了吗? 往往是现有库或测试框架,可以更快地满足您的需求比开发自己的测试报告码。 测试框架的报告工具 测试框架为许多编程语言提供。 这些,连同其执行你的测试提供一个灵活的测试引擎的主要功能,包括报告结果的库代码。 例如,Java有两种常用的测试框架JUnit和TestNG。 。 NET中也有其自己的,NUnit的。 我们不会在这里,自己教的框架,超越本用户指南的范围。 我们将简单地介绍有关的功能,随着一些技术可以应用到Selenium的框架。 然而,随着互联网上的信息有可以用这些测试框架的好书。 测试报告图书馆 也有专门用于报告测试结果,在您选择的编程语言创建的第三方库。 这些经常支持各种如HTML或PDF格式。 最好的办法是什么? 新的测试框架的大多数人将开始与框架的内置报告功能。 从那里将检查任何可用的库,因为这是较少的时间比开发自己的消费。 当你开始使用Selenium毫无疑问,你会开始把自己的“打印报表”报告进展情况。 这可能会逐渐导致你发展自己的报告,可能在并行使用库或测试框架。 无论如何,经过初步的,但短期的,学习曲线,你会自然发展自己的情况最好。 试验报告的例子 为了说明这一点,我们将引导您Selenium支持的一些其他语言的一些特定的工具。 这里列出的是常用的,并已被广泛用于本指南的作者(因此建议)。 在Java中的测试报告 ∙如果Selenium测试用例的开发使用JUnit然后JUnit的报告可以被用来生成测试报告。 请参阅的JUnit的具体报告。 ∙如果Selenium测试用例开发使用TestNG,然后没有外部的任务需要生成测试报告。 TestNG的框架生成一个HTML报告,测试的详细列表。 见更多TestNG的报告。 ∙ReportNG是一个HTML报告TestNG的框架插件。 它旨在作为替代默认TestNG的HTML报告。 ReportNG,测试结果提供了一个简单的彩色编码。 更多看到ReportNG。 ∙另外,尝试使用TestNG-XSLT的一个很好的总结报告。 看起来像这样一个TestNGXSLT报告。 看到TestNG的XSLT更多。 记录Selenese命令 ∙记录Selenium可以用来生成一个伴随着每一个成功或失败的Selenese命令在您的测试报告。 测井Selenium扩展Java客户端驱动程序添加Selenese的记录能力。 请记录Selenium。 Python的测试报告 ∙当使用Python客户端驱动程序,然后的HTMLTestRunner可以用来生成一个测试报告。 看到HTMLTestRunner。 Ruby测试报告 ∙如果RSpec框架用于在Ruby编写Selenium测试用例,那么它的HTML报告可以用来生成一个测试报告。 参阅更多RSpec的报告。 注意 如果你感兴趣的语言独立的日志是怎么回事,来看看Selenium服务器记录 添加一些香料测试 现在我们将使用SeleniumRC的原因,将编程逻辑添加到您的测试。 这是任何程序相同。 使用条件语句和循环控制程序流。 此外,您可以使用I/O汇报工作进度信息 在本节中,我们将展示如何编程语言结构,可以与Selenium结合,以解决共同的问题测试的一些例子。 你会发现你的过渡,从简单的测试页面元素的存在动态功能测试,涉及多个Web页面和不同的数据验证预期的结果,你会需要编程逻辑。 基本上,SeleniumIDE不支持迭代和标准条件语句。 Selenese参数中嵌入JavaScript的,你可以通过一些条件,但是迭代是不可能的,大多数情况下,将是一种编程语言中要容易得多。 此外,您可能需要进行错误恢复的异常处理。 对于这些原因和其他人,我们编写了本节说明使用的通用编程技术,给你更大的核查权力“在你的自动化测试。 C#和Java都写在本节中的例子,虽然代码很简单,可以很容易地适应其他语言的支持。 如果你有一个面向对象编程语言的一些基本知识,你不应该有困难的理解本节。 迭代 迭代是最常见的人在他们的测试需要做的事情之一。 例如,您可能要来多次执行搜索。 或者,也许你需要核实您的测试结果来处理“”从数据库返回的结果集。 使用相同的Google搜索例如我们前面使用,让我们的检查Selenium搜索结果“。 这个测试可以使用Selenese的: 打开 / 类型 q SeleniumRC clickAndWait btnG assertTextPresent SeleniumRC结果* 类型 q SeleniumIDE clickAndWait btnG assertTextPresent SeleniumIDE的结果* 类型 q Selenium电网 clickAndWait btnG assertTextPresent Selenium网格结果* 代码已被重复执行相同的步骤3次。 但多份相同的代码是不是好方案的做法,因为它更多的工作来维持。 通过使用一种编程语言,我们可以遍历一个更加灵活和维护的解决方案的搜索结果。 在C#中: //String值的集合。 的String[]ARR={“IDE”,“RC”,“网格”}; //为每个字符串数组'编曲'执行循环。 的foreach(字符串在ARR){ SEL。 开放(“/”); SEL。 类型(“Q”,“Selenium”+); SEL。 点击(“btnG“); SEL。 waitForPageToLoad(“30000”); assertTrue(“预期的文字: ”++“丢失”页上 ,选择isTextPresent(“Selenium”的结果*+S)); } 条件语句 在测试中使用的条件下,我们先从一个例子来说明。 运行Selenium测试时遇到的一个共同问题时,会出现预期的元素不是页。 例如,当运行以下行: Selenium。 类型(“Q”,“Selenium”+S); 如果不是页面上的元素“Q”,则抛出一个异常: COM。 ThoughtWorks的Selenium。 SeleniumException: 错误: 元 这可能会导致中止测试。 对于一些测试,就是你想要的。 但往往是不可取的,因为你的测试脚本有许多其他后续测试执行。 更好的办法是先验证元素是否是真的存在,然后采取的替代品时,它不是。 让我们来看看在这个使用Java。 //如果元素是可用页,然后执行操作类型。 (Selenium。 isElement
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Selenium RC 官方文档 中文版 官方 文档