精华内容
下载资源
问答
  • 压测报告

    我们RD就是牛逼。我压测确实没咋遇到过啥问题,谁让我的RD哥哥们优秀呢

    性能测试报告


    新旧版本平均耗时对比 大于2ms需要Review

     

     

     



    压测报告

    • VSS(virtual set size)虚拟耗用内存(包含共享库占用的内存)
    • RSS(Resident set size)实际使用物理内存(包含共享库占用的内存)
      •   RSS是进程实际驻存在物理内存的部分的大小。因为一个进程执行不需要把整个进程都全部驻存到物理内存。RSS是最常用的内存指标,表示进程占用的物理内存大小。但是,将各进程的RSS值相加,通常会超出整个系统的内存消耗,这是因为RSS中每个进程都包含了各进程间共享的内存,因此存在重叠部分
      •   VSS是一个进程的总的大小。只有当进程执行且整个进程都驻存到物理内存时才RSS=VSS
    • PSS(Proportional set size)实际使用的物理内存(比例分配共享库占用的内存)
    • USS(Unique set size ) 进程独自占用的物理内存(不包含共享库占用的内存)
      •   与RSS相比,PSS会更准确一些,它将共享内存的大小进行平均后,再分摊到各进程上去
      •   USS则是PSS中自己的部分,它只计算了进程独自占用的内存大小,不包含任何共享的部分

     

    rss

     

    vss

     

    cpu

     

     

     

     

     

     

     

    warning日志分析

     

    Fail的case分析

    展开全文
  • Jmeter压测报告

    2020-10-30 20:35:42
    账户分析压测报告 一、测试内容 本次测试是针对账户分析进行的压力测试,在账户分析查询接口中,只对用户资产查询接口进行压力测试,其中不包含用户签名校验功能。 二、测试方法 本次采用apache的开源测试工具...

                                                                        

    一、测试内容

           本次测试是针对账户分析进行的压力测试,在账户分析查询接口中,只对用户资产查询接口进行压力测试,其中不包含用户签名校验功能。

    二、测试方法

           本次采用apache的开源测试工具jmeter,采用本地动态拼装请求数据并通过http协议GET方式发送每日盈亏查询请求。并采用1000个用户账号测试访问情况。

    三、测试目标

    1. 测试单机部署情况下最大TPS值
    2. 测试单机性能(内存,CPU)占用情况

    四、测试环境

    环境

    操作系统

    cpu

    内存

    客户端

    Win10

    2核

    4GB

    服务端

    CentOS 7.6

    24核

    24GB

    五、系统部署服务

    5.1、业务服务部署情况

                 

    5.2、业务部署后没有任务调度,空转情况资源使用情况

    Cpu使用率

    内存使用(MB)

    缓存Buffer(MB)

    空闲内存(MB)

    0.2%

    11725

    9590

    2581

     

    5.3、账户分析执行业务调度【行为分析空转】后资源使用情况

    Cpu使用率

    内存使用(MB)

    缓存Buffer(MB)

    空闲内存(MB)

    20%

    12533

    9591

    1771

    六、网络访问

    Jmeter请求->中台(nginx)->账户分析测试服务器->大数据集群

    七、性能测试结果与分析

    将账号数据存放在csv文件中,通过读取csv数据作为参数,请求接口

    7.1、jmeter集群压测(100进程-每个进行200线程

    7.1.1 测试样例 100*200

     

    7.1.2、聚合报告

    7.1.3时间响应结果图

    7.1.4 结果分析

    7.1.5 资源使用情况

     

    7.2、jmeter集群压测(50进程-每个进行300线程

    7.2.1 测试样例

    7.2.2、聚合报告

    7.2.3时间响应结果图

    7.2.4 结果分析

    7.2.5 资源使用情况

    7.3、jmeter集群压测(100进程-每个进行300线程

    7.3.1 测试样例

    7.3.2、聚合报告

    7.3.3时间响应结果图

    7.3.4 结果分析

    7.3.5 资源使用情况

    7.4、jmeter集群压测(500进程-每个进行300线程

    7.4.1 测试样例

    7.4.2、聚合报告

    7.4.3时间响应结果图

    7.4.4 结果分析

    7.4.5 资源使用情况

    八、结果汇总

    本次只是针对账户分析其中一个接口进行测试,忽略掉本地签名,以及签名校验。资源使用情况统计如下:

     

    并发数

    样本

    平均值

    中位数

    90%百分比

    95%百分比

    99%百分比

    最小值

    最大值

    异常%

    吞吐量/sec

    Cpu使用率%

    内存使用

    MB

    200

    20000

    450

    21

    909

    1774

    6920

    0

    63044

    0.66%

    250.1

    6.6

    21.4

    300 

    30000

    689

    37

    1347

    3007

    10064

    0

    107461

    1.17

    200.5

    7.3

    21.4

    300

    15000

    1245

    640

    3110

    4425

    9784

    0

    46924

    0.12

    205.7

    21.1

    21.4

    500

    126000

    1098

    125

    2126

    4588

    15330

    0

    233023

    1.98

    256.3

    23.2

    21.2

     

    结论:

         (1)、300个进程之后客户端卡死。

         (2)、500并发的时候,执行到12.6w时阻塞,吞吐量较低,样本数未执行完毕。

         (3)、由压测结果来看,性能最好是在并发200的时候,吞吐量与并发数基本持平。

    备注:为保证弹性,业务稳定,需要预留20%内存

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • Activemq压测报告

    2016-03-29 13:40:18
    本文档包含了持久性、非持久性、异步同步和多topic下的所有压测数据,非常清晰的分析了各种压测数据,并且根据原理分析结果的合理性
  • 活动压测报告

    2019-11-30 13:21:12
    jmeter有个递进加压的工具: 可参考:... 性能测试需要: ...1.容量预估:包括机器,DB,redis等 ...2.业务分析:业务级别,按照访问路径去预估流量比例 3.数据预估:一般会预估2年内,业务发展...

     

     

     

     

     

     

     

    jmeter有个递进加压的工具:

    可参考:https://blog.csdn.net/weixin_39444878/article/details/86520358

     

     

    性能测试需要:

    1.容量预估:包括机器,DB,redis等

    2.业务分析:业务级别,按照访问路径去预估流量比例

    3.数据预估:一般会预估2年内,业务发展的需求,有一个长远的设计要求

                       接口量级预估,接口量级对应的db的操作,redis的操作;(这几点都要区分读操作和写操作)

                      测试隔离数据(影子表等方式/大的偏移)

    4.线下:通过线下机器测试,在线上执行(一般读写分开)

    5.应急方案:

    (1)降级方案:一般按照总请求量在超过一个阈值(一般按照预估的系统承受能力)来看,

    (2)日志:核心和非核心,一般要删除非核心的日志,也是接口优化的一部分;

    (3)第三方:如果有依赖第三方的情况,压测的时候需要考虑第三方的压力;

    (4)回滚方案:压力过大的时候有切流等方案;

    ps:活动时候,有必要时候也要优化下接口本身的性能,减少db操作

     

    展开全文
  • Desc Jmeter入门,及脚本编写、与数据库交互、生成压测报告分析性能 文章目录Jmeter学习总结文档一、Jmeter简介二、Jmeter的下载安装(Windows)三、BadBoy录制脚本四、使用代理录制Jmeter脚本五、JMeter 的主要...

    Jmeter学习总结文档

    Author xiuhong.chen

    Date 2018/3/23

    Desc Jmeter入门,及脚本编写、与数据库交互、生成压测报告分析性能

    一、Jmeter简介

    jmeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台。多数情况下是用作压力测试,功能上来说,整个平台实现了许多和互联网相关的网络测试组件,同时还保留着很强的扩展性方便用于一些非标准的测试场景。

    JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。

    jmeter像LoadRunner一样,它也提供了一个利用本地Proxy Server(代理服务器)来录制生成测试脚本的功能。同时我们也可以使用Badboy录制生成 JMeter脚本。

    下边我们就从Jmeter的下载安装、脚本录制、主要测试组件介绍、基本功能使用这几方面简单介绍:

    二、Jmeter的下载安装(Windows)

    1)下载地址: http://jmeter.apache.org/download_jmeter.cgi

    2)将下载的Jmeter文件解压,打开/bin/jmeter.bat

    修改 /bin/jmeter.properties 文件的属性: sampleresult.default.encoding=UTF-8 (防止乱码)

    在这里插入图片描述

    3)配置环境变量(前提是电脑上已经安装有JDK 具体步骤不做介绍)

    4)其他平台安装Jmeter,与Windows平台一致,除入口文件不同,例如linux平台下为/bin/jmeter.sh

    1. 安装之后的目录结构如下:
    • /bin 目录(常用文件介绍)

      • examples:目录下包含Jmeter使用实例
      • ApacheJMeter.jar:JMeter源码包
      • jmeter.bat:windows下启动文件
      • jmeter.shLinux下启动文件
      • jmeter.log:Jmeter运行日志文件
      • jmeter.properties:Jmeter配置文件
      • jmeter-server.bat:windows下启动负载生成器服务文件
      • jmeter-server:Linux下启动负载生成器文件
    • /docs目录——Jmeter帮助文档

    • /extras目录——提供了对Ant的支持文件,可也用于持续集成

    • /lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录(jmeter引入的jar包都是放在该目录下)

    • /licenses目录——软件许可文件,不用管

    • /printable_docs目录——Jmeter用户手册

    三、BadBoy录制脚本

    Badboy是一款不错的Web自动化测试工具,如果你将它用于非商业用途,或者用于商业用途但是安装Badboy的机器数量不超过5台,你是不需要为它支付任何费用的。也许是一种推广策略,Badboy提供了将Web测试脚本直接导出生成JMeter脚本的功能,并且这个功能非常好用,也非常简单。

    Badboy 下载地址http://www.badboy.com.au/

    image.png

    录制过程如下:

    1. 启动badboy

    2. 在地址栏中输入你需要录制的Web应用的URL—这里我们以http://blog.csdn.net/a1786223749为例

    3. 开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中。不过你将看到,录制下来的脚本并不是一行行的代码,而是一个个Web对象——这就有点像LoadRunner的VuGen中的Tree View视图

    4. 录制完成后,点击工具栏中的“停止录制”按钮,完成脚本的录制

    5. 选择“File-> Export to JMeter”菜单,填写文件名“login_mantis.jmx”,将录制好脚本导出为JMeter脚本格式。也可以选择“File -> Save”菜单保存为Badboy脚本;

    6. 启动JMeter并打开刚刚生成的测试脚本

    四、使用代理录制Jmeter脚本

    参考如下链接:

    https://www.cnblogs.com/Lam7/p/5461604.html (IE浏览器)

    https://www.cnblogs.com/tester808/p/6619129.html (Chrome浏览器)

    五、JMeter 的主要测试组件

    • 测试计划: 是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
    • 线程组: 代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,被线程组包含。
    • 监听器: 负责收集测试结果,同时也被告知了结果显示的方式。
    • 逻辑控制器: 可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
    • 断言: 可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
    • 配置元件: 维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
    • 前置处理器和后置处理器: 负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
    • 定时器: 负责定义请求之间的延迟间隔。

    具体每个控件的作用参考:https://www.cnblogs.com/ceshisanren/p/5639895.html(博客非常详细,强烈推荐)

    六、Jmeter的逻辑控制器

    1)简单控制器(Simple Controller): 分组功能,不具备逻辑控制

    2)循环控制器(Loop Controller):指定其子节点运行的次数,可以使用具体的数值(如下图,设置为5次),也可以使用变量

    • Forever选项:勾选上这一项表示一直循环下去
    • 如果同时设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的子节点运行的次数为两个数值相乘的结果。

    3)仅一次控制器(Once Only Controller):作用:在测试计划执行期间,该控制器下的子结点对每个线程只执行一次,登录场景经常会使用到这个控制器。

    注意:将Once Only Controller作为Loop Controller的子节点,只执行一次;

    若线程组循环次数为5,循环控制器循环次数为3,Once Only Controller作为Loop Controller的子节点,此时执行5次。

    4)ForEach控制器(ForEach Controller):ForEach控制器一般和用户自定义变量一起使用,其在用户自定义变量中读取一系列相关的变量。该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值

    参数:

    • Input Variable Prefix:输入变量前缀
    • Output variable name:输出变量名称
    • Start index for loop(exclusive):循环开始的索引(这里如果不填写,默认从1开始,如果没有1开始的变量,执行时会报错)
    • End index for loop(inclusive):循环结束的索引
    • Add"__“before number:输入变量名称中是否使用”_"进行间隔。

    5)事务控制器(Transaction Controller):会产生一个额外的采样器,用来统计该控制器子结点的所有时间

    6)If 控制器(If Controller):根据给定表达式的值决定是否执行该节点下的子节点,默认使用javascript的语法进行判断 如:“aaa”==“aaa”

    参数:

    • Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)
    • Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式

    7)Switch控制器(Switch Controller):Switch控制器通过给该控制器中的Value赋值,来指定运行哪个采样器。有两种赋值方式:

    • 第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素。
    • 第二种是直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。

    当Value为空时,默认执行第1个子节点元素。

    8)吞吐量控制器(Throughput Controller):制其下的子节点的执行次数与负载比例分配,也有两种方式:

    • Total Executions:设置运行次数
    • Percent Executions:设置运行比例(1~100之间)

    七、JMeter 聚合报告Aggregate Report

    AggregateReport 是 JMeter常用的一个 Listener,中文被翻译为“聚合报告”。如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一行数据,共有10个字段,含义分别如下。

    • Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name属性的值

    • Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

    • Average:平均响应时间——默认情况下是单个Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

    • Median:中位数,也就是 50% 用户的响应时间

    • 90% Line:90% 用户的响应时间

    • Min:最小响应时间

    • Max:最大响应时间

    • Error%:本次测试中出现错误的请求的数量/请求的总数

    • Throughput:吞吐量——默认情况下表示每秒完成的请求数(Requestper Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction perSecond 数

    • KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

    八、Demo – 以查询天气为例

    下边以查询天气为例,写一个小demo:

    1) 添加虚拟用户组

    如下图所示,右击“测试计划”>添加>Threads(Users)>线程组。这里需要解释一下“线程组”的意思:JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思,换句话说一个线程组就是一组虚拟用户(virtual users),这些虚拟用户用来模拟访问被测系统。

    在这里插入图片描述

    在这里插入图片描述

    接下来介绍下“线程组”中常用到的一些设置。

    • 线程数:这里就是指虚拟用户数,默认的输入是“1”,则表明模拟一个虚拟用户访问被测系统,如果想模拟100个用户,则此处输入100。
    • Ramp-Up Period (in seconds): 虚拟用户增长时长。例如:比如你测试的是一个考勤系统,那么实际用户登录使用考勤系统的时候并不是大家喊1、2、3 - 走起,然后一起登录。实际使用场景可能是9点钟上班,那么从8:30开始,考勤系统会陆陆续续有人开始登录,直到9:10左右,那么如果完全按照用户的使用场景,设计该测试的时候此处应输入40(分钟)* 60(秒)= 2400。但是实际测试一般不会设置如此长的Ramp-Up时间,原因嘛,难道你做一次测试要先等上40分钟做登录操作?一般情况下,可以估计出登录频率最高的时间长度,比如此处可能从8:55到9:00登录的人最多,那这里设置成300秒,如果“线程数”输入为100,则意味着在5分钟内100用户登录完毕。
    • 循环次数:该处设置一个虚拟用户做多少次的测试。默认为1,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。如果选中“永远”,则意味着测试运行起来之后就根本停不下来了,除非你把它强制停止。
    2)添加被测页面取样器

    接下来的一步就是要加入实际被测页面,右击“线程组” > “添加” > “Sampler” > “HTTP请求”。

    在这里插入图片描述

    接下来需要设置一下“HTTP请求” Sampler的属性,如下所示:

    • 名称:输入“GetCityCode”,就是被测试网页的描述性文字
    • 服务器名称或IP:被测服务器的网站名字,也可以是IP地址。剩下的属性可以按照被测系统的属性按需配置

    img

    点击保存按钮,然后点击测试按钮

    在这里插入图片描述

    测试跑完了其实是看不到反应的, 可以去“选项” > “Log Viewer”看看运行的日志。如果你还是看不到日志,你可以点击下面所示的三角箭头展开或者收起日志视图。日志视图中可以看到“线程组 1-1”的启动和结束时间,表明测试已经跑完。

    在这里插入图片描述

    如果测试发现出现问题了, 我们可以通过监听器来观察结果

    3)添加结果监听器

    如下图所示,右击“线程组” > “监听器” > “察看结果树”来查看性能测试过程中请求和响应信息。添加完毕后,保存测试脚本,再次运行。
    点击运行按钮,测试完毕之后,点击“察看结果树” > “GetCityCode”

    在这里插入图片描述

    到这里。 我们已经成功运行起来了。

    4)响应断言

    就是判断Reponse是否正确, 断言要放在请求内

    右键HTTP请求–>添加–>断言–>响应断言, 在测试的模式框内输入希望返回的结果
    响应断言有不同的模式匹配规则, 如包括 匹配 Substring 否 或者
    在这里插入图片描述

    5)添加断言结果

    右键线程组–>添加–>监听器–>断言结果, 可以查看是否满足期望的结果
    在这里插入图片描述

    6)添加用户自定义变量

    我们还可以在Jmeter中定义变量。“添加–配置元件–用户定义的变量” 比如我定义一个变量叫 city=武汉. 使用它的时候用 ${city}
    然后在Http Request中使用这个变量
    在这里插入图片描述

    运行结果如下: 返回结果和断言中的期望结果上海不一致,所以failed
    在这里插入图片描述

    7)添加关联–正则表达式提取器

    所谓关联, 就是第二个Requst, 使用第一个Request中的数据

    我们需要在第一个Http Requst 中新建一个正则表达式,把Response的值提取到变量中,提供给别的Http Request 使用

    选择第一个Http Request, 右键 Add -> 后置处理器 -> 正则表达式提取器

    • 正则表达式: (\d{9}?) 是匹配城市编码, 这个参数将在getWeather中使用到
      • 模板中: 11代表匹配第一个值
    • 匹配数字: 0代表随机 1代表唯一一个

    在这里插入图片描述

    选择第二个Http Request , 在路径中使用第一个request中提取出来的数据, 也可以作为发送参数使用

    在这里插入图片描述

    查看结果如下, 由于正则表达式是随机匹配的城市编码,此处查询出来的是洛阳的天气,结果如下:

    在这里插入图片描述

    8)添加 JSON提取器

    Json提取器是用于在一组数据对象中提取任意一个作为下一个请求的参数传入。

    右键–>添加–>后置处理器–>JSON Extractor

    • Variable names:变量名,可以在后续请求中使用
    • JSON Path expressions: json表达式。如:$.rows[*]是获取一个dto对象$.rows[*].headerId可以获取任意对象的Id
    • Match No: 0表示随机,1表述取第一个
    • Default Values:表示请求结果为空,json提取出的结果也为空时,设置的默认值

    image.png

    9)BeanShell Preprocessor 前置处理器

    请求执行之前处理数据,然后再传递给所在的request。主要用于处理解析json数据,拼接字符串等。

    • 将fastjson.jar 拷贝到 jmeter lib 文件夹下后重启 jmeter
    • 在Sampler上面添加后置处理器–>BeanShell PostProcessor

    纯java语言处理数据。后置处理器类似。

    image.png

    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    
    //获取变量  company是其他请求查询出的结果或者自定义变量
    String json = vars.get("company");
    JSONObject jso = JSON.parseObject(json);
    vars.put("companyName",jso.getString("description"));
    vars.put("companyCode",jso.getString("segmentValue"));
    
    String json2 = vars.get("soa");
    JSONObject jso2 = JSON.parseObject(json2);
    vars.put("soaCode",jso2.getString("segmentValue"));
    vars.put("soaName",jso2.getString("description"));
    

    image.png

    九、Jmeter发送请求的三种传参类型 content-type

    1)application/x-www-form-urlencoded

    默认的。如果不指定content-type,默认使用此格式。

    参数格式:key1=value1&key2=value2

    2) application/json

    参数为json格式

    {

    “key1”:“value1”,

    “key2”:“value2”

    }

    3)multipart/form-data

    上传文件时使用的参数类型

    image.png

    4)设置参数

    添加信息头管理器,设置即可。

    image.png

    十、Jmeter之上传excel文件

    需要设置的参数如下:

    • 文件名称:设置为文件路径,注意“/”和“\”的区别
    • 参数名称:即后台接收文件的参数名称
    • MIMIE类型:即文件的打开方式类型,根据上传文件扩展名不同,MIME类型不同。可以参考:http://www.w3school.com.cn/media/media_mimeref.asp

    image.png

    image.png

    十一、JMeter 分布式性能测试

    1) JMeter分布式执行原理
    • 调度机(Controller):主要负责性能测试脚本的分发,及各个执行机(Agent )的测试结果收集汇总,报告产出。
    • 执行机(Agent ):主要负责执行性能测试脚本及断言等(命令行模式执行,无界面),并将执行结果反馈给调度机(Controller),若断言执行成功则不返回请求响应数据及详细断言信息。
    2) Jmeter分布式测试配置

    作为一个纯JAVA 的GUI应用,JMeter 对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。不过,JMeter 也可以像 LoadRunner 一样通过使用多台机器运行所谓的 Agent 来分担 Load Generator 自身的压力,并借此来获取更大的并发用户数。需要做一下配置:

    • 在所有期望运行 JMeter作为 Load Generator 的机器上安装 JMeter,并确定其中一台机器作为 Controller,其他的机器作为 Agent。然后运行所有 Agent 机器上的JMeter-server.bat文件——假定我们使用两台机器 192.168.0.1 和 192.168.0.2 作为Agent;

    • 配置Agent服务器远程启动端口

      修改Agent配置文件:JMETER_HOME/bin/jmeter.properties 中如下信息即可完成配置执行机远程启动端口(默认为 1099)

      server_port=1664

      server.rmi.localport=1664

    • 在Controller 机器的 JMeter安装目录下找到 bin 目录,再找到 JMeter.properties这个文件,使用记事本或者其他文字编辑工具打开它;

    • 在打开的文件中查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1”。其中的127.0…0.1 表示运行 JMeterAgent 的机器,这里需要修改为“remote_hosts=192.168.0.1:1664,192.168.0.2:1664”——其中的1664 为 JMeter 的Controller 和 Agent 之间进行通讯的默认 RMI 端口号;

    • 保存文件,并重新启动 Controller 机器上的 JMeter.bat,并进入Run -> Remote Start 菜单项。

    具体操作也可以参考这个文章: https://www.cnblogs.com/puresoul/p/4844539.html

    十二、Jmeter连接Oracle数据库

    首先将classes12.jar或者ojdbc14.jar放在 jmeter/lib 目录下, 重启jmeter; 然后打开jmeter,点击测试计划, 引入jar包

    image.png

    1. 新建一个 Thread Group线程组;

    2. 右键线程组–>添加配置原件–>新增 JDBC Connection Configuration;

    3. 点击新增的 JDBC Connection Configuration ,需要修改的参数包括:

    • Variable Name:可以先填一个 Oracle;

    • Validation Query:默认是Select 1,如果是Oracle,需改为Select 1 from dual,否则报错 Cannot create PoolableConnectionFactory (ORA-00923: 未找到要求的 FROM 关键字)

    • Database URL:jdbc:oracle:thin:@IP:1521:实例名 如:jdbc:oracle:thin:@127.0.0.1:1521:XE

    • JDBC Driver class:oracle.jdbc.driver.OracleDriver

    • Username:访问上面Oracle实例的用户名

    • Password:对应的密码

      image.png

    1. 右键线程组–> 新增Sampler—>新增一个 JDBC Request

    2. 点击新增的 JDBC Request,需要修改的参数包括:

    • Variable Name:和上面的 JDBC Connection Configuration填写同样的内容。这里表示 JDBC Connection Configuration建立一个名为Oracle 的连接池,之后其它的JDBC Request都共用这个连接池;

    • Query:select * from table_name 。 这里建议打开你的数据查询工具,输入一条SQL查询语句,保证可以执行看到结果的,然后copy 过来;注意:填写的sql语句未尾不要加“;”

    • Parameter valus:参数值

    • Parameter types:参数类型

    • Variable names:保存sql语句返回结果的变量名

    • Result variable name:创建一个对象变量,保存所有返回的结果

    • Query timeout:查询超时时间

    • Handle result set:定义如何处理由callable statements语句返回的结果

    1. 新增一个View Results Tree(查看结果树);

    2. 点击 Run,查看结果。可以在响应数据中看到到响应的返回结果。

    image.png

    注意事项:

    1. 执行时提示:No Suitable Driver。

      在电脑上搜索一下 classes12.jar 这个文件,然后copy到JMeter的Lib目录下。如果找不到classes12.jar这个文件,就找找classes12.zip文件,然后把扩展名改为jar;

    2. 执行时提示:ORA-00911: invalid character。

      确保你在JDBC Request里面的Query中输入的SQL语句是正确的。

    十三、Jmeter连接mysql数据库

    此处不作介绍, 可以参考官方链接,比较详细: http://jmeter.apache.org/usermanual/build-db-test-plan.html

    十四、生成压测报告

    在压力测试结束时报告

    • 基本命令格式:
    jmeter -n -t <test JMX file> -l <test log file> -e -o <Path to output folder>
    
    • 样例:
    jmeter -n -t F:\PerformanceTest\TestCase\script\getToken.jmx -l testLogFile -e -o ./output
    
    jmeter -n -t G:\结算压测脚本\账单模板定义.jmx -l testLogFile -e -o G:\output
    
    

    b. 使用已有的压力测试CSV日志文件生成报告

    • 基本命令格式:
    jmeter -g <log file> -o <Path to output folder>
    
    • 样例:
    jmeter -g D:\apache-jmeter-3.0\bin\testLogFile -o ./output
    

    image.png

    image.png

    image.png

    十五、问题: 运行结果乱码

    image.png

    修改 /bin/jmeter.properties 文件的属性: sampleresult.default.encoding=UTF-8
    修改之后重启jmeter, 运行结果如下:
    image.png

    image.png

    展开全文
  • 文章目录后台系统后台接口压测报告V1.0测试目的测试内容测试环境测试方法压测工具和指标测试时间统计指标测试结果汇总表接口压测实况图测试结果分析 测试目的 针对uat环境的用户并发量和系统瓶颈,都是未知的。 ...
  • JMeter 压测报告

    千次阅读 2014-12-06 17:39:46
    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计...JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JM
  • 支付宝压力测试报告 时间:2016-03-23测试人员:XXX 目录 支付宝压力测试报告 1 目录 1 一测试内容 2 二测试方法 2 三测试目标 2 四测试环境 2 五系统部署 3 ...六性能测试结果与分析 3 6.1...
  • Jmeter报告解析  1、Aggregate Report 解析  Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”。今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家...
  • Jmeter实战之压测结果聚合报告分析

    千次阅读 2019-05-23 16:01:03
    Jmeter\2018视频教程\第3章 Jmeter核心组件讲解和实战\11、Jmeter实战之压测结果聚合报告分析.mp4 学习内容: 1.新增聚合报告:线程组->添加->监听器->聚合报告(Aggregate Report) 2.执行,查看聚合...
  • LoadRunner 压测场景制定以及报告分析 这里,我们利用 LoadRunner 来制定场景,且以测试 tps 值为导向,主要介绍手工场景  单服务器的业务请求处理能力 tps 值在 10~200 是合理的;如果是访问单接口不走关系型...
  • 先看压测报告表 主要从下面几个维度去找问题: (1)查看错误率是否在可容许范围内。 压测线程一多,肯定会有错误率,就算是一个简单的return 0;也会有响应超时。我们可以判断在这种压力环境下,对应的错误率是否...
  • 概述sysbench是基于LuaJIT的...前面我们已经用sysbench在生产环境做了压测并得到了一些数据,下面主要是介绍怎么来做数据分析。一、压测环境生产环境:MySQL服务器IP地址:xx.xx.xx.xx操作系统:CentOS Linux rele...
  • 新增聚合报告:线程组-&gt;添加-&gt;监听器-&gt;聚合报告(Aggregate Report)  lable: sampler的名称  Samples: 一共发出去多少请求,例如10个用户,循环10次,则是 100  Average: 平均响应时间  ...
  • 概述sysbench是基于LuaJIT的...前面我们已经用sysbench在生产环境做了压测并得到了一些数据,下面主要是介绍怎么来做数据分析。一、压测环境生产环境:MySQL服务器IP地址:xx.xx.xx.xx操作系统:CentOS Linux rele...
  • Jmeter压测思路+实操+报告分析

    千次阅读 2019-07-19 11:55:12
    测试报告分析思路: 1)Error%:确认是否允许错误的发生或者错误率允许在多大的范围内; 2)Throughput:吞吐量每秒请求的数大于并发数,则可以慢慢的往上面增加;若在压测的机器性能很好的情况下,出现吞吐量...
  • 压测结果分析

    2020-11-15 11:28:10
    2、Aggregate Report:聚合报告>请求的响应时间、TPS、% 平均值:平均响应时间,所有请求的平均响应时间 中位数:50%的用户响应时间不超过这个值 99% Line:99%的用户响应时间不超过这个值 Er.
  • RocketMQ性能压测分析

    2016-07-26 10:29:24
    一篇很好的rocketMQ性能测试报告
  • jmeter压测、输出HTML报告,非GUI命令分析 1、jmeter环境配置 启动jmeter 添加线程组、http请求、http请求默认值、察看结果数字段,点击运行,初步测试请求正常,配置如下: 2、在jmeter的路径下,进入bin文件夹,...
  • 需求分析1、在使用阶梯线程进行阶梯递增性能压测过程中,由于聚合报告生成的结果是一个汇总的结果,不会分阶梯模式汇总压测结果,这样导致不能根据生成的聚合报告对比不同阶梯模式下,tps、响应实际、error的变化...
  • 压测工作流程

    2019-12-30 16:43:32
    压测的工作流程大致如右: 明确压测目的,设计压测方案,进行压测的前期准备,监控压测性能指标,分析压测性能瓶颈与调优,编写压测报告。 明确压测目的 在开始压测时,我们需要明确压测的目的,了解本次压测主要的...
  • (1)下载后解压,然后进入到bin目录,记住bin目录都是放启动类的一些目录,约定俗成。 进入bin目录后,输入 ./jmeter 就可以启动...(5)新增汇总报告 (6)点击开始 (7)生成测试结果,可以点击保存到本地自定义目
  • 在使用Jmeter进行压力测试,有两种方式:GUI、非GUI,不管是使用GUI,还是非GUI进行测试,对测试结果都可以转化成HTML的测试报告,更直观和方便我们查看和分析。 方式一:GUI 1、在测试计划里面添加一个Listener...
  • 压测并发导报告导致的内存/CPU占用过高问题解决实践 问题背景: 报告导出采用freemarker组件,在多线程环境下工作,自动化测试以25个用户持续发送导出报告请求,请求数量达到500左右时CPU占用1000+,内存几乎吃满...
  • nmon压测基本流程

    2018-03-21 17:18:00
    制定测试计划、录制脚本、安装nmon、搭建压测场景、执行压测场景、分析报告
  • 搭建jmeter压测监控之grafana

    万次阅读 2020-08-26 11:18:20
    在此之前公司测试团队用jmeter做性能压测压测出来的报告都是用jmeter原生自带的HTML测试报告,虽然对于压测分析来说其实已经足够了,在学过极客时间“性能压测30讲”之后,才接触到jmeter扩展支持的监控体系的强大...
  • 一 官网下载安装包 ... 2解压运行bin目录下的jmeter.bat 3创建测试用例 3.1options中可选择简体中文 ...3.3线程组--添加--根据需要添加如下列表(Http请求,汇总报告,聚合报告,响应时间,信息头) 3.4运行,...
  • 1 在AWR报告中transaction/s 最大支持量。 2

空空如也

空空如也

1 2 3 4 5 6
收藏数 116
精华内容 46
关键字:

压测报告分析