一种健壮性测试的思路:用爬虫扫描全站,然后查看系统日志

以前一直有这样一个想法,今天终于付诸实践了。

为了查看web应用有后台错误日志,最基本的测试办法是手工点页面。

但要手工点全站,会比较慢。 最理想的办法是建立一套自动化测试脚本。

但如果没有一套这样的脚本,或者说没有这个脚本还不够完备时,就可以考虑使用爬虫了。 爬虫的好处是它可以递归地找出一个站点的所有链接并跟踪,也就是说能够完整遍历你的网站提供的服务。

所以,你可以一边用爬虫扫,一边盯着你后台的日志文件,看看有没有ERROR Log.

这里推荐一个轻巧的爬虫:skipfish. 它是一个命令行程序,主要用于安全性扫描,不过当然也可以用于健壮性测试:

./skipfish  -D my-friend.com -g 1 -m 1  -r 100  -o  ~/report-dir http://my.com/index  #这是linux版的,windows下也有skipfish.exe
#你还可以使用-C参数注入cookie, 方便扫描登录后的页面

    

扫完之后找出所有错误日志:

cat my.log|grep ERROR|awk '{for (i=5;i<=NF;i++ )printf( "%s ",$i); printf("\n")}' |sort|uniq  # 这里从第5列开始看日志,请按你的日志pattern来调整这个值

不过skipfish有个缺点,它对javascript的处理能力;如果你的网站有大量的ajax请求,那skipfish是不够用的,需要另找其它爬虫。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.