最近 Ricky 这边有一个需求,开发说某个接口(暂且认为该接口是:http://test.com/webservice )不是很稳定,所以打算写一个 Linux Shell 脚本来测试其稳定性。该脚本会连续不断地访问接口 1 万次(也可访问一次后间隔多少秒再接着访问)。服务器上运行的操作系统为:CentOS Linux 。
部署:
1、编写脚本,在命令行界面输入:
[root@host ~]# vi /root/url_test.sh
键入小写字母 i ,进入编辑模式,将以下脚本复制粘贴进去(请根据实际需要进行相应地修改):
#!/bin/bash for i in {1..10000}; do code=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://test.com/webservice` echo $code >> url_test.log #sleep 59 done
按一次 ESC 键退出编辑模式,然后键入 “ :wq ” 保存并退出。
这里解释说明一下使用到的 curl 命令:
curl -I -m 10 -o /dev/null -s -w %{http_code} http://test.com/webservice
- -I :只显示请求头信息;
- -m 10 :设置最大传输时间,单位是秒;
- -o /dev/null :屏蔽原有输出信息;
- -s :silent 模式,不输出任何东西;
- -w %{http_code} :控制额外输出。
2、为上述脚本赋予可执行权限,并执行该脚本即可:
[root@host ~]# chmod +x /root/url_test.sh [root@host ~]# sh /root/url_test.sh
3、如果您需要实现这个功能:不是连续不断地访问,而是两次访问之间需要间隔一定的时间,那么请取消掉这一行注释:
#sleep 59
其中 59 为秒,即睡眠 59 秒钟后再接着执行。
分析:
日志文件的内容具体如下所示:
[root@host ~]# cat /root/url_test.log 200 200 200 000 000 200 200 200 200 200 [root@host ~]#
通过使用下列命令来统计我们可以看到,当前一共检测了 10 次,其中网页状态码返回 200 的次数有 8 次:
[root@host ~]# cat /root/url_test.log | wc -l 10 [root@host ~]# cat /root/url_test.log | grep -c 200 8 [root@host ~]#
初步判断还有两次应该是访问超时了。
发表评论?