2

我知道这是一个开放式问题,但希望它会在线程被锁定之前得到一些好的答案......

我想知道如果从客户端的角度来看网站是否在线,有哪些方法可以以编程方式检查(与语言无关)(假设您无法更改网站/服务器,但您可以依赖网站的某些行为。)

每种方法的结果可以叠加以提供站点向上/向下的确定性度量——也就是说,如果站点自身向上/向下,方法不必提供明确的指示。

一些仅用于检查“upness”的常见测试可能是:

  • ping 站点(在共享主机的情况下,这不是很有指示性)
  • 发送 http head/get 请求并检查状态

我能想到的其他检查网站是否正常运行:

  • 检查您是否收到格式良好的 html 响应,即 html 到 html 标记,如果站点遇到问题,它可能会吐出错误并退出而不编写页面的其余部分(虽然不是那么可靠,因为该站点可能会以更好的方式处理大多数错误方式)

  • 检查页面上是否存在某些内容,即可能有一些内容始终存在于您的页面上,或者在出现错误时始终存在

任何人都可以想到任何其他方法可以用来帮助确定网站是否实际上在程序中启动/关闭以及运行/不正常运行?

4

3 回答 3

3

如果您在显示来自数据库的信息的页面上的获取请求返回状态 200 并找到匹配的关键字,则您可以非常确定您的网站已启动并正在运行。

而且你真的不需要编写自己的脚本来做到这一点。GotSiteMonitorPingdom 、UptimeRobot 等免费服务可让您监控您的网站。

于 2013-01-22T05:59:21.777 回答
1

好的,听起来您想从客户体验的角度测试和监控您的网站,而不是纯粹确定服务器是否启动(例如使用 ping)。复制客户体验的一种有效方法是使用其中一种无头浏览器测试工具( phantomJS是一个不错的选择)来模拟针对站点的测试,因为它们将完全呈现页面(包括图像、CSS、JS 等),从而为您提供真实的页面加载时间。这些工具还允许您对 HTML 内容和 HTTP 响应的所有方面进行断言。

pingdom最近开始提供(付费)服务来执行这些确切类型的检查,以及他们现有的监控解决方案。该演示值得一看,他们编写实际测试的界面非常好。

于 2013-01-21T10:53:33.017 回答
0

基于单元测试原则的测试集。它通常在编程中用于在进行更改后测试类、模块或其他工件。您可以使用任何可用的框架,因此不必重新发明轮子。您必须描述(实施)要运行的测试,在您的情况下,典型的测试应该在页面内请求一个 url,然后进行一些评估,例如:

  • 调用结果(例如 curl 执行的返回码)
  • http返回码
  • http 标头
  • 响应哑剧类型
  • 响应大小
  • 响应内容(针对正则表达式进行测试)

这样一来,您就可以添加、删除和修改单个测试,而无需关心框架。您还可以链接测试,因此在一个测试中执行登录,然后在后续测试中虚拟单击一个按钮。

还有一些工具可以自动处理此类测试运行,包括结果、统计数据等的可视化。

于 2013-01-20T14:09:16.437 回答