用于系统测试的自动链接检查器

时间:2009-10-20 18:37:38

标签: automated-tests web-crawler system-testing

我经常需要处理在更新逻辑或配置时以意想不到的方式破坏的脆弱遗留网站。

我没有时间或知道创建Selenium脚本所需的系统。此外,我不想检查具体的用例 - 我想验证网站上的每个链接和页面。

我想创建一个自动系统测试,它将通过一个站点进行爬行并检查链接和崩溃是否已损坏。理想情况下,我可以使用一种工具来实现这一目标。它应具有尽可能多的以下功能,按优先级降序排列:

  • 通过脚本触发
  • 不需要人为互动
  • 关注所有链接,包括锚标记和CSS和js文件的链接
  • 生成所有找到的404s,500s等的日志。
  • 可以在本地部署以检查Intranet上的站点
  • 支持基于cookie /表单的身份验证
  • 免费/开源

有许多部分解决方案,例如FitNesseFirefox's LinkCheckerthe W3C link checker,但没有一个能够完成我需要的所有工作。

我想将此测试用于使用各种技术和平台的项目,因此解决方案越便携越好。

我意识到这不能替代正确的系统测试,但如果我有一种方便且可自动化的方式来验证网站的任何部分是否明显被破坏,那将非常有用。

9 个答案:

答案 0 :(得分:33)

我们使用并且非常喜欢Linkchecker:

http://wummel.github.io/linkchecker/

它是开源的,Python,命令行,可在内部部署,并以各种格式输出。当我们与他联系时,开发人员非常乐于助人。

我们有一个Ruby脚本,用于查询我们的内部网站数据库,使用适当的参数为每个站点启动LinkChecker,并解析LinkChecker为我们创建CMS中每个站点的自定义错误报告的XML。

答案 1 :(得分:28)

我使用Xenu's Link Sleuth来做这类事情。快速检查/任何网站上没有死链接等。只需将其指向任何URI,它就会占用该网站上的所有链接。

来自网站的描述:

  

Xenu的Link Sleuth(TM)检查Web   破坏链接的网站。链接   验证是在“正常”进行的   链接,图像,框架,插件,   背景,本地图像地图,风格   工作表,脚本和Java小程序。它   显示不断更新的列表   您可以按不同方式排序的网址   标准。报告可以在   任何时候。

除了可编写脚本外,它还满足您的所有要求,因为它是一个需要手动启动的Windows应用程序。

答案 2 :(得分:2)

W3C链接检查程序不符合您的列表的哪一部分?那就是我要用的那个。

或者,twill(基于python)对于这种事情来说是一种有趣的小语言。它有一个link checker module,但我不认为它是递归的,所以这对于蜘蛛来说不太好。但如果你对此感到满意,你可以修改它。而我可能是错的,可能有一个递归选项。无论如何,值得一试。

答案 3 :(得分:2)

您可能想尝试使用wget。它可以包含一个包含“页面必需品”(即文件)的站点,并且可以配置为记录错误。我不知道它是否会为您提供足够的信息,但它是免费的,可在Windows(cygwin)和unix上使用。

答案 4 :(得分:1)

InSite是一个商业程序,似乎可以做你想要的(没有使用它)。

如果我在你的鞋子里,我可能会自己写这种蜘蛛......

答案 5 :(得分:1)

我不确定它是否支持表单身份验证,但如果您可以在网站上运行它,它将处理cookie,否则我认为Checkbot将执行您列表中的所有操作。我之前在构建过程中使用了一步来检查网站上是否有任何损坏。网站上有一个example output

答案 6 :(得分:1)

我一直很喜欢linklint来检查网站上的链接。但是,我认为它不符合您的所有标准,尤其是可能依赖于JavaScript的方面。我也认为它会错过CSS内部调用的图像。

但是为了抓住所有锚点,它的效果非常好。

答案 7 :(得分:0)

试试SortSite。它不是免费的,但似乎可以做你需要的一切以及更多。

或者,来自同一家公司的PowerMapper采用了类似但不同的方法。后者将为您提供有关页面详细优化的更少信息,但仍会识别任何损坏的链接等。

免责声明:我对生产这些产品的公司有经济利益。

答案 8 :(得分:0)

尝试http://www.thelinkchecker.com它是一个在线应用程序,可检查传出链接的数量,页面排名,锚点,传出链接的数量。我认为这是您需要的解决方案。