接到一个有关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. LintCode 846.多关键字排序

    LintCode 846.多关键字排序 描述 给定 n 个学生的学号(从 1 到 n 编号)以及他们的考试成绩,表示为(学号,考试成绩),请将这些学生按考试成绩降序排序,若考试成绩相同,则按学号升序排 ...

  2. vue怎么引入外网json文件

    今日吃午饭时,伊万卡前端小妹问了我一个问题."App中有一个模块是用H5做的,其中有一个接口读取的是本地json资源文件,但是这个文件修改时间不定,我又不想每次修改了这个文件再重新发版打个包 ...

  3. mongodb 数据自动备份

    创建Mongodb数据库备份目录 mkdir -p ~/backup/mongod_bak/mongod_bak_now mkdir -p ~/backup/mongod_bak/mongod_bak ...

  4. selenium+java二元素定位

    页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法.  测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 自动化测试步骤 定位元素 ...

  5. Rancher2.0与DataDog集成部署

    目录 一.简要介绍 二.注意事项 三.部署过程 四.运行截图 五.参考链接 一.简要介绍: 看了Rancher中文官网上的一篇关于DataDog部署的文章,自己尝试了一下,没有成功,主要是自己对Dat ...

  6. tcp和udp区别

    1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP ...

  7. 如何让写得html页面自动刷新

    一:新建一个文件夹用vscode打开 二:终端输入npm init 然后一路回车会在文件夹中生成一个package.json文件 三:新建个html,在终端中输入cnpm install -g liv ...

  8. Rails6使用tailwind CSS

    tailwind的特色(在Bootstrap 和vanilla Css之间) https://tailwindcss.com/docs/what-is-tailwind/ Rails6 six版本的R ...

  9. Fragment调用startActivityForResult导致的回调Activity无法获取正确的requestId的问题

    今天遇到了一个问题 从Fragment内调用了startActivityForResult方法设置了requestId是1 但是在Activity内的onActivityResult的回调内 获得的r ...

  10. android -------- RecyclerView的可(多个Item水平,垂直)滚动列表的实现

    RecyclerView的可滚动的列表实现,视图相邻的视图在屏幕上部分或完全可见(水平3个item,第一个和第三个显示一部分,第二个完全显示) 效果如图: 基于RecyclerView完成的(自定义控 ...