压力测试相关操作:
路径:
[map@cq01-testing-map70.vm.baidu.com output]$ pwd
/home/map/qa/lwb/output
2压力测试环境配置
需要建立data目录下面放置自己的词表
3,构建压力测试词表
需要从mysql中拉线上的数据,相关命令是:
mysql -h10.81.32.196 -P5152 -Dns_map_data_new -uwangyuchuan_r -p3DLg15rhSsm0O7Ns -e" select city, phone from t_poi_raw where phone !='' limit 6; " > phone_normal.cibiao
需要注意的是,比如phone字段如果有多个号码的时候有双引号包括,这点在转换为json格式的时候需要特别注意
将mysql导出的文件转换为json格式,注意不要第一行,并且注意格式,是不是存在两个引号等等。本项目中用到的方法是:
首先去除引号
Sed –I ‘s/”//g’ phone_normal.cibiao
之后转化为json格式
cat phone_normal.cibiao | awk 'NR!=1{print "{\"city\":\""$1"\",\"phones\":\""$2"\",\"area\":\"\"}"}' >phone_normal.json
4, 修改conf目录下的testpress.conf文件,修改以下几处:
#压力频率 (req/s)
TEST_REQ_RATE: 1000
修改为模块自己的频率
#发压力线程数
TEST_THREAD_NUM: 100
修改为自己需要的线程
TEST_FILE: ./data/phone_normal.json
#压力数据是否循环,是=1,否=0
修改为自己的词表路径
#HTTP_pressmethod=0,包括HTTP的GET和POST系统级压力请求,要求post的内容是文本格式
#nshead_mcpack_pressmethod=1,是json词表的模块级压力请求
#binary_pressmode=2,是用netbridge dump下来的二进制数据包词表
#cache_pressmode=3
#only_mcpack_pressmode = 4,词表的格式是:包长度+mcpack+包长度+mcpack
#post_mcpack_pressmode = 5,词表的格式是:post+mcpack
TEST_PRESSTYPENAME: 1
根据需要进行修改
#压力的后端服务名称
TEST_SERVICE: testpress
#cache服务配置信息
[..@Service]
Name : testpress
这两处需要保持一致
[...@Server]
IP: 10.81.11.38
Port: 6040
修改ip和端口
5, 前台运行的话
在output目录下面执行:
./bin/testpress ./conf/testpress.conf
后台的话
Nohup ./bin/testpress ./conf/testpress.conf &
6,之后到模块下的log路径(注意不是压力部署换件的log目录)
执行命令 resttime *.log
qps *.log 等等
查看压力是否正常:
1, 查看压力部署环境下的nohup.out文件是不是有非常多,同类型的报错信息
2, 查看模块目录下的log中是否有很多
NOTICE: 05-12 16:10:30: phone_normal * 14956 [ logid:100663319 ][ proctime:total:0(ms) queue:0+rev:0+proc:0+write:0 ][ reqip:10.81.13.172 ][ reqsvr: ][ cmdno: ][ svrname:query ][ errno: ][ ][ param:no city erroraram error result: ][ ]
有的话代表正常