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

塞缪尔·托尔加

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

  1. 使用要测试的代码签出 git branch。
  2. 使用 maven,使用生产配置文件创建运行mvn clean package -P production.
  3. http://192.168.0.105:8080/manager/html使用 Web 浏览器访问我们将在其中部署 war 文件的本地 PC
  4. 上传maven生成的war文件,等待部署完成。
  5. 我们的测试人员开始测试
  6. 如果发现任何问题,我们将对其进行修复并重复该过程,直到测试成功

我们想要实现的是尽可能少的手动过程,例如运行像mvn deployTest -DtestId=SC-1550这样的命令将执行以下步骤:

  1. 运行单元测试
  2. 运行集成测试
  3. 在生产配置文件上构建战争文件
  4. 使用参数“testId”作为war文件名,这样我们的测试人员将访问https://localhost:8443/TESTID并开始测试。这样,我们就可以准备好多个功能进行测试,只需要使用测试问题 ID 访问正确的地址即可。
  5. 使用maven-tomcat7我们测试机特定IP地址中插件将war文件部署到Tomcat 7
  6. 环境已准备好使用新功能进行测试。
  7. 如果发现任何问题,我们会在 git 上提交修复程序,然后再次运行 maven 命令 mvn deployTest -DtestId=SC-1550

这样做,我们将大部分手动过程替换为单个命令,从而加快了测试速度。

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


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

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

阿沃贾克

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

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

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

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


根据问题编辑进行编辑:

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

哎呀。良好的测试应该是您的最高开发优先事项之一。推迟它太容易了,然后永远不会进行适当的测试,直到为时已晚并且您的消费者/客户遇到严重缺陷。让时间投资,要写出好的测试现在

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Groovy詹金斯自动化的Maven和Java JDK8安装?

使用JavaScript进行自动化的单元测试

如何使用JUnit创建Maven插件的自动化测试?

如何使用Azure自动化运行存储过程?

在Xpages中,使用maven(无头设计器)通过jenkins为自动化测试创建的NTF包中缺少文件

使用数据库进行自动化测试

如何使用gulp从以下配置自动化构建

使用Maven自动化JMeter测试

vsts中的Maven测试自动化执行了我的测试用例两次

使用Kiwi TCM启动远程过程以进行自动化测试

使用Chai JS进行自动化测试

使用GitHub Actions(和GitHub Package Registry)自动化构建和发布过程

尝试使用JavaScript自动化网站上的报告过程

使用Altera Quartus进行自动化测试

在iOS上使用UI自动化测试屏幕跟踪

如何使用动态创建的控件进行自动化测试?

使用Grunt任务运行自动化测试

使用MS编码的UI进行自动化测试

使用Selenium IDE自动化测试运行

使用ARC进行自动化测试?

使用testlink和hudson自动化python测试

使用Test Studio创建HTML画布自动化测试

Domino Xpage 数据库构建自动化或使用 Jenkins 和 maven 的持续集成。

使用 TestNG 构建 Maven

使用自动化脚本杀死以 maven 命令启动的 java 应用程序:

使用 makefile 进行自动化测试

Java 中使用 if else 逻辑的自动化测试流程

使用 GEB 自动化 CSS 回归测试

使用 RobotFramework 在 iOS 中进行自动化测试