接到一个有关MQTT的性能测试任务,把查找资料到解决问题的过程都记录、分享下

首先先科普下性能测试中相关术语的解释及

说到性能测试、负载测试、压力测试、并发测试,很多人都是混合使用,或者一会叫压力测试,一会叫并发测试。这些概念除了非测试人员分不清楚,甚至许多专业测试人员也对这些名词也很模糊

基准性能测试 ,少量用户进行性能测试,查看相应结果,以此作为一个基准去测试

压力测试,分为轻、中、高三级压力,查看测试过程中,在一定饱和状态下,例如cpu、内存在接近饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现严重问题(如崩溃,死锁,占用资源无法释放,错误率超过预期的指标),

主要是作为查看系统在一定时间端经历较高压力后,再一定时间端内是否能恢复正常

负载测试,通过对被测系统由小到大不断加压,直到性能指标(如:平均响应时间、错误率、CPU/Mem系统资源占用)达到不满足预期的情况。

并发测试,并发测试方法通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。

稳定性测试,在给系统加载一定业务压力的情况下,使系统运行一段时间(如7x24小时),以此检测系统是否稳定。至于给多大的压力,可以参考负载测试的极限压力再乘以80%。

测试过程中分为下面几大点

一、性能测试需求

二、工具插件选型

三、MQTT协议了解

四、性能用例设计

五、性能执行过程监控(nmon)

六、测试结果分析

一、性能测试需求

不管做任何性能测试,首先一定要有一个大概的需求,比如这次我测试的需求就是从MQTT发布消息到服务器处理,最后存入数据库花费时间不能超过3s

需求一般是产品/客户/cto 这类人会提出的要求,总之谁让你测性能,需求来源就从谁那里问

可以参考这位大佬写的,写得蛮详细的,链接附上:https://blog.csdn.net/weixin_40906439/article/details/79124028

一般性能需求点的选取

性能测试点的选取

1.发生频率非常高的(例如:某邮箱核心业务系统中的登录、收发邮件等业务,它们在每天的业务总量中占到90%以上)

2.关键程度非常高的(产品经理认为绝对不能出现问题的,如登录等)

2.资源占用非常严重的(导致磁盘I/O非常大的,例如某个业务进行结果提交时需要向数十个表存取数据,或者一个查询提交请求时会检索出大量的数据记录)

一般的性能需求点:

1、响应速度-比如:API请求的平均响应时间应低于1s, WEB首页打开速度5s以下,web登陆速度 15s以下。

2、服务支持50万个在线用户

3、某接口支持200个用户同时调用(平均3秒调用一次)

3、计费请求成功率达到99.999%以上。

4、在100个并发用户的高峰期,邮箱的基本功能,处理能力至少达到10TPS

5、系统能在高于实际系统运行压力1倍的情况下,稳定的运行12小时

6、这个系统能否支撑200万的vu(每天登录系统的人次)

性能的水很深,今天记录的东西是测试过程中的一个总结,也是查找资料的参考一些大佬写的博客,有不对的地方,欢迎指正

jmeter如何进行MQTT性能测试(测试前期准备一,性能测试需求)的更多相关文章

  1. 性能测试工具JMeter 基础(六)—— 测试元件: 线程组

    线程组的定义: 线程组是测试计划执行的入口,所有的逻辑控制器和取样器都必须在线程组下,其他的元件根据位置的不同作用域是不同的. 线程组是每个线程都是独立运行测试脚本,一个线程组就等于一个用户,通过多个 ...

  2. Windows和Linux的Jmeter分布式集群压力测试

    Windows的Jmeter分布式集群压力测试 原文:https://blog.csdn.net/cyjs1988/article/details/80267475 在使用Jmeter进行性能测试时, ...

  3. [原创] 上海招聘高级测试工程师(性能测试/自动化测试/App测试),长期有效

    [原创] 上海招聘高级测试工程师(性能测试/自动化测试/App测试方向),长期有效 高级测试工程师(性能/自动化方向) 1.负责性能测试计划,性能需求分析,性能测试方案和用例设计,搭建性能测试环境,执 ...

  4. Jemter 压测基础(一)——基本概念、JMeter安装使用、分布式测试、导出测试结果、编写测试报告

    Jemter   压测基础(一) 1.压力测试的基本概念: 1.吞吐率(Requestspersecond) 服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请 ...

  5. Jmeter使用实践-接口diff测试

    Jmeter使用实践-接口diff测试 大多数人都使用 Jmeter 做过性能测试,但是在使用的过程中你会发现,它不仅可以做性能测试和功能测试,还能够满足基本的接口测试需求. 相比其他工具,Jmete ...

  6. Jmeter教程 简单的压力测试

    Jmeter教程 简单的压力测试:http://www.cnblogs.com/TankXiao/p/4059378.html

  7. 使用JMeter进行简单的压力测试

    一.压力测试 顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况). 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速 ...

  8. 转:使用 JMeter 完成常用的压力测试

    使用 JMeter 完成常用的压力测试 就目前 Java EE 的平台下开发的软件来说,这种节点通常可能是:Web 服务器.数据库服务器和 JMS 服务器.它们都是请求主要发生的地点,请求频率较其它的 ...

  9. MQTT 及其 测试工具

    协议说明书:https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/04-OperationalBehavior.html 官网提供了很多的broker模拟 ...

  10. JMeter ----与WebDriver安装与测试

    JMeter ----与WebDriver安装与测试 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 环境与参考 jvm版本: 1.8.0_65 j ...

随机推荐

  1. Git 与 GitHub 简介

    Git 与 GitHub 的来历 Linux 之父 Linus 在 1991 年创建开源的 Linux 操作系统之后,多年来依靠全世界广大热心志愿者的共同建设,经过长足发展,现已成为世界上最大的服务器 ...

  2. linux,vim和bash命令小册

    linux命令 命令 功能 cd old 进入old文件夹 ll -a 当前文件列表(包含隐藏文件) rm -rf old 删除old文件夹(包含子文件夹) mkdir old 新建old文件夹 ps ...

  3. TCGA样本命名详解

    在TCGA中,一个患者可能会对应多个样本,如TCGA-A6-6650可以得到3个样本数据: TCGA-A6-6650-01A-11R-1774-07TCGA-A6-6650-01A-11R-A278- ...

  4. Jmeter接口测试实例

    此文章作为工作中用到的jmeter接口测试相关内容简述,方便日后查阅参考,如有理解描述有误之处,欢迎指出. 首先Jmeter环境准备网上有很多教程,在此不多做赘述: 1.接口简述 接口可理解为从客户端 ...

  5. MySQL:(二)

    多表查询-笛卡尔积 对于数据库中 针对于两张表的记录数的所有记录进行匹配,获得笛卡尔积!⚠️笛卡尔积结果是无效的,必须从笛卡尔积中选取有效的数据结果 !!! -- 显示结果就是笛卡尔积,两个表记录乘积 ...

  6. git checkout branch

    git fetch origin feature/banch1:feature/banch1 git checkout feature/banch1 git branch -u origin/feat ...

  7. docker使用笔记

    项目部署时用到了docker,以下分享了我在实践中使用的指令,和对docker一些个人的理解(※和字体加重部分) 本文选择使用网易的镜像源:https://c.163.com/hub#/m/home/ ...

  8. retina屏 适配问题

    物理像素(physical pixel) 一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调度下,每一个设备像素都有自己的颜色值和亮度值. 设备独立像素(density-indepe ...

  9. warmpserver 配置别人能访问自己的项目地址

    1.首先必须给自己的ip和域名地址给别人,绑定hosts  如:10.33.31.20 www.bai.com 2.找到apache 的  httpd.conf  . 用notepadd打开,然后找到 ...

  10. springboot 默认异常处理

    SpringBoot默认有自定义异常处理的体系,在做SpringBoot项目的时候,如果是抛出了运行时异常,springBoot并会对异常进行处理,返回如下异常信息: { "timestam ...