网站导航检查的自动化实现

发表于:2015-1-29 08:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:郝强    来源:51Testing软件测试网原创

  本文讲述了如何实现网站导航检查几种思路其中还包括对于需要登录网站进行抓取也提供了一些指导。
  1.  网站爬虫与导航检查?
  对于互联网企业以及有互联网产品的企业,总会有类似这样的需求,你需要对你的全部站点的链接进行检测,以确保没有死链,这是基本需求。此外,有些互联网企业要求自己的网站在每次发布之后,能够把所有链接被爬虫爬一次(访问一次),以保证那些需要动态生成的页面能够生成静态页面或缓存。更有甚者,有些公司希望能够对每个页面的一些元素进行检查,以保证页面没有错误。
  目前,大多数企业多已经有了自己的自动化测试,类似使用qtp, selenium以及watir等,所以大家可能会期望使用这些工具在实现上述需求。但是,上述需求的验证工作大多数都有时间要求,通常希望能够在最短的时间内完成检查。通常情况下是最长时间不能够超过一小时。所以在这里我将和大家一起讨论用一些其它的技术来实现上述需求。
  2.   如何实现它
  首先我们考虑用ruby来实现,为什么用ruby呢,主要原因是我还比较熟悉。呵呵,开个玩笑,我推荐大家使用ruby,相信你会着迷的。而这里我们主要基于用Nokogiri库来实现。 Nokogiri是一款用ruby实现的HTML,XML以及SAX的解析库。它能够通过xpath或css3的selector在文档中进行搜索。
  为了实现之前我们提到的需求,我们首先考虑要给程序提供一个入口,即爬虫从哪里开始爬,第二点我们的程序应该有能力去掉一些不想爬的页面,最后呢因为有时间要求,它应该是个多线程的程序。
  关于入口我们将其存储在一个配置文件中,在ruby中我们选用yaml格式,配置文件的读取基本实现类似下列代码:
    ... ...
    查看更多精彩内容,请点击下载:http://www.51testing.com/html/98/n-1298298.html
  3.   其它的实现方法
  除了上述的自已编程及定制的实现方法外,我们也可以参考一下现成的gem包。我们首先发现的是Anemone。Anemone是一个非常容易使用的基于ruby的web爬虫框架。它主要是提供一组简单的DSL(领域特定语言 Domain-Specific Languages)去处理网站每个页面的Action。
  那么Anemone提供了哪些功能呢?
  1.高性能的多线程设计
  2.跟踪301 HTTP转向
  3.通过内建的BFS算法决定页面深度
  4.允许通过正则表达式去排除基于URL的页面
  5.支持https
  6.可以记录每个页面的响应时间
  7.可以记录页面深度等。
  下面有个例子展示了如何使用Anemone.
    ... ...
    查看更多精彩内容,请点击下载:http://www.51testing.com/html/98/n-1298298.html

   版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号