Linux下数据传输(Socket)服务的测试工具及技巧
futurezone 2012-04-07
一.测试工具
1.ps -u
获取当前运行程序的Pid、cpu、内存占用情况
2.top/htop/free
这三条指令相结合,可以查看程序的内存,cpu使用情况
其中查看内存,以free为主,另外两个为辅
3.lsof |grep "程序名"|wc -l
查看程序创建的fd。进而判断程序的socket连接句柄数
4.lsof |grep "程序名" > 程序名.log
将指定程序的资源使用状态输出到文件中,可以查看其资源具体使用状态;如当前Listen的端口、建立连接的socket
5.pmap pid > 程序名.log
查看程序当前内存使用状态,如线程个数,及每个线程的栈大小
6.valgrind --tool=memcheck --leak-check=yes --log-file=程序名.log 程序可执行命令
对程序进行内存检查,尤其是内存泄露...
7.strace/ltrace -o 程序名.log 程序可执行命令
用来跟踪程序运行时的栈调用,该命令输出内容比较多,而且一般要结合其他工具(如gdb)工具来使用才有效
8.gdb + core文件
首先执行:ulimit -c unlimited
执行程序发生段错误时,生成core文件
gdb 程序可执行命令 core文件;对core文件进行分析,定位段错误
9.tcpdump 【-i lo:用于环路】 【-s 0:不限制包大小】 -w tcpdump.log 【tcp port 3002:过滤语句】
该工具用来根据自己设置的过滤语句,抓取需要的socket通信数据包;
抓取后的数据可以在windows下通过wireshark或者easySpy工具来分析;
二.测试手段
1.测试网络拓补图
可以根据该文档,搭建测试环境
2.测试计划
使得测试过程可控
3.测试用例
预先对测试内容进行规划,可以在测试过程中进行补充、完善
4.QA文档
将测试过程中遇到的问题,想法,建议,bugs都记录在该文档中;
尤其是在团队合作中,该文档可以加强团队成员的合作
5.BugTicket(缺陷分析文档)
将测试过程中的bugs,及发现过程、分析过程、解决过程都记录下来,可以起到积累测试经验的作用
6.仿真工具
可以根据测试需求,编写仿真软件来模拟测试环境
如:编写软件来根据配置生成sql语句,可以通过SQL工具来加快配置管理的过程
编写软件来根据配置生成HTTP接口调用,可以通过文件+httpd的方式来模拟Access服务器的接口调用