用于生产监控的 JUnit 友好框架

软件测试 詹金斯 朱尼特
2022-01-24 22:24:22

我的团队每周左右将代码部署到生产环境。我们有大量的部署后验证,例如:

  • 新的日志行附加到 Tomcat 日志(ssh到机器,tail -f日志)
  • 数据库表在一分钟内有超过 100 个新行(ssh机器,运行一些sql命令)
  • 带有给定参数的 GET 调用返回正确的值(浏览器或wget

测试是手动完成的,需要 2-4 个痛苦的小时。

由于我们有一个 Jenkins CI 系统,我想将这些测试自动化到生成 JUnit XMLS 的小单元上,这些 JUnit XMLS 可以通过 Jenkins Web UI 进行分析。

是否有能够轻松ssh使用 JUnit 输出的服务器的测试套件?

2个回答
  1. 使用 JUnit 处理来自 Jenkins 服务器的测试运行。
  2. 使用 JDBC 查询数据库中的新行。
  3. 更改 Tomcat 服务器,以便它们将日志记录事件发送回 Jenkins serverJUnit 测试。您需要为 JUnit 测试编写一个小套接字侦听器来收集 Tomcat 事件(编写 LoggingEvent 侦听器并不难。我不是出色的编码器,而且我得到了使用 Observer-Observables 工作的事件侦听器不到一个日。)
  4. Java 有大量的 http(s) GET/POST 能力,所以 wget 也不难实现。

我不知道有一个测试框架可以让您抽象出构建 JDBC 连接、SSH 输出等的所有样板代码。也许 Spring 会进行这种抽象。

你看过 JBehave 吗?它是一个位于 JUnit 之上的验收测试框架。

使用Jenkins服务器是个好主意。您只需要创建运行基本 JUnit 或 TestNG 测试的 Maven 项目。JUnit 或 TestNG 测试应该完成您的任务并提供断言。至少,我会这样做。您只需使用 Jenkins 中的构建后操作来查找您的 JUnit 输出 .xml 文件(需要一个特殊的插件来执行此操作)。