您如何批量测试 URL 重定向?

How do you Bulk Test URL Redirections?

像 SO 上的许多其他人一样,我不是来自铁杆开发背景 - 更多的操作。因此,我发现自己正在为这样的事情而苦苦挣扎,我想这很属于这里。

要求 - 我想轻松测试大批量 (1000-50000) URL 重定向。更接近于前者。

我想提供的意见

输出我想要...嗯滚出去

的奖励积分 - 使用真正的浏览器(Selenium 等),因为只有很小一部分重定向是在 JS 中完成的。很小。能够选择 Target URL 等于第一个重定向还是倒数第二个。能够轻松更改 HTTP Headers(尽管很高兴将 Fiddler 等注入其中)

我目前的想法

这似乎是其他人必须遇到并以我想到的 mainstream/easier 方式解决的问题之一。在此先感谢任何可以提供帮助的人。

一个解决方案:

csv:

http://google.com;http://www.google.fr
http://domain.null;http://www.domain.null

代码:

#!/bin/bash

while IFS=";" read -r url1 url2; do
    ret=$(curl -s -o /dev/null -w "%{http_code}\n" "$url1")
    ((ret >= 200 && ret <= 400)) && echo 'url1 PASS' || echo 'url1 FAIL'
    echo "url2 $(curl -s -L -o /dev/null -w "%{http_code}\n" "$url2")"
done < csv

如果您需要知道重定向(或未重定向)的真实 URL,请使用

curl -L -s -o /dev/null http://google.fr -w "%{url_effective}\n"

随时改进以满足您的需求。

非常感谢 StardustOne,但我觉得我必须重新发明轮子。

忽略了在浏览器中测试和涵盖 JS 场景的要求,我又看了一遍,迄今为止我发现的最好的解决方案是 Devops 周刊通讯中发送的内容

阴燃 - https://github.com/sky-shiny/smolder

我知道为我们的一个供应商工作的一名员工也在开发一个类似的应用程序,该应用程序包装了 Python 请求库,我计划很快将两者背靠背找出哪个实际上是最好的。如果他的努力击败了 Smolder,我会 post 回来!