selenium 详解教程

blogdaren 2012-06-09 1评论 2181人次

Selenium-IDE (Integrated Development Environment [集成开发环境]) ,它是一个开发Selenium测试用例的工具。它也是一个使用简单的Firefox的扩展,可以让你高效的开发测试用例。

下面的章节,将介绍Selenium IDE如何使用。

安装IDE

使用Firefox,下载IDE:[如果官方网站被墙了…要下载请点击这里]

Firefox会弹出一个安装扩展的提示,这时候选择“Allow”

33.png

跟着Firefox会弹出安装扩展的窗口,选择”Install Now”

44.png

安装完成后,会提示你重新启动Firefox,选择”Restart Firefox”

55.png

重新启动之后,在“工具”(Tools)菜单里面,就会多了“Selenium IDE” 这项功能了。

66.png

打开Selenium IDE

选择“工具”(Tools)菜单中的Selenium-IDE 打开 Selenium IDE。

77.png

IDE 功能

菜单栏

这里提一下Help菜单里面的“UI-Element Documentation”是蛮有用的帮助文档。其他部分略过。

工具栏

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

下面是工具栏上面按钮的一些介绍:

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

速度控制:控制测试用例的执行速度

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

执行全部:执行测试套件(test suite)中的所有测试用例

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

执行:执行单全选中的测试用例。

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后 selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

暂停/继续:暂停和继续执行测试用例

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

单步执行:让测试用例一个一个命令执行。

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

捆绑规则:这个高级的功能允许一连串的 Selenium命令组合成一个动作。具体的介绍参见帮助菜单中的”UI-Element Documentation”。

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

录制:录制用户在浏览器中的 操作。

测试用例面板
测试用例面板会显示你所编写的测试用例脚本。他有两个标签页,一个是“table”一个是“source”。
table标签页显示的是以表格形式显示出脚本中的命令:
66.png
标签页下方的Command,Target,Value会显示出当前选中的命令的对应信息。通过修改输入框里面的值,命令就会被修改。
当你在Command输入框中开始输入命令,一个下拉列表就会出现,下拉列表中会显示出以你输入的字母开始的命令。你可以从中选择你想输入的命令。
33.png
source标签页是以源代码的形式显示脚本,默认是HTML的形式,这里的源代码可以通过IDE中的“Options -> Format”菜单来转换显示的语言。支持7种语言:Java,Groovy,C#,Perl,PHP,Python和Ruby,支持11种形式。
Log/Reference/UI-Element/Rollup 面板
在IDE的下方,有一个面板,里面包含4个标签页,它们是Log, Reference, UI-Element, Rollup
(1) Log (日志)
当在运行测试用例的时候,提示信息和错误信息都会在Log中显示。这些日志信息往往对于测试用例的调试很有用。
Log标签页的右上侧有一个“Clear”的按钮,它可以清理Log中的所有日志。“Clear”按钮左侧有一个下拉的选项,它可以让你选择输出的日志信息的级别。级别有4个:Debug, Info, Warn和Error。 默认选中是“Info”。
44.png
(2) Reference (参考)
55.png
参考标签页,当你在输入或者是修改命令的时候会默认选中。参考标签页里面会展示出当前命令的文档。
要注意的是,命令的参数个数、顺序、类型都必须与Reference中的一致,否则命令可能会不能正确执行。
Reference标签中的信息作为快速的参考很有用,详细的Reference可以参考:
[ps: 上面这个链接又是被墙了,现在只能翻墙看了]
(3) UI-Element 和 Rollup
这两个高级功能的详细说明可以在帮助菜单中的“UI-Element Documentation”找到。

创建测试用例

有3中首选的创建测试用例的方式

1. 录制

很 多第一次使用的用户,都是通过录制和网站的交互,来创建测试用例的。当Selenium-IDE第一次开启的时候,录制的按钮是默认开启的。如果你不想开 启Selenium-IDE的时候,录制就开始,你可以通过选择Options菜单,取消“Start recording immediately on open” 。

在录制的期间,Selenium-IDE将会自动往你的测试用例插入命令。一般是包含以下的这些命令:

(1). 点击一个链接——click 或者 clickAndWait命令

(2). 输入一个值——type命令

(3). 选择下拉框中的选项——select命令

(4). 选择checkbox或者radio按钮——click 命令

以下是一些要注意的问题:

(1).  type命令可能需要点击页面的某一个区域后它才能被录制

(2). 点击一个链接后,通常会产生一个click命令。你通常需要将这个命令改成clickAndWait来保证你的测试用例会暂停,直到新的页面加载完成。否则,你的测试用例将会在新页面没有加载完成就继续执行,这样子就可能导致测试用例出现很多失败。

2.通过右键菜单添加校验和断言命令

你的测试用例需要检查页面的一些属性。这就需要assert 和 verify 命令了。这里不会讲述assert 和verify命令的详细用法,这些用法会在后面的章节讲到。这里讲的是如何简单的将他们添加到你的测试用例中。

开启Selenium-IDE录制功能,然后鼠标右键点击你正在测试的页面的任何一个位置,你将会看到一个菜单项显示verify 或者是 assert命令:

如果你是第一次使用Selenium,那么将会只有一个Selenium命令出现在右键菜单中。使用多了之后,你会发现很多其他命令会添加到右键菜单中。Selenium-IDE会预测你你需要的命令,还有参数。

3. 修改现有命令和注释

(1) 插入命令(insert Command)

表格视图(Table View)

在表格视图中,左键点击你需要插入命令的那一行。然后点击右键,选择插入命令(Insert Command)。IDE将会在你选择的那一行的上面添加一个空白行。现在就可以在下方的命令面板中,修改你的命令了。

源代码视图(Source View)

首先进入源代码视图,然后在你需要插入命令的地方点击左键,并敲入你的命令,注意这里的输入的是HTML格式的需要有3列的表格代码。3列分别是:命令、第一个参数、第二个参数。

还有注意首先保存,然后才能切换到表格视图(Table View)。

(2) 插入注释(insert Comment)

注释会让你的测试用例可以更加容易让别人了解,这些注释在测试用例执行的过程中是会被忽略的。

表格视图(Table View)

选择你需要插入命令的地方,点击右键,然后选择“Insert Comment”,然后在下方的命令面板中,Command的输入框中填入注释内容,你的注释将会是紫色的字体。

源代码视图(Source View)

选择源代码视图(Source 标签)然后再你需要插入注释的地方添加HTML格式的注释。例如 :

(3) 修改命令或者注释

表格视图(Table View)

选择你需要修改的命令或者注释,然后再下方的命令面板中修改Command、Target和Value的值

[ps] 注释只需要修改Command的内容,Target 和Value都是没用的。

源代码视图(Source View)

选择源代码视图之后,直接修改HTML代码。

(4) 打开和保存测试用例

就像很多程序那样,“保存(Save)”和“打开(Open)”的操作都是在“文件(File)”菜单下面的。不过Selenium区分测试用例 (Test case) 和 测试套件 (Test Suite)。你可以保存测试用例或者保存整个测试套件。

运行测试用例

在IDE中,有多种的方式可以让你运行测试用例。你可以一次过执行它,停止或者继续它,或者是单步执行等。

执行一个测试用例

打开一个测试用例点击运行按钮。

执行一个测试套件

打开需要运行的测试套件,然后选择“执行所有(Run All)”按钮

停止和继续

“暂停(Pause)”按钮可以用来停止正在运行的测试用例。当点击暂停之后,这个按钮会变成“继续(Resume)”按钮,通过继续按钮,则可以继续执行测试用例。

在测试用例中间开始

你 可以在测试用例中设置一个起始点(StartPoint),让它一开始就从这条命令开始执行。这对于调试你的测试用例非常有用。设置起始点:选择一个命 令,右键点击,选择”Set StartPoint(设置起始点)” 或者 “Clear Start Point(清除起始点)”。

执行单条命令

双击任何一条命令,IDE则会执行这条命令。

使用基准URL (Base URL) 在不同域名下运行测试用例

基准URL(Base URL)输入框是在Selenium-IDE窗口的上部,它可以让你的测试用例在不同的域名下执行。例如一个网站的网址是: http://i-giraffe.com, 它有一个自己测试用的域名http://beta.i-giraffe.com。所有这个网站的测试用例,open命令里面的相对URL(relative URL),Selenium-IDE根据基准URL生成绝对的URL。

例如:基准URL是 http:news.portal.com

那么下面的open命令则是打开http://newsportal.com/about.html

同样的测试,如果修改了基准URL为http://beta.news.portal.com

那么打开的页面将是http://beta.news.portal.com/about.html

调试(Debugging)

通过调试你可以发现和修复测试用例中的错误。这是测试用例开发的一个过程。

断点

Selenium-IDE支持断点的功能,断点可以让测试用例在你需要的位置暂停。

设置断点可以通过选中一个命令,右键点击,在右键菜单中选择“Toggle Breakpoint”。然后点击执行按钮的话,你的测试用例将会执行到这个断点处暂停。

起始点

在 某些情况下,在测试用例的中间开始执行是蛮有用的。和断点类似,你可以设置一个起始点(Startpoint)。例如,你首先需要登录,然后执行一系列的 测试,然而你只需要登录一次。这时候,你可以先登录一次,然后设置一个起始点在登录动作之后。这样子你就不需要每次都做一次登录的流程了,而且也不需要每 一次重新运行你的测试用例前进行登出的操作了。

设置起始点可以通过选择一个命令,右键点击,在右键菜单中选择“Set/Clear Start Point”。然后点击执行按钮的话,你的测试用例将会从起始点开始执行。

单步执行测试用例

需要单步执行(一次执行一个命令)一个测试用例,可以通过下面的步骤:

1. 点击执行按钮

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

2. 立即点击暂停按钮,暂停测试用例的执行。

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

3. 重复的点击“Step(单步执行)”按钮

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

Find (查找)按钮

Find按钮是要来查看当前页面元素是否存在。当编写一个定位器时(locator,要来定位页面元素,如ID或者XPath),Find按钮可以要来校验定位器是否有效。

在表格视图(Table View)中,选择任何一个含有一个定位器做参数的命令。点击Find按钮,再看看测试的页面:应该会有一个浅绿色的长方形框出那个定位器的的页面元素。

利用页面源代码进行调试

通常你在调试一个测试用例的时候,你都需要查看页面的源代码去定位一些问题。通过右键点击页面,选择View Page Source(查看页面源代码),就可以查看到源代码了。

如果需要查看一部分的源代码,可以首先选择需要查看代码的页面元素,然后右键点击,并选择View Selection Source(查看选中源代码)。

Ps:用firebug会方便很多。

定位器帮助

当使用Selenium-IDE录制的时候,遇到定位器的参数的时候,IDE会保存一些额外的信息,这些额外的信息,可以让你选择不同类型的定位器。

定位器帮助信息会在命令面板中的Target字段,以下拉框的形式出现。如下图:

编写一个测试套件

测试套件是测试用例的集合,它会展示在最左侧的面板中。

一个测试套件是保存在一个HTML文件中,里面有一个一列的表格。每一个单元格包含一个测试用例的链接。下面就是一个包含4个测试用例的测试套件例子。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sample Selenium Test Suite</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td>Test Cases for De Anza A-Z Directory Links</td></tr>
</thead>
<tbody>
<tr><td><a href="http://blog.163.com/lgh_2002/blog/./a.html">A Links</a></td></tr>
<tr><td><a href="http://blog.163.com/lgh_2002/blog/./b.html">B Links</a></td></tr>
<tr><td><a href="http://blog.163.com/lgh_2002/blog/./c.html">C Links</a></td></tr>
<tr><td><a href="http://blog.163.com/lgh_2002/blog/./d.html">D Links</a></td></tr>
</tbody>
</table>
</body>
</html>

用户扩展

用户扩展是一些可以完成个性化或者增强功能的JavaScript文件。尽管扩展没有什么限制,但是通常是一些自定义的命令。

下面有一些有用的扩展

最有名的goto_sel_ide.js了,它可以让Selenium-IDE支持流程控制(循环和分支的的流程)。可以通过查看这个插件的主页的说明使用

[ps:这个插件的主页被墙了…]

如何安装扩展?

选择Selenium-IDE菜单:Options -> Options -> General

Selenium Core extensions这里选择插件的js文件就可以了,然后你必须重新打开Selenium-IDE,来让这个扩展生效。如果你对扩展进行了任何的修改,都需要重新打开Selenium-IDE。

如何编写属于自己的扩展?

你可以在Reference文档的靠下面的部分找到。

格式

Options菜单下面的Format菜单,可以让你选择一种测试用例保存和显示的语言。默认是HTML。

如果你使用Selenium-RC来运行你的测试用例,那么这个功能可以帮助转换你的测试用例到编程语言。

在不同的浏览器中执行测试

Selenium-IDE只可以在Firefox中运行。通过Selenium-RC,可以让这些测试用例在不同浏览器中运行。详细请见Selenium-RC的说明。

Troubleshooting

下面是一些Selenium-IDE经常遇到的问题。

1. Table view is not available with this format.

表格视图在这种格式下不可使用。

这个信息会在Selenium-IDE开启时打开表格视图时偶尔出现。解决的方法是关闭Selenium-IDE,并重新打开。

2. error loading test case: no command found

你使用了File -> Open 打开了一个测试套件(Test suite)文件。使用 File -> Open Test Suite打开测试套件,File -> Open 只可以打开测试用例。

3.这 个错误信息是在Log中显示的,页面中找不到这个定位器(xpath=id(‘mainContent’)/h2)的元素。这有可能是在页面没有完全加载 完就执行了这条命令。尝试在这条命令前面添加‘pause 5000’ 这条暂停的命令,如果这样能够解决这个问题,那么你可以尝试使用waitFor* 和 *AndWait 命令。

4.当你尝试使用store保存变量,但是怎么都保存不了。那么有可能是store命令的参数位置有问题。例如上图中,store命令的两个参数是搞反了。

store(,变量名)

5.error loading test case: [Exception... “Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIFileInputStream.init]” nresult: “0x80520012 (NS_ERROR_FILE_NOT_FOUND)” location: “JS frame :: chrome://selenium-ide/content/file-utils.js :: anonymous :: line 48” data: no]

测试套件中的测试用例找不到了。检查一下测试套件中测试用例的文件路径是否正确。

6.selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

如上图提示click命令找不到。Selenium-IDE是对空格敏感的,也就是不忽略空格。一条命令前或者后如果多了空格,那么IDE都会提示找不到这条命令的。

7.

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

找不到while命令,Selenium本身没有while这个命令,那么可能是这个测试用例中使用了扩展的命令。请确保扩展已经在选项菜单中添加了,并重新启动了Selenium-IDE。

8.

selenium 详解教程 - PHP网站开发 - 每日最新博客在置顶博客之后

这里的错误是说两句话不一致。从log里面提示的信息看到。两句话貌似是一致的。其实verifyTitle命令中的那句话 "Selenium" 和 "web" 这两个单词中间是有两个空格的…IDE在现实log的时候会把多个空格合并成一个空格,所以在log里面显示的完全一致的。但实际上是不一致 的。

#selenium#

版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:selenium 详解教程

用户评论:

2018-03-22 21:06
人的愿望

发表评论:

您的昵称:
电子邮件:
个人主页: