本帖最后由 樱花季节 于 2013-5-8 17:12 编辑
调试(Debugging) 通过调试你可以发现和修复测试用例中的错误。这是测试用例开发的一个过程。 断点 Selenium-IDE支持断点的功能,断点可以让测试用例在你需要的位置暂停。 设置断点可以通过选中一个命令,右键点击,在右键菜单中选择“Toggle Breakpoint”。然后点击执行按钮的话,你的测试用例将会执行到这个断点处暂停。 起始点 在某些情况下,在测试用例的中间开始执行是蛮有用的。和断点类似,你可以设置一个起始点(Startpoint)。例如,你首先需要登录,然后执行一系列的测试,然而你只需要登录一次。这时候,你可以先登录一次,然后设置一个起始点在登录动作之后。这样子你就不需要每次都做一次登录的流程了,而且也不需要每一次重新运行你的测试用例前进行登出的操作了。 设置起始点可以通过选择一个命令,右键点击,在右键菜单中选择“Set/Clear Start Point”。然后点击执行按钮的话,你的测试用例将会从起始点开始执行。 单步执行测试用例 需要单步执行(一次执行一个命令)一个测试用例,可以通过下面的步骤: 1. 点击执行按钮
2. 立即点击暂停按钮,暂停测试用例的执行。
3. 重复的点击“Step(单步执行)”按钮
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="./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>用户扩展用户扩展是一些可以完成个性化或者增强功能的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.如上图提示click命令找不到。Selenium-IDE是对空格敏感的,也就是不忽略空格。一条命令前或者后如果多了空格,那么IDE都会提示找不到这条命令的。7.找不到while命令,Selenium本身没有while这个命令,那么可能是这个测试用例中使用了扩展的命令。请确保扩展已经在选项菜单中添加了,并重新启动了Selenium-IDE。8.这里的错误是说两句话不一致。从log里面提示的信息看到。两句话貌似是一致的。其实verifyTitle命令中的那句话 ‘Selenium’ 和‘web’这两个单词中间是有两个空格的…IDE在现实log的时候会把多个空格合并成一个空格,所以在log里面显示的完全一致的。但实际上是不一致的。 |