我需要在Selenium中创建一个嵌套测试套件,该套件将在Selenium IDE或Selenium TestRunner中运行。这基本上就是我想要实现的结构:
MasterTestSuite.html
- ComponentTestSuite.html
- TestCase1.html
- TestCase2.html
- OtherComponentTestSuite.html
- TestCase3.html
- TestCase4.html
我需要能够达到与此相当的效果。我已经开始尝试一个Include扩展,它允许我包含另一个测试用例的内容,但是我遇到了它的问题。你是如何实现这一目标的?对于如何帮助我实现这一目标,您能给出什么建议?
答案 0 :(得分:3)
这可能不是一个明确的答案,但我使用Selenium IDE 3个月。然后我发现WebDriver功能更强大。您的情况与Selenium WebDriver相提并论。逻辑越复杂,使用源代码而不是GUI界面来定义工作流程就越好。如果没有正确记录,输入和输出参数会变得非常混乱。如果他们升级Selenium IDE,他们可以轻松破解。 Selenium IDE非常擅长向新手程序员展示如何使用刻录机自动化工作流程,但如果您是程序员,它会阻止您。
但是,如果您真的想要完成自己的工作,可以开发自己的自定义JavaScript函数来调用其他函数(或其他测试用例)。
答案 1 :(得分:1)
据我所知,Selenium IDE不支持此功能。大多数人这样做的方式是创建单独的测试套件并单独运行它们。
我在C#/ NUnit中通过为每个主区域创建一个* .cs文件,然后为每个测试设置类别来获得额外的粒度
e.g。
namespace Test.The.World
{
[TestFixture]
public class UK
{
[Test]
[Category("Southern Counties")]
public void Sussex_Brighton(){
.....
}
[Test]
[Category("Southern Counties")]
public void Hampshire_Southampton(){
.....
}
}
}
然后使用NUnit功能相应地运行测试。
我相信大多数语言的大多数框架都有这种功能
答案 2 :(得分:1)
我每天都在与Selenium一起使用基于模型的测试,并且使用模型可以将逻辑如何执行测试以及测试自己。
有一些开源/自由软件“机器人”,如http://www.xqual.com/ XStudio。我已经尝试了一下并完成了工作,但是如果您的测试环境不经常改变,那么工作非常混乱。你可以在这里开始每天开始自动执行等,并报告结果。
干杯, 斯蒂芬
答案 3 :(得分:1)
我在Selenium IDE中构建了几十个测试套件,以帮助测试我的Store Locator Plus WordPress插件。有时我需要运行一个Selenium测试套件。但是,当我发布新版本的基本插件时,我想一个接一个地运行十几个测试套件。
虽然不是完美适合您创建多个主套件的用例,但我确实找到了一对Selenium IDE插件,它允许我创建一个单独的"收藏夹列表&# 34;并背靠背地运行我的所有收藏夹。
有可能调查&修改插件JavaScript以创建几个不同的"收藏夹列表"这可能适合您的需求。在此期间,您可以获得至少一个"主套件列表"通过组合这些Selenium IDE附加组件:
安装每个附加组件(技术上是Mozilla Firefox插件)后,您将在Selenium IDE界面中看到一个收藏夹按钮。标记您最喜欢的套房,您将获得"列表"。您现在可以选择"收藏夹/全部运行"来自Selenium IDE菜单。
您可能需要注意标记收藏夹的顺序。我按照我希望它们运行的顺序标记它们。打开测试套件#1,最喜欢的,测试套件#2喜欢的等等然后"运行所有"。工作得很好,向我展示了所有套件(以及测试)执行的总运行次数和失败次数。遗憾的是,日志似乎在每个套房都被重置了。
答案 4 :(得分:0)
您需要SeleniumRC和一些编程语言工具来编写和运行测试。 SeleniumIDE允许以多种语言(C#,JAVA,PHP,Python等)保存测试 使用你熟悉的。 还有SetUp和TearDown,很难做好测试。 Selenium IDE不允许使用这些方法。
答案 5 :(得分:0)
这应该在mainsuite中。
public static Test suite() {
TestSuite testSuite = new TestSuite();
testSuite.addTest(ComponentTestSuite1.suite());
testSuite.addTest(OtherComponentTestSuite2.suite());
}