xx网关接口测试
测试前必使用Server+Agent,分布式压力方式进行压力测试,并启动相应的端口。
接口测试方法
执行机(slave)配置:
- 启动bin目录下的:meter-server.bat
- 可以自定义端口号:jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888:server_port=1888,server.rmi.localport=1888
调度机配置
修改C:\Program Files\apache-jmeter-2.13\bin目录下的jmeter.properties文件中的remote_hosts=localhost:1099,192.168.27.111:1099,10.10.45.81:1099,10.10.45.20:1099,多台slave之前使用 ‘, ‘ 隔开
-
第一种:非GUI运行
运行方法:cmd->cd <jmeter/bin路径>->jmeter -t "JMS Point-to-Point.jmx" -n -l testresult.csv -r
参数详解:
20180730213149.png第二种:GUI运行
直接运行jmeter.bat
ps
:建议第一种方法运行,由于Jmeter是一个纯JAVA的应用,用GUI模式运行压力测试时,对客户端的资源消耗是相当惊人的,所以在进行正式的压测时一定要使用non-gui模式运行
分布式执行原理
- Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
- 执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
- 执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
注意事项
- 关闭防火墙
- 所有的客户端都在同一个子网内,server也必须在同一子网内如果使用192.x.x.x或者10.x.x.x这样的IP地址
- 确保Jmeter可以访问到server
- 确保各系统的Jmeter版本保持一致,不同版本的Jmeter将不能很好的工作
第一种加密方式
导入包
- 将下面的包,放入安装目录下,lib/ext文件夹下
D:\apache-jmeter-2.13\lib\ext
xxxproxy-jmeter-1.0.0-SNAPSHOT.jar
包略
主要实现的功能是所有字段按照网关的规则进行排序(过滤掉值未为0的字段),并添加上signMsg。
导入xxxProxy Test Plan.jmx
xxxProxy_Test_Plan.jmx
包略
在BeanShell Samppler中添加以下代码
import com.xxxx.xxx.test.xxxxproxy.xxxProxyUtils;
第二种加密方式
BeanShell Sampler中自定义
案例见
dianxinwangguan.jar
对数据库进行压力测试
包括mycat分片压力测试
JDBC_Connection_Configuration.jmx
包略
对JAVA方法进行性能测试
Java请求.jmx
包略
noon
安装
使用
例如:
./nmon -ft -s 10 -c 180
-s 10是每10s监控一次
-c 180 是一共监控180次
10*180=1800秒=30分钟
分析
压测完成后,生成.nmon文件,导入 analyser 工具中(令人折服的excel),生成数据报表