Selenium RC 官方文档 中文版.docx

上传人:b****5 文档编号:7879740 上传时间:2023-01-26 格式:DOCX 页数:31 大小:468.70KB
下载 相关 举报
Selenium RC 官方文档 中文版.docx_第1页
第1页 / 共31页
Selenium RC 官方文档 中文版.docx_第2页
第2页 / 共31页
Selenium RC 官方文档 中文版.docx_第3页
第3页 / 共31页
Selenium RC 官方文档 中文版.docx_第4页
第4页 / 共31页
Selenium RC 官方文档 中文版.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

Selenium RC 官方文档 中文版.docx

《Selenium RC 官方文档 中文版.docx》由会员分享,可在线阅读,更多相关《Selenium RC 官方文档 中文版.docx(31页珍藏版)》请在冰豆网上搜索。

Selenium RC 官方文档 中文版.docx

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服务器接收Se​​lenium命令,从你的测试程序,解释他们,回报你的程序运行这些测试的结果。

RC服务器捆绑Selenium核心,并自动注入到浏览器。

发生这种情况时,你的测试程序打开浏览器(使用一个客户端库的API函数)。

Selenium的核心是一个JavaScript程序,实际上是一组JavaScript函数的解释和执行Selenese命令使用浏览器内置的JavaScript解释。

服务器接收Se​​lenese命令,从你的测试程序,使用简单的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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1