普通场景介绍

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. 01- Java概述

    一 Java简介 java语言发展史 发展史简单了解:如下: https://www.jianshu.com/p/a78fcb3ccf63 java语言平台 JavaSE(标准版):可以用户开发普通桌 ...

  2. POJ2226 不错的最小顶点覆盖

    题意:        给你一个n * m 的矩阵,上面有" * " 和 " . " ,让你用少的木板吧所有" * "覆盖,木板宽度是1,长度 ...

  3. 查找和定位Android应用的按钮点击事件的代码位置基于Xposed Hook实现

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80956455 在进行Android程序的逆向分析的时候,经常需要通过Androi ...

  4. Python中对序列数据的汇总(collections模块)

    目录 Counter most_common 对于序列如字符串str.列表list和tuple可以统计里面数据出现的次数.我们使用的是 collections 模块. collections模块的常用 ...

  5. Windows核心编程 第六章 线程基础知识 (上)

    第6章 线程的基础知识 理解线程是非常关键的,因为每个进程至少需要一个线程.本章将更加详细地介绍线程的知识.尤其是要讲述进程与线程之间存在多大的差别,它们各自具有什么作用.还要介绍系统如何使用线程内核 ...

  6. Python数模笔记-(1)NetworkX 图的操作

    1.NetworkX 图论与网络工具包 NetworkX 是基于 Python 语言的图论与复杂网络工具包,用于创建.操作和研究复杂网络的结构.动力学和功能. NetworkX 可以以标准和非标准的数 ...

  7. leetcode 1081

    开始的思路是遍历存储每个字符的所有位置,再进行扫描处理,但是实际操作并没有很熟练,于是在讨论区学习后,有了下面的解法! 首先需要知道不同的字符在字符串中的最后的位置(理论上的最优位置) 然后扫描字符串 ...

  8. 编译课设·CLion到VS踩坑·解决·备忘录

    应试用,VS使用习惯和JB系差别还是蛮大的 打不过他们就加入他们 键位修改 工具-选项 键盘:改keymap 字体和颜色:宋体必改. 自动恢复:自动保存默认3分钟 CMake:自救时可以看一下 键位名 ...

  9. mysql 索引十连问| 剑指 offer - mysql

    以下是结合网上及此前面试时遇到的一些关于mysql索引的面试题. 若对mysql索引不太了解可先翻阅相关文章 大白话 mysql 之深入浅出索引原理 - 上 大白话 mysql 之深入浅出索引原理 - ...

  10. [java] 转型

    A为父类,子类B.C 第20行发生向上转型,a对象调用C覆写过的print()方法 若为A a = new B(); 则调用B覆写过的print()方法 创建对象时使用向上转型,能够统一参数类型(23 ...