Selenium用户指南 - 第三章 Selenium IDE[6]

目录     上一页     下一页

调试

调试意味着在测试案例中查找和修复错误。这是测试案例开发的常规组成部分。

We won’t teach debugging here as most new users to Selenium will already have some basic experience with debugging. If this is new to you, we recommend you ask one of the developers in your organization.

我们在这里不会讲授调试,因为大多数Selenium的新用户应该已经有调试方面的基本经验。如果对你来说是全新的,我们推荐向你组织的其他开发人员求教。

断点和起点

Selenium IDE支持断点的设置,和从测试案例内部的任何点启动和停止运行中的测试案例的能力。也就是说,可以运行到测试案例中间的指定命令,在该点检查测试案例的行为。要做到这点,在需要检查的命令的前一个命令上设置一个断点。

要设置一个断点,选择一个命令,右点,然后从上下文菜单选择切换断点(Toggle Breakpoint)。然后点击运行(Run)按钮运行测试案例,从开始到断点。

有时候运行一个测试案例,从中间的某个地方到测试案例的结束,或开始点后面的某个断点是有用的。例如,假定你的测试案例首先登录到Web站点,然后执行一系列的测试,而你正在尝试调试这些测试中的一个。不管怎样,你仅仅需要登录一次,但你需要不断地重复运行你的测试,当你正在开发它们。你可以登录一次,然后运行你的测试案例,从你的测试登录部分后面的一个开始点。那将防止你不得不每次重新运行你的测试时需要手动地注销。

要设置一个起点,选择一个命令,右点,然后从上下文菜单选择设置/清除启动点(Set/Clear Start Point)。然后点击运行(Run)按钮执行测试从起点开始。

单步通过一个测试案例

要执行一次执行一个命令地执行(单步“Step through”)测试,遵循下面的步骤:

    从工具栏,用运行(Run)按钮启动测试案例。

_images/chapt3_img09_Run.png

    用暂停(Pause)按钮立即暂停执行测试案例。

_images/chapt3_img10_Pause.png

    重复地选择单步执行(Step)按钮。

_images/chapt3_img12_Step.png

查找(Find)按钮

查找(Find)按钮用于看一看,在浏览器中当前显示的页面上的那个UI元素,被使用在目前选择的Selenium命令。这是有用的,当为一个命令的第一个参数构造定位器的时候(参见Selenium命令一章的定位器节)。它可以与任何一个标识Web页面上的一个UI元素的命令一起使用,例如,click,clickAndWait,type,以及某个assert和verify命令,包括其他的。

从表(Table)视图,选择任何带有定位器参数的命令。点击查找(Find)按钮。现在观看Web页面:应该有一个亮绿色的矩形包围着由定位器参数指定的元素。

页面源代码调试

时常,当调试一个测试案例时,你只需要看看页面的源代码(你正在试图测试的Web页面的HTML)去确定问题。Firefox让这个变得很容易。只需要右点Web页面,选择“View-〉Page Source”。HTML将打开在一个分离的窗口。使用它的搜索功能(Edit-〉Find)进行关键字搜索,找到你正试图测试的UI元素的HTML。

替代地,仅仅选择你希望察看源代码的部分Web页面。然后右点Web页面,选择查看选择源代码(View Selection Source)。在这种情况下,分离的HTML窗口将只包含少量的源代码,你选择的部分会高亮显示。

定位器助手

无论何时Selenium IDE录制一个定位器类型的参数,它将存储附加的信息,那个允许用户去查看其它可能的定位器类型的参数,可用于替代的。这个特征是非常有用的,对于学习更多的有关定位器的知识,也是时常需要的,可以帮助人们去构造一个不同于录制的类型的定位器类型。

定位器助手被提供在Selenium IDE窗口上,作为一个在目标(Target)域的右手端可访问的下拉列表(只有当目标域包含一个录制的定位器类型参数时才显示)。下面是一个快照,显示一个命令的下拉列表内容。注意下拉列表的第一列提供候选的定位器,第二列指示每一个候选者的类型。

_images/chapt3_img23_IDE_Locator_Assistance.png

编写一个测试集

一个测试集是一个显示在IDE最左边的窗格的测试案例的集合。测试集窗格可以手动地打开或关闭,通过选择这个窗格的右边的半腰的小点。

测试集窗格会被自动打开,当一个存在的测试集被打开,或者当用户从文件(File)菜单选择新建测试案例(New Test Case)。在这种情况下,新的测试案例将立即出现在前一个测试案例的下面。

Selenium IDE仍然不支持装载一个已经存在的测试案例进入一个测试集。希望通过增加一个已经存在的测试案例来创建或修改一个测试集的用户,必须手工编辑一个测试集文件。

一个测试集文件是一个HTML文件,包含一个单列的表。在<tbody>节的每行的每个单元格,包含一个到测试案例的链接。下面的一个示例是一个包含四个测试案例的测试集。


<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="./a.html">A Links</a></td></tr>
        <tr><td><a href="./b.html">B Links</a></td></tr>
        <tr><td><a href="./c.html">C Links</a></td></tr>
        <tr><td><a href="./d.html">D Links</a></td></tr>
    </tbody>
    </table>
</body>
</html>

注释

测试案例文件应该不必与调用它们的测试集文件在一个地方。在Mac OS和Linux系统,正是如此。然而在编写本文档时,一个bug会阻止Windows用户将测试案例文件放置在调用它们的测试集放置的其他地方。

用户扩展

用户扩展是允许一个人创建他或她自己的自定义或特征去增加附加功能的Javascript文件。时常以自定义命令的形式,尽管扩展不限于附加自定义命令。

有大量的用户创建的有用的扩展

重要:此节已经过时 - 我们将很快修订

或许所有Selenium IDE扩展中最流行的扩展是,以while循环和基本条件语句的形式提供流控制的扩展。该扩展是goto_sel_ide.js。有关如何使用该扩展提供的功能的示例,参见扩展的作者创建的页面

要安装这个扩展,可在Selenium IDE的选项菜单中,打开选项对话框,在“General”选项页的Selenium Core extensions域添加扩展文件在本地计算机的路径名称。

_images/chapt3_img32_Extensions_install.png

在选择OK按钮后,你必须关闭和重新打开Selenium IDE,以便IDE读取扩展文件。任何对扩展做出的改变也需要你关闭和重新打开Selenium IDE。

有关编写你自己的扩展的信息,可以在Selenium参考文档的底部找到。

格式化

格式化(Format)在选项(Options)菜单下,允许你选择一种语言用于保存和显示测试案例。默认是HTML。

如果你将使用Selenium RC运行测试案例,格式化功能用于转换你的测试案例到一种编程语言。选择一种你用来开发你的测试程序的语言,诸如,Java,PHP。然后简单地使用导出测试案例(File =〉Export Test Case As)存储测试案例。你的测试案例会被转换成你选择的语言的一系列函数。基本上,Selenium IDE会为你生成支持你的测试的程序代码。

另外,要注意如果生成的代码不适合你的需要,你可以通过编辑一个定义生成过程的配置文件修改它。每一种支持的语言都有可编辑的配置。这个在选项对话框的Format标签下(Options =〉Options...)。

注释

在编写本文当时,Selenium的开发者还没有提供对这个功能的支持。不管怎样作者已经可以以受限的方式修改C#格式化,并且可以很好地工作。

在不同的浏览器执行Selenium IDE测试

尽管Selenium IDE仅可在Firefox运行测试,然而用Selenium IDE开发的测试可以运行在其他的浏览器中,通过使用一个简单的命令行接口调用Selenium RC服务器。该主题在Selenium RC一章的运行Selenese测试节讨论。

故障排除

下面是一列描述使用Selenium IDE产生问题的常见来源的图像/说明:

使用本格式,表(Table)视图不可得到

这个消息可能偶尔会显示在表(Table)选项页,当Selenium IDE启动时。变通方法是关闭和重新打开Selenium IDE。要获取更多的信息参见issue 1008。如果你不能可靠地重现它,请提供详细信息以便我们可以修复。

错误装载测试案例: 命令没有发现

你使用File =〉Open试图打开一个测试集文件 ,使用File =〉Open Test Suit代替。

一个增强的要求已经发出,以便改进这个错误消息。参见issue 1010.

_images/chapt3_img28_Trouble_timing.png

这种类型的错误可能表示一个与时间相关的问题,例如在你的命令中由定位器指定的元素没有被完全装载,当命令执行的时候。试着在命令前放置一个pause 5000,以确定问题是否真的与时间相关。如果是这样,考虑使用一个适当的waitFor*或*AndWait命令在这个失败的命令前。

_images/chapt3_img29_Trouble_param.png

当你试图使用一个变量替代时失败,如上面的open命令的情形,这表示你还没有实际地创建这个你试图存取值的变量。这有时候是由于放置这个变量在值(Value)域,当它应该在目标(Target)域时出现,反之亦然。在上面的示例中,store命令的两个参数错误地以相反地顺序放置。对任何Selenese命令,第一个要求的参数必须在目标(Target)域,第二个要求的参数(如果存在)必须在值(Value)域。

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]

在你的测试集中的一个测试案例不能被找到。确信这个测试案例位于测试集指示的位置。另外,确信你实际的测试案例文件具有.html扩展名,包括在文件名称中,以及引用它们的测试集文件中。

一个增强的要求已经发出,以便改进这个错误消息。参见issue 1011.

_images/chapt3_img26_Trouble_space.png

Selenium IDE是空格敏感的!在命令前后的一个额外空格会引起命令不可识别。

该缺陷已经被提升。参见issue 1012.

_images/chapt3_img27_Trouble_extension.png

你的扩展文件的内容还没有被Selenium IDE读取。确信你指定了适当的到扩展文件的路径名,在选项对话框的Selenium Core extensions域。另外,Selenium IDE必须重新启动,在对扩展文件或对Selenium Core extensions域的内容作出任何改变后。

_images/chapt3_img30_Trouble_collapsed.png

这种类型的错误看起来好像是Selenium IDE在不该产生错误的地方生成了一个失败。实际上,Selenium IDE是正确的,因为在这个测试案例中实际的值不匹配指定的值。问题是日志文件错误消息会压缩一系列的两个或多个空格成一个空格,这是容易令人混淆的。在这个示例中,verifyTitle的参数在单词 “Selenium” 和“web” 之间有两个空格,而页面的实际标题只有一个空格。因此,Selenium IDE正确地产生了一个错误,但是一个误导性质的错误。

该缺陷已经被提升。参见issue 1013


© Copyright 2008-2012, Selenium Project. Last updated on Feb 02, 2012.
目录     上一页     下一页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值