将测试自动化套件创建为服务的最佳方法是什么

时间:2016-12-28 20:02:13

标签: java web-services selenium

我正在尝试创建以下设置:

  1. Selenium(Java)项目,包含10个自动化测试用例。
  2. 执行此项目时,它会生成HTML测试执行报告。
  3. 此项目应在内部网络上“托管”。
  4. 任何有权访问网络的人都应该能够“调用”这个项目,然后执行测试用例并将HTML报告传递给调用它的人。
  5. 只有执行项目才能访问,并且代码不可访问。
  6. 我的目标是这个实现应该可以由任何框架执行,而不管框架使用的技术如何。我正在考虑使用Java(servlet)将项目创建为WebService。

    我的问题是:

    1. 任何外部自动化框架都可以访问此实现吗?
    2. 此实施是否有任何限制?
    3. 是否有更好的方法来实现此要求?
    4. 提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以创建一个maven项目,并在maven test文件夹下进行自动化测试。配置您的测试以运行POM.xml(使用maven surefire插件)。配置jenkins作业以运行maven测试。任何人都可以访问jenkins可以建立/运行这个任务!

下面的链接应该会给你一个开头 http://learn-automation.com/selenium-integration-with-jenkins/

答案 1 :(得分:0)

事实上,这是我们在其中一个项目上所做的事情。由于我无法分享细节,我将为您提供项目的整体架构视图。

所有事情的核心都是可以对请求运行JUnit测试的服务。这是一个Soap Web服务,但没有什么可以阻止你使它成为REST。要实现这一点,您需要实现您的JUnit测试运行器版本(例如参见:http://www.mscharhag.com/java/understanding-junits-runner-architecturehttps://github.com/junit-team/junit4/wiki/Test-runners

如果您使用JUnit作为运行Selenuim测试的测试框架,这可能是一个很好的解决方案 - 如果您正确配置它,JUnit将为您生成HTML报告,它将隐藏用户的实际测试套件实现并运行测试套件一经请求。这个解决方案也很棒,因为它在JUnit级别上运行,并不关心它实际运行的是什么类型的测试,所以它也可以用于任何其他类型的自动化测试。

所以回答你的所有问题:

任何外部自动化都可以访问此实现     框架? - >是的,任何能够发送http的人都可以访问它     请求

此实施是否有任何限制? - >我不是     知道

有没有更好的方法来实现此要求? - >好吧,我     实际上并没有使用TestNG,所以我不知道是不是     在Junit级别上执行此操作更容易或更困难。您可以使用     Jenkins或其他CI工具也可以实现相同的结果 - 他们可以     为您运行JUnit测试,并且几乎总是为此准备好API,     虽然这些API可能并不完美。

所以我要说,如果您只需要一件事就可以使用CI工具,如果您没有可用的CI工具,那么就可以选择。但是,根据我们的经验,拥有这种服务对公司来说是一笔巨大的财富,我真的很想知道为什么其他地方还没有这样的产品。