转:基于Jmeter的MQTT测试插件

基于Jmeter的MQTT测试插件-上

1. Jmeter插件简介

Apache JMeter是Apache组织开发的基于Java的压力测试工具。下载
用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

这里我们主要使用的基于Jmeter开发的,测试MQTT协议的插件工具,从github上找到了几个歪果人写的插件,主要有以下几个:

这3个插件都很像,
第1个下载的最多,但是我在使用发现存在bug,弃之。
第2个功能比较简单,只能满足简单的单主题发送。
第3个是作者基于第1个来改的,并且把连接MQTT的客户端换成了最常用的paho java客户端,正好是我项目中使用的,熟悉,功能上虽然没有第1个丰富,但是有源码,改改还是可以适用的。

2. mqttws源码打包

下载解压之后,导入到eclipse中,项目是通过maven构建,如图:

插件的效果图:

下面是具体的构建方法:
在项目上点击右键,Run As->Maven clean->Maven install,在target目录下,将生产一个名为mqttws-jmeter.jar的jar包。
mqttws-jmeter.jar复制到Jmeter的\lib\ext目录下,再将工程ressource目录下的messages.properties文件中相关MQTT的内容复制至Jmeter的\lib\ext目录下ApacheJMeter_core.jar中,

使用解压缩工具打开,路径:ApacheJMeter_core.jar\org\apache\jmeter\resources

注意原作者给出的messages.properties中包含的键值并不全,比如:

mqtt_clean_session= Clean Session
mqtt_publisher=MQTT Publisher
mqtt_itertions=Number of samples to aggregate
mqtt_connection_timeout=Milliseconds to wait for connection
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

此处没有全部列出来,请自行添加吧。

3. 插件使用

  • 添加线程组:添加->Threads(Users)->线程组
    Ramp-Up Period(in seconds):设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒
    钟启动2个线程。如果设置0,为同时启动。
  • 添加发布端:线程组右键,添加->Sampler->MQTT Publisher
    Provider URL:MQTT服务器地址
    List Topic:发布的主题。虽然这里写的是list,但是作者并不支持,后面会讲修改了一下源码,支持多主题发布
    Number of samples to aggregate:一个线程发布相同消息的次数
    throttle:连续发送的消息之间,等待的毫秒数
  • 添加监听器
    图像,表格都行
时间: 2024-08-28 05:57:42

转:基于Jmeter的MQTT测试插件的相关文章

DICOM:基于JMeter+dcm4che2测试PACS服务器性能的解决方案(前篇)

背景: 目前对于传统WEB网站性能(压力/负载)的测试工具有很多,loadrunner.iperf.siege等,操作都比较简单,这里就不介绍了.然而对于医疗领域内的服务器,通常指的是DICOM服务器,提供满足DICOM3.0标准规定的各项DIMSE服务,诸如DIMSE-C(C-STORE.C-FIND.C-MOVE.C-ECHO).DIMSE-N(N-CREATE.N-DELETE)等等.倘若使用传统的压力测试工具会有几大局限性: 常见压力测试工具,通过模拟上千万用户实施并发负载及实时性能监测

基于Jmeter跟Jenkins的自动化性能测试的一站式解决方案(转)

www.MyException.Cn  网友分享于:2015-08-26  浏览:0次 基于Jmeter和Jenkins的自动化性能测试的一站式解决方案 作者: Yu, Qingguo Shen, Vivien Wu,Biyun 背景 性能测试用来保证产品发布后系统的性能满足用户需求,在软件质量保证中起着重要作用.Jmeter是一款广泛使用的性能 测试工具,然而,在执行测试前,用户往往需要花费很多额外的精力和时间配置测试环境.同时在进行测试时,使用单台服务器模拟数以千计的用户对目标服务器产 生负

使用JMeter进行负载测试——终极指南

这篇教程讨论的是JMeter,它是一款基于Java的.集合了几个应用程序.具有特定用途的负载和性能测试工具. 本篇主要涉及的内容: 解释一下JMeter的用途 JMeter的实现方式以及采用的技术 安装与配置 介绍用户界面的基本特征 详细介绍不同的测试计划的配置方法 如何分析结果数据 涉及几个重要的最佳实践 所有的例子都是基于Java 8 update 0.20,Eclipse Luna 4.4, JMeter 2.11, MySQL Community Server 5.6.21的开发环境.那

基于Jmeter和Jenkins的自动化性能测试的一站式解决方案

作者: Yu, Qingguo Shen, Vivien Wu,Biyun 背景 性能测试用来保证产品发布后系统的性能满足用户需求,在软件质量保证中起着重要作用.Jmeter是一款广泛使用的性能测试工具,然而,在执行测试前,用户往往需要花费很多额外的精力和时间配置测试环境.同时在进行测试时,使用单台服务器模拟数以千计的用户对目标服务器产生负载,受限于服务器的性能可能无法满足需求,这就需要一个多台服务器的分布式的并发的测试环境.因此我们决定开发一个基于Jmeter和Jenkins的自动化性能测试的

[软件测试基础3]基于Jemter的压力测试

一.整体目标 安装LAMP待测系统,推荐ECShop,基于此进行Jmeter压力测试,并在测试后得出Jmeter测试报告,并根据sysstat得出Linux服务器的CIMN(CPU,IO,Memory以及Network)的性能. 二.队员分工(need to add...) 三.实验环境: 本实验平台为linux ubuntu操作系统 | firefox浏览器 四.实验步骤: 1.LAMP待测系统的配置安装 (1)查看/修改主机ip 如果是在本机上做测试的话,最好将主机ip设置为127.0.0.

【大话QT之十二】基于CTK Plugin Framework的插件版本动态升级

应用需求: 某些场景下我们可能面临这样的问题,在运行着的应用程序不能终止的情况下,升级某个功能(或添,或减,或修改).在不采用CTK Plugin Framework插件系统架构的情况下这将是很困难的,我们需要停止运行程序,然后在相关代码中作出修改,然后再重新编译,再重新启动我们的程序.而如果是基于CTK Plugin Framework插件系统架构构建的系统,则很容易的实现插件的动态升级.在[大话Qt之四]ctkPlugin插件系统实现项目插件式开发中,我对ctkPlugin做了简单介绍,在次

利用jmeter进行压力测试

1.压力测试的简单讲解 2.压力测试的监控 3.压力问题的简单定位 4.jmeter进行压力测试 1.压力测试的简单讲解 1.什么时候进行压力测试. 基于接口的压力测试,在接口功能测试完成之后就可进行接口的压力测试.如果有接口的依赖关系,各个接口都要完成接口的功能测试之后,再行压力测试 基于业务多场景的综合压力测试,要在所有业务功能测试通过之后进行 2.压力测试的合理性 压力测试结果是否有效,还要看压力环境,举个例子: 测试环境和生产环境硬件配置没可比性,那么测试环境的压力测试毫无意义,测试报告

学习使用Jmeter做压力测试(一)--压力测试基本概念

一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测试,两者可以结合进行. 通过负载测试,确定在各种工作负载下系统的性能,目标是当负载逐渐增加时,测试系统各项性能指标的变化情况.压力测试时通过确定一个系统的瓶颈或者不能接受的 性能点,来获取系统能提供的最大服务级别的测试.性能测试主要包括负载测试.强度测试.容量测试. 二.性能测试的指标 web服务器: Avg Rps: 平均每秒的响应次数 = 总请求数 /

利用Jmeter进行Web测试

JMeter介绍 脚本录制 运行JMeter进行测试 JMeter主要组件介绍 参数化设置 动态数据关联 使用命令行运行JMeter脚本 利用XSLT分析JMeter结果文件 1:JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具.JMeter可以用于测试静态或者动态资源的性能(文件.Servlets.Perl脚本.Java对象.数据库和查询.ftp服务器或者其他资源).原先Jmemer是为Web/HTTP测试而设计的,但是它已经扩展以