我正在寻找一种从Linux命令行测试网站的工具。
从输出中,我需要知道http响应(状态代码),而且还需要确定下载站点不同元素所花费的时间。
先感谢您。
我正在寻找一种从Linux命令行测试网站的工具。
从输出中,我需要知道http响应(状态代码),而且还需要确定下载站点不同元素所花费的时间。
先感谢您。
Answers:
您可以尝试wget
使用-p
选项:
wget -p http://site.com
它会告诉您下载每个元素需要多长时间以及每个请求的返回码。
wget -p URL -O /dev/null
您可能需要查看以下选项curl
:
--write-out
-显示几个与时间有关的变量中的任何一个--trace-time
-为每条迹线或冗长的行添加时间戳--verbose
--include
-(HTTP)在输出中包含HTTP标头。--trace-ascii <file>
-启用所有传入和传出数据的完整跟踪转储,包括描述性信息和以下选项wget
:
--timestamping
-打开时间戳curl --trace-ascii <file> --trace-time -o /dev/null <url>
正是我所需要的。谢谢!
根据您的目标,硒和卷曲是不错的选择。另外,我相当喜欢的一个实用程序是twill
。有关更多信息,请访问http://twill.idyll.org/。
很好,因为它只有很少的专业语言来填写表格,验证链接和检查响应代码。由于这只是Python代码,因此如果您想做一些不同的事情,则可以轻松地导入库并自己自动执行测试。
使用curl获取页面的标题,并为该过程计时:
time curl -I http://yourpage.com | grep HTTP
将其包装在while循环中,您就可以开始了。如果知道URL,可以用相同的方法检查所有元素。
选择哪种工具取决于要测量的内容和站点的复杂性。
如果站点的行为取决于Cookie(例如,用户需要登录),则ab / curl / wget(在其他答案中进行了描述)将不够用。一种解决方案是使用http :: recorder / www :: mechanize。
您要求的所有数据都在您的Web服务器日志中-一个简单的awk脚本将以更易读的形式返回它。
衡量下载网站不同元素所需的时间。
这是一个非常差的性能指标(尽管它对于监视生产系统的运行状况很有用)。除了大/慢资源(例如大容量报告,iso图像,多媒体文件)之外,性能感知与处理单个请求所花费的时间几乎没有关系-准确地衡量此请求确实很困难(只需添加%您的apache日志中的D似乎可以解决问题,但忽略了TCP握手,SSL协商,缓存效果,DNS查找时间)。
更好的解决方案是使用Boomerang之类的东西-但可以在支持Javascript的浏览器中运行。尽管与跟踪单个HTTP请求相比,这可以提供更好的感知性能指标,但是它依赖于浏览器事件来得出性能值-感知性能只不过是视口渲染所需的时间(同样,有一些工具可以做到这一点-看看WebPageTest中的幻灯片工具。
关于衡量实际交付给站点用户(RUM)与综合测试的性能的说法也存在争议。
pip install httpie --user
$ http -h http://serverfault.com/q/124952/113899
HTTP/1.1 302 Found
Accept-Ranges: bytes
Age: 0
Cache-Control: private
Connection: keep-alive
Content-Length: 198
Content-Type: text/html; charset=utf-8
Date: Fri, 06 Jan 2017 10:01:06 GMT
Location: http://serverfault.com/questions/124952/testing-a-website-from-linux-command-line
Set-Cookie: prov=392298d9-103e-7dfc-5b55-8738be46cf3b; domain=.serverfault.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Via: 1.1 varnish
X-Cache: MISS
X-Cache-Hits: 0
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
X-Request-Guid: 07a25de4-6e16-4aa8-acfc-12b1bbbc6180
X-Served-By: cache-hhn1543-HHN
X-Timer: S1483696865.976259,VS0,VE187