如何在Selenium IDE中循环testing?

我一直在Selenium IDE中进行testing。 使用起来相当简单,我创build了一些testing用例。 我一直在search谷歌,试图find一种方法来自动重复我的testing。 我已经看到了gotolabel,while循环等解决scheme,但我不能让他们任何作品。 有人可以给我一个关于如何循环testingn次的提示,或永远循环。 我感谢任何帮助。

做这个:

  1. 下载这个js文件: https : //github.com/darrenderidder/sideflow/blob/master/sideflow.js
  2. 从Firefox启动Selenium IDE并打开选项菜单。
  3. 将.jsfile upload到“Selenium Core extensions(user-extensions.js)”字段。

js文件在Selenium IDE中提供了goto,gotoIf和while循环function。 下面的例子显示了一个简单的循环:

 <tr> <td>getEval</td> <td>index = 0;</td> <td></td> </tr> <tr> <td>while</td> <td>index &lt; 10;</td> <td></td> </tr> <tr> <td>storeEval</td> <td>index</td> <td>value</td> </tr> <tr> <td>echo</td> <td>${value}</td> <td></td> </tr> <tr> <td>getEval</td> <td>index++;</td> <td></td> </tr> <tr> <td>endWhile</td> <td></td> <td></td> </tr> 

如上面的答案中所述,安装用户扩展,它将为Selenium IDEtesting添加循环function。 下面的例子显示了一个简单的循环:

 <tr> <td>getEval</td> <td>index = 0;</td> <td></td> </tr> <tr> <td>while</td> <td>index &lt; 10;</td> <td></td> </tr> <tr> <td>storeEval</td> <td>index</td> <td>value</td> </tr> <tr> <td>echo</td> <td>${value}</td> <td></td> </tr> <tr> <td>getEval</td> <td>index++;</td> <td></td> </tr> <tr> <td>endWhile</td> <td></td> <td></td> </tr> 

我是Selenium的新手(几分钟前刚开始使用它)。 快速谷歌search“selenium循环”这个stackoverflow.com问题出现了。 我立即跳进了扩展,并开始使用循环。 接受的答案是非常有帮助的。 不过,我想指出一些其他的东西是selenium新(在这个页面上绊倒)。

我为一个简单的网页创build了一个简单的testing。 我添加了一个循环,以便testing将无限期地运行(直到我暂停/停止它)。 但是,我注意到通过这样做,Selenium GUI中的运行/故障计数器不会随着每个循环而递增(我猜测是因为一个testing案例从来没有运行完成,只是无限循环)。 所以我挖了一点。 我的目标是让相同的testing运行很长时间(几个小时,或者可能是一夜之间),看看是否有任何失败(我现在正在追赶一个间歇性的错误)。

最简单的方法(对于我来说,在几分钟的search/实验之后)是做下面的事情(可能不需要插件,但是如果你想在一个testing用例中运行一些小的循环,附加的插件是非常有用的):

  • 将testing用例保存到文本文件中
  • 将testing套件保存到文本文件中
  • 在文本编辑器中打开testing套件文本文件
  • 在testing套件中多次复制和粘贴testing用例(例如,一千次)
  • 然后在Selenium中打开testing套件,并运行testing套件

现在我有了多次运行相同的简单testing套件,运行/故障计数器按预期递增(不需要任何循环)。

使用Firefox的stream量控制插件 。 重新启动Firefox之后,使用label命令标记脚本中的一个点,并使用gotolabel命令跳转到此处。

例如:

在这里输入图像说明

或者如果你想看看源代码,这是一个标签:

 <tr> <td>label</td> <td>start</td> <td></td> </tr> 

这导致执行点跳回到标签:

 <tr> <td>gotolabel</td> <td>start</td> <td></td> </tr> 

还有其他的命令可以在插件页面上看到,并在Selenium IDE中进行了logging:Flow Control GitHub项目 。

这是sampcop用户的示例,以便使用标签和goto Label命令自动化垃圾邮件投诉:

第一次loginspamcop.net

第二次使用报告垃圾邮件选项

第三次启动这个脚本

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head profile="http://selenium-ide.openqa.org/profiles/test-case"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="selenium.base" href="http://www.spamcop.net/sc" /> <title>testecase</title> </head> <body> <table cellpadding="1" cellspacing="1" border="1"> <thead> <tr><td rowspan="1" colspan="3">testecase</td></tr> </thead><tbody> <tr> <td>label</td> <td>target1</td> <td></td> </tr> <tr> <td>clickAndWait</td> <td>link=Report Now</td> <td></td> </tr> <tr> <td>clickAndWait</td> <td>//input[@value='Send Spam Report(s) Now']</td> <td></td> </tr> <tr> <td>gotoLabel</td> <td>target1</td> <td></td> </tr> </tbody></table> </body> </html> 

您的testing套件文件只是一个HTML文件,所以只需执行以下操作:

 <tr><td><a href="testCase1.html">testCase1</a></td></tr> <tr><td><a href="sameStep.html">sameStep</a></td></tr> <tr><td><a href="testCase2.html">testCase1</a></td></tr> <tr><td><a href="sameStep.html">sameStep</a></td></tr> 

我发现本教程更有帮助,因为上面的一些响应只是“去”解决scheme,而不是迭代循环结构:

http://www.software-testing-tutorials-automation.com/2013/07/example-of-while-and-endwhile-loop.html