Curl+Wireshark抓包脚本一例

发表于:2018-5-29 13:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:牧原    来源:云栖团队博客

  背景信息:
  某网站访问偶发性连接失败,时间点不一样,且不易复现,遂弄个脚本测试,如下
1.#!/bin/bash
2.tcpdump-ianyhostwww.aliyun.comandport80-s0-G60-Zroot-w%Y%m%d-%H%M%S.pcap&
3.whiletrue;
4.do
5.code=$(curl--connect-timeout5-sL-w"%{http_code}"-XPOST"www.aliyun.com"-o/dev/null)
6.now=$(date"+%Y-%m-%d%H:%M:%S")
7.echo$code$now>>./result.txt
8.dumppid=$(ps-ef|grep"tcpdump-iany"|greppcap|awk'{print$2}')
9.if[[$code-ne200]];then
10.sleep5s;
11.kill-9$dumppid
12.break
13.fi
14.sleep60s;
15.done
  注释:
  1,#!/bin/bash是指此脚本使用/bin/bash来解释执行
  2,tcpdump抓包,这里的host写的域名,大多数场景可以写ip+端口,且60秒转储一次抓包文件
  5,设置code的变量,$()等同于``,优先执行的意思,里面的curl大概是设置5秒超时,只获取code,方法是使用POST,
  6,获取当前时间,精确到秒
  7,将http_code以及时间写入当前目录的result.txt
  8,获取tcpdump的pid,以备后面抓到后kill掉
  9,判断code是否不等于200,
  10,不等于200的话sleep5s,
  11,kill掉tcpdump进程,
  12,结束这个循环
  在server端抓包
tcpdump-ianyhostclientipandport80-s0-G60-Zroot-w%Y%m%d-%H%M%S.pcap&
  server端抓clientip的请求80的包,每60秒转储一个文件
  备注:
  磁盘要备有充分的空间,以免空间满导致异常
  扩展:
  判断code不等200的时候,可以去curl一个短信接口,触发短信通知就更美妙了

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号