使用maven自动化测试构建过程

时间:2017-11-27 15:59:00

标签: java maven testing

我们在Tomcat 7上运行了一个Java Web Project,我们使用Maven作为构建工具。在我们的实际测试过程中,我们需要做一些手动步骤来构建我们的测试环境项目:

  1. 使用要测试的代码检出git分支。
  2. 使用maven,使用生产配置文件创建运行mvn clean package -P production的war文件。
  3. 使用网络浏览器访问我们将在其中部署war文件的本地PC http://192.168.0.105:8080/manager/html
  4. 上传maven生成的war文件并等待部署完成。
  5. 我们的测试人员开始测试
  6. 如果发现任何问题,我们会对其进行修复并重复此过程直至测试成功
  7. 我们希望实现的是尽可能少的手动过程,例如运行mvn deployTest -DtestId=SC-1550之类的命令将执行以下步骤:

    1. 运行单元测试
    2. 运行集成测试
    3. 在生产资料中构建war文件
    4. 使用参数" testId"作为war文件名,我们的测试人员将访问https://localhost:8443/TESTID并开始测试。通过这种方式,我们可以准备好多个功能进行测试,只需要使用测试问题ID访问正确的地址。
    5. 使用我们测试计算机的特定IP地址中的maven-tomcat7插件将war文件部署到Tomcat 7
    6. 环境已准备好使用新功能进行测试。
    7. 如果发现任何问题,我们会在git上提交修复,然后再次运行maven命令mvn deployTest -DtestId=SC-1550
    8. 这样做,我们将大部分手动过程替换为单个命令,从而加速我们的测试。

      我的问题是,是否有办法通过配置pom文件,或使用插件甚至实现我们自己的插件来使用单个命令执行此步骤来自动化此过程。

      回答@avojak并以动机更新问题:

      我们是一家小型创业公司,我们的产品处于早期到中期阶段。只是现在我们专注于测试自动化,所以我们几乎没有,甚至没有基本的单元测试。出于这个原因,我们所有的测试都是以探索的方式进行的,跳过单元和集成测试,直到我们实现它。与此同时,我们正在使用JIRA工具实现Scrum。我们确定将有一个步骤,我们的产品负责人将检查该功能是否相应地工作(QA步骤),这就是为什么我想将JIRA问题与war文件名链接,他可以直接访问我们的测试服务器与要测试的问题的ID。

1 个答案:

答案 0 :(得分:3)

  

...是否有办法通过配置pom来自动化此过程   文件,或使用插件,甚至实现我们自己的插件来做到这一点   使用单个命令的步骤

您不需要为此创建或使用更多插件。听起来你已经将你的pom配置为执行单元和集成测试,这应该足以进行自动构建。

如果您还没有选择持续集成工具(Jenkins,Travis CI,Gitlab CI等),请查看。您可以配置这些工具,以便在签入代码(或推送,PR合并等)时自动运行作业。该作业将运行您需要的任何Maven命令,并将处理构建,测试,部署工件,而无需任何手动交互。

我认真地质疑为什么你需要指定一个特定的测试ID并对WAR进行手动测试。听起来你需要重新考虑你的测试策略。 您试图测试哪些不是自动集成测试?如果您的答案是特定的工作流程或用例,则听起来您需要更全面的集成测试套件。此外,如果一切都是自动化的,那么没有理由不总是运行全套测试而不是指定要运行的单个测试。

根据问题编辑进行编辑:

  

我们是一家小型创业公司,我们的产品处于早期到中期阶段。只要   现在我们专注于测试自动化,所以我们几乎没有,   甚至不是基本的单元测试。出于这个原因,我们进行了所有测试   以探索的方式,跳过单元和集成测试,直到   我们实施它

让人惊讶。良好的测试应该是您最高的发展重点之一。它太容易脱掉它,然后永远不会进行适当的测试,直到它为时已晚并且您的消费者/客户遇到严重的缺陷。花时间投入来编写好的测试现在