我创build了一个名为“持续时间”的自定义响应头,logging生成响应所用的时间。 而且我只有在提供值为“Get-Duration”的请求标题“Client”时才设置这个标题:
% telnet % telnet> o myhost.com ---request 1 GET /index.html HTTP/1.1 Host: myhost.com Client: Get-Duration -----response 1 HTTP/1.1 200 OK ... Duration: D=123123 ...
使用telnet和上面的“Duration”标题,如何devise和进行testing,以在请求文件时测量Web服务器的性能?
非常感谢GURUs!
你做错了,重新发明轮子。
只需使用curl:
curl -s -H "Client: Get-Duration" -D /dev/stdout -o /dev/null http://www.yoursite.ca | awk '/^Duration: / {print $2}'
如果您的系统仅在执行HEAD请求时才返回正确的持续时间值,则可以简化此操作:
curl -s -H "Client: Get-Duration" -I http://www.yoursite.ca | awk '/^Duration: / {print $2}'
我认为这样的事情会起作用:
#!/bin/sh timeout=10 tracefile=/tmp/.telnettrace HOST=$1 telnet_commands() { tout=${timeout} echo open $1 80 sleep 1 while [ "$tout" -ge 0 ] do if tail -1 $tracefile 2>/dev/null | grep "character" > /dev/null then echo "GET /index.html HTTP/1.1 Host: myhost.com Client: Get-Duration\n" tout=-15 continue else sleep 1 tout=$[$tout-1] fi done tout=${timeout} while [ "$tout" -ge 0 ] do if tail -1 $tracefile 2>/dev/null | grep "^$" > /dev/null then tout=-15 continue else sleep 1 tout=$[$tout-1] fi done } telnet_commands $HOST | telnet |tee $tracefile