【问题标题】:Do you have health checks in your web app or web site? [closed]您的网络应用程序或网站中是否有健康检查? [关闭]
【发布时间】:2010-03-09 00:28:53
【问题描述】:

我过去为几个项目构建了基于 PHP 的“健康检查”脚本,但它们总是为这种场合定制,而不是作为一个独立的产品抽象地编写。我想知道是否存在这样的解决方案。

我所说的“健康检查”是一个受保护的网页,它的功能很像一套单元测试,但在更可操作的层面上,显示红色/黄色/绿色状态,例如

  • 缓存目录是否可写?
  • PHP 版本是否正确,是否安装了必需的扩展?
  • 数据库服务器是否可达?
  • 数据库中是否存在必要的表?
  • 是否有足够的可用磁盘空间?
  • 网站的首页是否可访问并完全呈现(= 没有 PHP 错误)?
  • 项目库的 MD5 校验和是否与原始校验和匹配?
  • 首页的输出是否通过了 W3C 验证器?

您是否在您的应用程序和网站中执行此操作(或部分操作)?

是否有任何标准化工具可以提供执行测试的所有功能(最好是插件),并且只需要相应地进行配置?

我说的是一种轻量级解决方案,它甚至可以在最小的基于 PHP 的 Web 包上运行,无需扩展和服务器访问。

是否有一种方法可以使用 PHP 可用的单元测试框架之一(最好是 PHPUnit)进行设置?如果是这样,您是否知道任何概述如何使用的资源/教程?

更新:似乎没有一个流行的现成解决方案,否则,有超过 100 个视图,我敢肯定会有一些提及它。鉴于最初对构建这样一个开源项目这样的工具有兴趣,请随时发布适合您的理想解决方案,以及它必须具备的功能。

【问题讨论】:

  • 一个通用的工具,也许是一个 XML 文件作为配置,真的很有趣。
  • @Franz 是的,绝对是,带有用于文件操作的插件(存在,可写,md5),mySQL,以及用于获取和验证页面的 Web 客户端。真的很值得建造!....
  • 这听起来像是一个很棒的开源项目。算上我吧。我很想听听这方面的最佳实践。我也经常使用 CakePHP,所以我也可以将其视为 Cake 的测试/供应商应用程序。这听起来像是一个非常有趣的项目!
  • 哦,是的,我也很想参加。
  • @Franz 太棒了!我会在这里发布任何进展。以后我什至可能会在这个问题上悬赏以获取“愿望清单”。

标签: php maintenance


【解决方案1】:

有趣的问题,但这是相当广泛的。我还没有看到一个单元测试工具可以一次完成所有的后端、中端和前端测试。我检查了this list,但没有人能做到这一切。然而,有一种通用方法,xUnit(全自动测试)。

主要的障碍是后端测试是特定于平台/数据库的,而中间测试是特定于编程语言的。然后将这些限制与前端测试结合起来。然后,该工具应该必须支持全世界都知道的几乎所有语言和平台。我认为这样的工具永远不会在开源世界中可用。这是一个乌托邦。

理论上确实有可能拥有一个具有插件功能的测试框架,可能基于 xUnit 意识形态,但尚未编写/发明/开源它。你?这确实是市场上的一个漏洞。

无论如何,对于前端单元测试(HTML/CSS/JS/forms),我推荐Selenium,或者如果你有钱,TestComplete。几年前我已经看到它在 IBM 使用过,看到它在运行中真是太棒了,测试人员对此非常满意。

对于中端单元测试(编程代码、业务逻辑),只需继续使用特定于编程语言的单元测试工具,例如用于 PHP 的 PHPUnit 和用于 Java 的 JUnit

关于后端单元测试(数据库、文件系统),我在 PostgreSQL 中使用了 PGTap,但也有可用的通用数据库工具,例如 SQLUnit(不过最近一次更新是在将近 4 年前.. .)。对于本地磁盘文件系统条件,您必须使用特定于平台的脚本语言。

【讨论】:

    【解决方案2】:

    您可以使用 CruiseControl 和 phpUnderControl 完成所有这些操作。但当然,您需要指定所有要执行的任务,以便您的项目通过所有检查。

    http://topecoders.blogspot.com/2010/04/how-to-install-cruisecontrol.html

    使用 CruiseControl,您可以为项目的每个构建添加要执行的多个任务。

    【讨论】:

      【解决方案3】:

      查看Nagios。它可以配置为轮询 URL 并扫描字符串的存在/不存在,查找某些响应代码,以及相当多的其他内容。如果您在 URL 中公开您想要查找的内容,Nagios 可以完成剩下的工作。

      @Franz Nagios 支持需要花钱,但核心监控软件是免费的。这有点像 Redhat 模型。

      【讨论】:

      • 再重复一遍,他没这么说,但我相信非商业的东西会更好(而且这无论如何只会帮助一部分):-(
      • @trenton 干杯,我知道 Nagios,虽然它完全符合要求,但对于我的想法来说,这完全是矫枉过正。我正在寻找可以放到现有网站或应用程序上的东西,甚至可以在 Nagios 无法做到的小型共享主机包上运行。我编辑了问题以使这一点更清楚。
      猜你喜欢
      • 2018-12-30
      • 1970-01-01
      • 2013-12-09
      • 2022-12-23
      • 2016-05-25
      • 2019-03-17
      • 2019-08-27
      • 2011-05-02
      • 1970-01-01
      相关资源
      最近更新 更多