从Linux命令行测试网站


29

我正在寻找一种从Linux命令行测试网站的工具。

从输出中,我需要知道http响应(状态代码),而且还需要确定下载站点不同元素所花费的时间。

先感谢您。


到目前为止,您发现了什么,看了什么或正在考虑什么(合适/不合适)?
mctylr

这些答案对我来说都不是很好。您仍然需要等待年龄的负面影响
geotheory 2015年

Answers:


35

您可以尝试wget使用-p选项:

wget -p http://site.com

它会告诉您下载每个元素需要多长时间以及每个请求的返回码。


2
wget -p URL -O /dev/null
Fedir RYKHTIK '16

9

请参阅Apache Benchmark:

Apache基准测试

这应该使您对页面的性能有一个总体了解。


Apache benckmark不能用于此目的,因为它是外部来源,实际上是youtube视频播放列表。我们正在监视对此资源的访问。TY
Embreau

我不明白为什么不能使用ab;就像下一个答案中的wget一样,只要您从运行基准测试工具的计算机上可以访问您站点的URL,它就可以工作。
gareth_bowles

Apache基准测试不仅限于本地资源,它是一个完整的性能衡量工具(包括网络延迟,I / O等)。
安德烈(Andre)2010年

很高兴知道,我将评估此选项,谢谢。
Embreau

6

您可能需要查看以下选项curl

  • --write-out -显示几个与时间有关的变量中的任何一个
  • --trace-time -为每条迹线或冗长的行添加时间戳
  • --verbose
  • --include -(HTTP)在输出中包含HTTP标头。
  • --trace-ascii <file> -启用所有传入和传出数据的完整跟踪转储,包括描述性信息

和以下选项wget

  • --timestamping -打开时间戳

curl --trace-ascii <file> --trace-time -o /dev/null <url>正是我所需要的。谢谢!
dsummersl

3

根据您的目标,硒和卷曲是不错的选择。另外,我相当喜欢的一个实用程序是twill。有关更多信息,请访问http://twill.idyll.org/

很好,因为它只有很少的专业语言来填写表格,验证链接和检查响应代码。由于这只是Python代码,因此如果您想做一些不同的事情,则可以轻松地导入库并自己自动执行测试。


2

使用curl获取页面的标题,并为该过程计时:

time curl -I http://yourpage.com | grep HTTP

将其包装在while循环中,您就可以开始了。如果知道URL,可以用相同的方法检查所有元素。



1

选择哪种工具取决于要测量的内容和站点的复杂性。

如果站点的行为取决于Cookie(例如,用户需要登录),则ab / curl / wget(在其他答案中进行了描述)将不够用。一种解决方案是使用http :: recorder / www :: mechanize

您要求的所有数据都在您的Web服务器日志中-一个简单的awk脚本将以更易读的形式返回它。

衡量下载网站不同元素所需的时间。

这是一个非常差的性能指标(尽管它对于监视生产系统的运行状况很有用)。除了大/慢资源(例如大容量报告,iso图像,多媒体文件)之外,性能感知与处理单个请求所花费的时间几乎没有关系-准确地衡量此请求确实很困难(只需添加%您的apache日志中的D似乎可以解决问题,但忽略了TCP握手,SSL协商,缓存效果,DNS查找时间)。

更好的解决方案是使用Boomerang之类的东西-但可以在支持Javascript的浏览器中运行。尽管与跟踪单个HTTP请求相比,这可以提供更好的感知性能指标,但是它依赖于浏览器事件来得出性能值-感知性能只不过是视口渲染所需的时间(同样,有一些工具可以做到这一点-看看WebPageTest中的幻灯片工具。

关于衡量实际交付给站点用户(RUM)与综合测试的性能的说法也存在争议。



0

我认为要进行性能测试,可以尝试JMeter。您可以使用内置代理记录测试。它还以本地或分布式文本模式运行。您可以将结果保存为csv或xml格式。如果使用xml格式,则还可以存储页面的内容。


0

对于检查标题,我喜欢httpiedocs)。

安装

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.