YSS

Write Less & Do More

关于检测Web页面完整性的一些个想法

上线一段时间后突然有人报告说,某个页面乱码了,或者某个页面怎么没有输出完全。

听到这些第一反应是快速定位问题,解决问题。

但解决完问题后,我们需要分析一下,我们如何才能避免再次出现这种情况?!

一些个想法

自动化脚步

每次上线后跑一个自动化脚本检测核心的几个输出的结果是否完整。

之所以说是去检测核心的几个页面,是因为本身我认为网站的全覆盖的方式是不可能做到的。

我们要保证的是核心的那几个页面没有问题。

判断正确的依据是:判断最后的结束标签是否</html>并且返回的http status为大于等于200,小于300。

优点:

  1. 实时检测。
  2. 能检测服务器端的错误。

#####不足:

  1. 需要事先准备好需要测试的url。

js检测和上报

基本做法是在页面底部埋点,比如:我固定在页面最后输出:<div id="J_Complete" class="hidden"></div>

然后,把监听的js代码放到head里。页面onload的时候去检测上面这个节点是否存在,如果不存在就认为这个页面没有被完整输出,然后上报。

优点

  1. 覆盖所有的页面。

不足:

  1. 如果是服务器错误,页面都不输出何来检测。
  2. 错误发生在这段js代码之前。

最后

try it.

https://github.com/yss/webDetect