我正在寻找一个工具来从Linux命令行testing一个网站。
从输出结果中,我需要知道http响应(状态码),同时也需要testing下载网站不同元素的时间。
先谢谢你。
你可以用-p选项尝试wget :
wget -p http://site.com
它会告诉你需要多长时间来下载每个元素和每个请求的返回码。
请参阅Apache基准:
Apache基准
这应该给你一个关于你的页面性能的概述。
你可能想看看curl的下列选项:
--write-out – 显示几个时间相关的variables中的任何一个 --trace-time – 在每个跟踪或详细行上加上一个时间戳 --verbose --include – (HTTP)在输出中包含HTTP头。 --trace-ascii <file> – 启用所有传入和传出数据的完整跟踪转储,包括描述性信息 而wget的以下选项:
--timestamping – 打开时间戳 selenium和curl是很好的select取决于你的目标是什么。 另外,我所喜欢的一个实用工具是twill 。 有关更多信息,请访问http://twill.idyll.org/ 。
这是很好的,因为它有它自己的小型专业语言填写表格,validation链接,并检查响应代码。 因为它只是Python代码,所以如果你想要做一些不同的事情,你可以轻松地导入库并自动化你的testing。
使用curl来获取页面的标题,并定时处理
时间curl – 我http://yourpage.com | grep HTTP
在一个while循环中换行,你就可以走了,就像你知道URL一样,你可以检查所有的元素
按照这里的指示尝试命令行工具“围攻”
如果你需要更大的东西然后curl和/或wget,也有selenium
我认为对于运行性能testing,你可以尝试JMeter 。 您可以使用内置代理logging您的testing。 它也运行在文本模式,本地或分布式。 您可以将结果保存为csv或xml格式。 如果使用xml格式,您也可以存储页面的内容。
为了检查标题,我喜欢httpie ( docs )。
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
你select什么工具取决于你想测量什么和网站的复杂性。
如果网站的行为依赖于cookie(例如,用户需要login),那么ab / curl / wget(在其他答案中描述)是不够的。 一个解决scheme是使用http :: recorder / www :: mechanize 。
你所要求的所有数据都在你的web服务器日志中 – 一个简单的awk脚本将以更可读的forms返回它。
基准下载网站的不同元素所需的时间。
这是一个非常糟糕的绩效指标(尽pipe它对于监控生产系统的健康状况非常有用)。 除了庞大/慢速的资源(例如庞大的报告,ISO映像,多媒体文件)之外,对性能的看法与处理单个请求所花费的时间几乎没有关系 – 而且要准确度量这一点非常困难(只需添加% D到你的apache日志似乎解决了这个问题,但忽略了TCP握手,SSL协商,caching效果,DNS查找时间)。
一个更好的解决scheme是使用Boomerang之类的东西 – 但是它运行在一个支持Javascript的浏览器中。 虽然这比一般的HTTP请求提供了一个更好的感知性能指标,但它依赖于浏览器事件来获得性能价值 – 但是,感知性能完全取决于视口渲染所花费的时间(同样有工具可用于这一点 – 看看WebPageTest中的幻灯片工具)。
还有关于衡量实际交付给网站用户(RUM)与合成testing的性能的争论。