以编程方式检查网站是否已启动并按预期运行的方法

时间:2013-01-20 13:41:14

标签: website-monitoring

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

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

每种方法的结果都可以叠加,以提供网站上/下的确定性度量 - 也就是说,如果网站单独上/下,方法不必提供明确的指示。

一些常见的测试只是为了检查'正常'可能是:

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

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

  • 检查您是否收到了格式正确的html响应,即html到html 标签,如果网站遇到麻烦,它可能会吐出错误 退出而不写页面的其余部分(不是那么可靠 虽然因为该网站可以更好地处理大多数错误)

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

是否有人可以考虑使用任何其他方法来帮助确定某个网站实际上是否正常运行/正常运行/无法正常运行?

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

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

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