言归正传:
1.了解JMeter的接口操作;
2.用JMeter进行接口测试;
3.用JMeter对html/html协议和websocket协议进行压力测试;
JMeter是一个Apache应用程序,一个开源软件,用100%纯Java语言编写。它可以用来模拟服务器、服务器组、网络或对象上的重载,从而测试它们的强度或分析不同负载类型下的整体性能,即使用:来衡量性能。
JMeter测试对象
JMeter可以加载和性能测试许多不同的应用程序/服务器/协议类型:1.web应用或协议:HTTP、HTTPS(Java、NodeJS、PHP、ASP.NET等。);
2.SOAP/REST网络服务;
3、文件传输协议;
4.通过JDBC的数据库;
5.邮件-SMTP、POP3和IMAP
6.TCP协议;
7.Websocket协议等等。
00-1010 1.安装jdk,下载地址:https://www.oracle.com/java/technologies/javase-downloads.html
2.安装JMeter,下载地址:https://jmeter.apache.org/download_jmeter.cgi
下载后,解压。
注意:目前JMeter的最新版本是5.4.1,需要Java 8 (JDK 8)
00-1010 1.解压后在JMeter的文件夹中,找到cjdcc目录,点击jmeter.bat启动JMeter;
2.下面的操作示例是手机号码归属查询;
2.1.免费API地址:https://api.ioser.net/
2.1.手机号码查询API:https://api.ioser.net/phone
操作记录屏幕:
JMeter简单操作
操作故障:
1)在空白测试计划中创建线程组;
2)在线程组中,添加一个http请求;
3)在HTTP请求界面,添加相应的配置,如下图所示:
JMeter接口描述
1)添加一个监听器。这次添加“查看结果树”检查运行结果是否正确。
3.进行压力测试
3.1.设置线程组的配置:
组设置
3.2.设置分布式压力测试
分布式压力测量:一个控制器节点和多个工作节点;
通常控制器节点(运行JMeter GUI[控制测试]的系统)安装在wi中。
ndows上,工作节点则安装linux上,并采用CLI模式运行脚本;备注:控制器节点的机器和工作节点的机器都应该在同一网段;
A、修改工作节点机器的jmeter.properties:
server_port=1234(自定义端口号,避免被占用)
server.rmi.localport=1234(跟上面设置的端口号一致)
server.rmi.ssl.disable=true
B、修改工作节点机器的jmeter-server:
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.50.57(绑定本机ip)
C、 启动工作节点机器上jmeter cjdcc目录下的jmeter-server(jmeter-server.bat for windows),记录ip和port
D、修改控制器节点的机器jmeter.properties:
server.rmi.ssl.disable=true
remote_hosts=192.168.50.57:1234(与工作节点机器上配置的ip、port对应)
备注:若有多个工作节点机器,使用逗号分隔多个ip、port,如remote_hosts=ip1:port1,ip2:port2
E、在控制器节点的机器上,打开测试脚本,启动-->远程启动slave机,可以启动单个工作节点机器或全部启动。
JMeter命令执行脚本
命令执行脚本,可以节约系统资源、便捷快速。
1、一般性执行测试脚本
jmeter -n -t HTTP请求.jmx
2、指定结果文件和日志
jmeter -n -t HTTP请求.jmx -l D:JMeterTestreportresult.csv -j D:JMeterTestreportlog.log
3、工作节点机器上执行脚本
jmeter -n -t D:JMeterTestHTTP请求.jmx -R 192.168.50.57:1234 -l D:JMeterTestreport 1-result.jtl -j D:JMeterTestreport 1-log.log
JMeter压测websocket协议
1、访问https://jmeter-plugins.org/get/ 获取jmeter插件管理器的jar包(jmeter-plugins-manager-1.3.jar);
2、将jmeter-plugins-manager-1.3.jar包放入 jmeter的 lib/ext目录,重启jmeter;
3、添加插件,在工具栏>>>>Options>>>Plugins Manager>>>Available Plugins中搜索"WEBSOCKET" ,使用的"WebSocket Sampler by Maciej Zaleski",勾选并点击下面的Apply and restart jmeter,安装成功后,会自动重启;
4、创建websocket协议
4.1、 Server Name or IP:不需要再添加“ws”;Port Number:端口默认为80;
4.2、关联数据处理
后置处理json格式的数据,即当前的接口返回的数据中在后面的接口中用到,且每次请求后的数据是动态的。
方法处理:后置处理器-->json提取器
根据json路径来提取:$.data.auth.token 或者$.data.auth[0].token
4.3、参数化
参数化的名称格式:${token},其中token为通过json提取器保存的数据名称;
JMeter其他用途
1、可以进行大量造数据;
2、可以进行单个接口的测试,同时测试单个接口的性能情况;