我的问题如下:我们使用Selenium IDE和RC来测试我们网站的功能。我们的网站提供了一个列表,每次添加项目时都会保存在服务器上。它还允许用户登录。
当我的selenium套件中途失败时(例如,因为网站上有错误),它可能会在列表中留下一些项目,可能会让用户登录等等。拆解脚本(注销,清除列表)现在是套件的一部分,但是当套件中途失败时它们不会被执行。因此,当下一个测试开始时,它不会从头开始,因为它应该。这当然会使该套件中的几个步骤失败,导致整个测试运行崩溃和烧毁。
我提出的解决方案之一是在每个测试套件之后运行几个允许失败的小型拆卸套件。
实施例: 大主套房失败 注销失败 清单成功
这是在中途失败并在列表中留下一些项目的测试中会发生的事情
Big Main Suite成功 注销失败 清除列表失败
这是成功运行会发生的事情。
即使这个解决方案可能有效,但对于你的报告来说真的很糟糕。
所以我基本上有两个问题:
答案 0 :(得分:1)
问题1.确保套件从头开始的最优雅方法是什么,即使套件失败之前也是如此?
我建议你使用testNG或JUnit框架。这两个都有注释,可以帮助您编写测试完成时应该发生的事情,而不管测试结果如何。我只用过testNG。 testNG提供了额外的侦听器,您可以在其中定义方法传递,跳过或失败时应发生的情况。
您还可以定义在调用任何方法或类之前执行的方法(@BeforeMethod注释)。
我不知道您现在如何处理报告,但testNG有一个很好的HTML报告,显示了基本的详细信息。
通过使用testNG,您可以实现问题2 中所述的内容。 testNG允许您将测试分组并一起运行这些测试。您可以将您不介意的所有测试添加到一个组并运行它。
学习曲线相对较少,这将使您的工作更轻松。您可以找到有关testng及其与selenium here
的集成的更多详细信息