自动链接检查系统testing

我经常不得不与易碎的遗留网站一起工作,这些网站在更新逻辑或configuration时会以意想不到的方式破坏。

我没有时间或知识来创build一个Selenium脚本所需的系统。 此外,我不想检查一个具体的用例 – 我想validation网站上的每个链接和页面。

我想创build一个自动系统testing,将蜘蛛通过一个网站,并检查链接和崩溃。 理想情况下,我会用一个工具来实现这一点。 它应该尽可能多地具有以下特征,按照优先级从高到低的顺序排列:

  • 通过脚本触发
  • 不需要人际交往
  • 遵循所有链接,包括定位标记和链接到CSS和js文件
  • 产生所有find的404s,500s等的日志
  • 可以在本地进行部署以检查Intranet上的站点
  • 支持基于cookie /表单的身份validation
  • 免费/开源

这里有很多部分解决scheme,比如FitNesse , Firefox的LinkChecker和W3C链接检查器 ,但是他们没有一个能够满足我的需求。

我想使用这个testing项目使用一系列的技术和平台,所以更便携的解决scheme更好。

我意识到这不能替代正确的系统testing,但是如果我有一个方便且可自动的方法来validation网站的任何部分都没有被破坏,那将是非常有用的。

我使用Xenu的Link Sleuth来处理这类事情。 快速检查任何网站上没有死链接等。 只要指出它在任何URI,它会蜘蛛网站上的所有链接。

来自网站的描述:

Xenu的Link Sleuth(TM)检查网站是否有损坏的链接。 链接validation是在“正常”链接,图像,框架,插件,背景,本地图像映射,样式表,脚本和Java小程序上完成的。 它会显示一个连续更新的URL列表,您可以按照不同的标准进行sorting。 报告可以随时生成。

它符合所有你的要求,除了是脚本,因为它是一个Windows应用程序,需要手动启动。

我们使用并非常喜欢Linkchecker:

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

它是开放源代码,Python,命令行,可在内部部署,并输出到各种格式。 当我们与问题联系时,开发者非常有帮助。

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

W3C链接检查程序不能满足您的列表中的哪一部分? 那将是我会使用的那个。

或者, 斜纹 (基于python)是这种事情的一个有趣的小语言。 它有一个链接检查模块,但我不认为它recursion的工作,所以这不是很好的蜘蛛。 但是如果你对此感到满意的话,你可以修改它。 而我可能是错的,可能会有一个recursion的select。 值得检查,无论如何。

你可能想尝试使用wget。 它可以蜘蛛网站,包括“页面必备条件”(即文件),并可以configuration为logging错误。 我不知道它是否会为你提供足够的信息,但它是免费的,可以在Windows(cygwin)以及unix上使用。

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

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

我不确定它是否支持表单身份validation,但是如果您可以在网站上进行操作,它将处理Cookie,否则我认为Checkbot会在您的列表中执行所有操作。 之前我已经使用过构build过程中的步骤来检查网站上没有任何内容。 网站上有一个输出示例 。

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

但是为了捕捉所有的锚点,它的效果很好。

尝试SortSite 。 这不是免费的,但似乎做你需要的一切,更多。

另外,来自同一家公司的PowerMapper有一个相似但又不同的方法。 后者会给你更less的关于你的页面的详细优化的信息,但是仍然可以识别任何断开的链接等等。

免责声明:我在制作这些产品的公司有财务利益。