普通场景介绍

1.线程数:并发用户数

2.Ramp-Up时间:启动时间(线程数的准备时间),在这个时间点结束时,所有用户都已运行起来

3.循环次数:每个线程数都要运行的次数。永远 和 调度器一起使用,在调度器时间内,所有线程数都一直运行

****************************************************************************************************

安装插件

把从官网下载jmeter-plugins-manager-1.6.jar (1.6是版本号)插件放在bin\ext文件夹下,重启jmeter,可以在菜单栏的选项 -> plugins manager,点击,进入如下页面。

Installed Plugins是已安装了的插件,Available Plugins是可安装的,Upgrades是已安装但可升级的插件,选择插件,点击右下角的按钮进行安装或更新。

在Available Plugins搜索 " jpgc - Standard Set"并安装,安装成功后,可以在右键->添加->线程(用户) 如下图,多了几个选项

负载测试的两种场景

一、jp@gc - Stepping Thread Group (deprecated) 线程组模拟线程数逐步递增场景

1. This group will start 100 threads:共100个线程

2. First, wait for 0 seconds; Then start 0 threads:  0秒启动0个线程

3.Next, add 10 threads every 30 second, using ramp-up 5 second : 每30秒增加一次线程,即5秒内启动10个线程,并运行30秒

4.Then hold load for 60 seconds:100个线程都启动后运行60秒

5.Finally, stop 5 threads every 1 seconds:每秒停5个线程,100个需要20秒

在这个负载线程组里,除了添加HTTP请求,还有搭配的监听器有

jp@gc - Active Threads Over Time  线程启动状态

jp@gc - Response Time Over Time  响应时间

jp@pc - Transaction per Second  每秒处理事务数

模拟访问某网站的用户递增场景,线程设置保留默认,即前面介绍的,运行后结果如下:

1.如下图,活跃线程趋势,10个线程5秒内启动,然后运行30秒,循环9次,第10次的10个线程启动后,当前即有100个线程,同时运行60秒,然后每秒下线5个线程。

2.如下图,横坐标为运行时间线,纵坐标为响应时间。下图的响应时间不太好看,区间间隔太大,贴近0秒,但突然跳到6秒,对比Active thread (上图)的线程数,在10个用户都启动完并运行30秒的时间内,响应时间突然达到6秒,虽然很快又降下来了,从图的趋势看,该网站在10个用户就有点不稳定了。其实根本原因应该是我网络不稳定的原因导致的,做性能测试不能用WiFi,要连无线,还要跟系统保持在同一网络上,否则数据是很不准的。

行业标准响应时间:0.5秒为最优,1.5秒为可接受,超过2秒性能就很差了。

3.每秒处理事务数,如下图,可以看出有请求是失败的(绿线)。结合响应时间趋势,可以看出响应时间高的时候,处理事务数低,时间低的时候,处理事务数高。能力有限,暂时还看不出其他什么信息

总结:从响应时间趋势图中找到响应时间是1.5秒的运行时间大概在什么时候,找到这个运行时间,对比Active Thread趋势中这个运行时间的线程数是多少,从而得出多少个用户同时使用的性能最佳

行业标准响应时间:0.5秒为最优,1.5秒为可接受,超过2秒性能就很差了。

二、jp@gc - Ultimate Thread Group 模拟阶段性线程递增场景

如下图,,Thread schedule里,一行代表一个阶段,Start Threads Count为启动线程数,Initial Delay为启动时间,Startup time是这个时间内这个阶段的线程数要启动完,Hold load for为线程启动完后持续运行时间,shutdown time是把该阶段所有线程下线。第二阶段的启动时间要晚于等于第一阶段全部结束,以此类推。

运行趋势分析同上面的逐步递增一样分析。

Jmeter- 笔记6 - 负载测试的更多相关文章

  1. AWS EC2+Docker+JMeter构建分布式负载测试基础架构

    目录 概述及范围 前提条件 Part 1: Local setup-本地配置 Part 2: Cloud端基础架构--Infrastructure 总结: 原文链接 @ 概述及范围 本文介绍有关如何使 ...

  2. JMeter笔记4:测试结果-聚合报告的字段说明

    1.Lable :定义 HTTP 请求名称2.Samples :表示这次测试中一共发出了多少个请求3.Average :平均响应时长---默认情况下是单个Request的平均响应时长,当使用Trans ...

  3. 使用JMeter进行Apache Kafka负载测试

    1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...

  4. JMeter进行Apache Kafka负载测试

    1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...

  5. jmeter笔记5

    性能测试是任何分布式或Web应用程序测试计划的重要组成部分.在计划和开发周期中进行性能评价,可以保证交付给客户的应用程序满足客户对于高负载.可用性和可伸缩性的要求.提前确定软件的负载限制可以为适当地进 ...

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

    这篇教程讨论的是JMeter,它是一款基于Java的.集合了几个应用程序.具有特定用途的负载和性能测试工具. 本篇主要涉及的内容: 解释一下JMeter的用途 JMeter的实现方式以及采用的技术 安 ...

  7. Apache JMeter开源压力测试/负载测试工具 2.12 官方最新版

    软件介绍   Jmeter是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试),而且用Jmeter 来测试 Restful API, 非常好用. 如何学 ...

  8. 转:利用ant与jmeter实现负载测试自动化

    性能测试一直以来都是测试领域一个令人争议的话题.测试的参考标准.评判依据及测试的方法选择都很难有一个统一的说法.但无论如何,对于需要能够承受一定压力而运行的程序来说,进行其进行功能和性能测试是一个必不 ...

  9. 开源负载测试工具k6比JMeter更容易的5件事

    k6是GitHub上提供的开源负载测试工具.它是用Go编写的,并运行用JavaScript编写的测试脚本.它受到了开发人员,测试人员和DevOps团队的强烈兴趣,并拥有超过4400名GitHub明星. ...

  10. Jmeter负载测试例子

    通过浏览器操作网站在jmeter录屏控制器显示录屏例子,并且通过这例子模拟多用户(线程)来负载测试. 工具/原料   Jmeter 浏览器 1.先在测试计划创建线程组和录制Case   1 1.1 选 ...

随机推荐

  1. C/C++ 构建系统,我用 xmake

    XMake 是什么 XMake 是一个基于 Lua 的 现代化 C/C++ 构建系统. 它的语法简洁易上手,对新手友好,即使完全不会 lua 也能够快速入门,并且完全无任何依赖,轻量,跨平台. 同时, ...

  2. 1.8.5- input按钮组

  3. 【SpringBoot】SpringBoot2.x整合Shiro(一)

    一:什么是ACL和RBAC: ACL: Access Control List 访问控制列表 以前盛行的一种权限设计,它的核心在于用户直接和权限挂钩 优点:简单易用,开发便捷 缺点:用户和权限直接挂钩 ...

  4. hdu1526 二分匹配+ floyd

    题意: 有N个插座,M个用电器,和K种转换器(每种有无限个),问最少多少个用电器无法充电. 思路 :  总的电器数 减去 电器和插座的最大匹配数 我有的是map去映射每一个串,根据转换器建边,然后跑一 ...

  5. hdu2438 三分

    题意:       给你个90度的转弯,和一辆标准矩形的车,问你这台车能不能拐过去.. 思路:      求出靠近最里侧的那条边所在的直线(这个图形右下角为坐标原点)       y = x * ta ...

  6. 对c语言回调函数的理解

    对于回调函数,可以简单的理解为一种特别的函数调用方法,我们可以对比一下回调函数与普通函数在调用方法上的区别. 1. 普通函数调用 一般为实现方在其函数体执行过程中直接调用. 代码示例: #includ ...

  7. hdu4950 打怪(简单题目)

    题意:       打怪,一开始怪有h滴血,每回合可以让对方减少a滴血,每次打完之后怪会恢复b滴血,每连续k回合之后自己会休息一回合,这一回合怪物依然回血,问是否可以把怪打死. 思路:      比较 ...

  8. 【python】Leetcode每日一题-删除排序链表中的重复元素

    [python]Leetcode每日一题-删除排序链表中的重复元素 [题目描述] 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 . 返回同 ...

  9. Activity,Tasks

    常见的一些Activity的打开方式: //1.拨打电话 // 给移动客服10086拨打电话 Uri uri = Uri.parse("tel:10086"); Intent in ...

  10. opencv——图像遍历以及像素操作

    摘要 我们在图像处理时经常会用到遍历图像像素点的方式,在OpenCV中一般有四种图像遍历的方式,在这里我们通过像素变换的点操作来实现对图像亮度和对比度的调整. 补充: 图像变换可以看成 像素变换--点 ...