兰州网络推广推广不了,seo排名优化公司价格,杭州市城市建设学校网站,广州建设银行招聘网站一、前言 Jmeter 是 apache 公司基于 java 开发的一款开源压力测试工具#xff0c;体积小#xff0c;功能全#xff0c;使用方便#xff0c;是一个比较轻量级的测试工具#xff0c;使用起来非常简 单。因为 jmeter 是 java 开发的#xff0c;所以运行的时候必须先要安装 …一、前言 Jmeter 是 apache 公司基于 java 开发的一款开源压力测试工具体积小功能全使用方便是一个比较轻量级的测试工具使用起来非常简 单。因为 jmeter 是 java 开发的所以运行的时候必须先要安装 jdk 才可以。jmeter 是免安装的拿到安装包之后直接解压就可以使用同时它在 linux/windows/macos 上都可以使用。 jmeter 可以做接口测试和压力测试。其中接口测试的简单操作包括做 http 脚本发 get/post 请求、加 cookie、加 header、加权 限认证、上传文件、做 webservice 脚本、参数化、断言、关联正则表达式提取器和处理 json-json path extractor和 jmeter 操作数据库等等。 二、安装 
1、下载 Jmeter  解压 
官网地址Apache JMeter - Download Apache JMeter 
Jmeter压测工具使用手册完整版 2、配置 Jmeter 环境变量 
注意是系统变量表里直接添加而不是用户环境变量也不是在Path中。 按下面变量名和变量值配置 Jmeter 系统环境变量 
变量名1    JMETER_HOME变量名1值 D:\Program Files\jmeter\apache-jmeter-4.0jmeter 解压路径变量名2     CLASSPATH变量名2值 % JMETER_HOME\lib\ext\ApacheJMeter_core.jar;% JMETER_HOME%\lib\jorphan.jar;% JMETER_HOME%\lib\logkit-2.0.jar; 3、安装MQTT插件 
Jmeter中不包含Mqtt的测试要单独安装一个Mqtt插件。 3.1、从 GitHub 上下载最新版本插件 mqtt-xmeter-2.0.2-jar-with-dependencies.jar该插件支持 JMeter 3.2 及以上版本。 
地址https://github.com/emqx/mqtt-jmeter/releases 3.2、将插件 jar 包拷贝到 JMeter 的插件目录/lib/ext 4. 启动 Jmeter 解压路径下bin中的    jmeter.bat 三、使用 
关于使用网上有很多链接讲的很全面这里就不赘述了主要参考 
Jmeter 压测工具使用手册完整版 | Server 运维论坛 
JMeter之MQTT请求_jmeter mqtt-CSDN博客   
四、测试思路和解决方法 1. 控制器和配置 在负载压力测试中尽量连接和断开一次使用“仅一次控制器”把线程数和负载长度作为主要参数进行考核。 2. Java堆栈空间不够用 
java: java.lang.OutOfMemoryError: Java heap space 是由于线程过多或者Payload负载过大导致JVM虚拟机内存不够用解决办法就是增加虚拟机内存。右键用记事本打开 jmeter.bat修改-Xms1g -Xmx4g中的数字值他们分别代表最小和最大值为1GB~4GB当然你也可以改小为m兆的单位这要根据你的需求来。以下是我的设置 set HEAP-Xms1g -Xmx4g -XX:MaxMetaspaceSize256m 3. 执行效率 GUI界面是用来配置工程和Debug用的他很耗资源因此一旦配置好后还是采用控制台执行测试比较贴合实际通过以下命令就可以简单启动测试 
jmeter -n -t xxxxx.jmx 
4. 状态异常 java.lang.IllegalStateException: Current state  RESET, new state  FLUSHED 测试中控制台的上述异常是mqtt-xmeter插件的线程池异常不代表测试失败不用管它他会重新启动。我们只需要在控制台注意查看测试信息中的Err是否为0%就好了。再用一个客户端去订阅测试中的Topic看看是否能够接到数据能接到说明测试没有中止。 贴个Mqtt客户端的python代码给你 
pip install paho-mqtt 
import paho.mqtt.client as mqttdef on_connect(client, userdata, flags, rc):print(Connected with result code   str(rc))client.subscribe(test_topic, qos1)def on_message(client, userdata, msg):print(msg.topic     str(msg.payload))client  mqtt.Client()
client.on_connect  on_connect
client.on_message  on_messageclient.connect(xx.xx.xx.xx, 1883, 60)client.loop_forever()