jmeter元件分析

一、脚本通用性

1、性能测试脚本改动一下,加入断言等元件,就可以作为接口测试脚本来使用

2、但是接口测试的脚本不可以作为性能测试脚本来使用

3、原因:因为性能测试考虑更多的性能,我们写的性能测试脚本要考虑自身脚本性能,所以一般不会添加过多会影响到脚本性能的jmeter元件,例如GUI图形,聚合报告,断言等,而接口测试脚本只需要考虑功能性,会过多依赖jmeter元件的使用,所以一般jmeter脚本可以用来测试接口,但是接口测试脚本不能用来测试性能。

二、jmeter中性能较差的元件

1、所有beanshell元件

  1.1  这个元件是用来执行Java代码的,而Java请求会对于性能要求比较高。

    1.1.1 怎么执行java代码:jsr223元件,groovy函数,jexl3函数

    1.1.2 beanshell元件性能差的原因是因为它是基于java代码再进行封装的一种脚本语言,beanshell执行时需要转换成java语言,再转换成字节码,所以执行起来会比较慢

  1.2 所以,在性能测试中,能不用beanshell的地方都不用

    1.2.1 可以使用jmeter的元件或函数来替换beanshell实 现的功能。此方法不需要写代码

    1.2.2 可以使用jsr223的元件来替换beanshell元件,通过写代码的方式

2、断言

  2.1 断言是判断实际结果与预期结果是否相同,一般功能测试会进行断言

  2.1 断言一般是由发起方来进行判断,判断需要一定的时间,而这个判断的时间会计算到服务器的响应时间中,从而我们发起下一个请求的频率就会降低。

  2.3 所以,建议在性能测试中不做断言判断,没有断言,服务器返回的结果不准确,但脚本依然会继续运行,服务器依然会当做正常。不会计算到性能测试异常率中,也不会导致异常率偏高。

3、集合点\定时器

  3.1 设定一个时间策略,然后来运行

    3.1.1 时间策略,就是一个关键点

    3.1.2 集合点,也有一个集合的策略,当这个策略不满 足的时候,是不会向服务器发起请求的。

      3.1.2.1 在没有满足集合点策略时候,会导致请求量下降,对服务器造成的压力变小,而当满足集合点策略时的瞬间,又会有大量的请求向服务器发起,从而导致服务器可能瞬间处理不过来而报错。所以,性能测试中,jmeter 不要去用集合点。

4、监听器

  4.1  监听器: 从不同的维度来展示响应数据  

  4.2 有请求发起方去做,通过监听器去做统计分析会导致我们jmeter用于发送请求的资源变少,请求量变少,请求频率也降低。所以也不可以使用

总结:jmeter做性能测试脚本,一定要考虑jmeter脚本本身的性能,尽可 能追求脚本性能的完美,能少用元件就少用,逻辑能简单,尽可能简单

  

  

jmeter元件分析的更多相关文章

  1. Jmeter元件——JSON Extractor后置处理器介绍2

    在前段时间将JSON Extractor元件做了个简单的介绍:Jmeter元件——JSON Extractor后置处理器介绍1,今天以一个具体的json,以不同的方式提取数据做个详细的介绍. 一.模拟 ...

  2. 转 6 jmeter元件的作用域与执行顺序

    6 jmeter元件的作用域与执行顺序   元件的作用域 配置元件(config elements)会影响其作用范围内的所有元件.前置处理程序(Per-processors)在其作用范围内的每一个sa ...

  3. JMeter元件作用域实践指南

    从一个问题说起 对于以下测试脚本: 为了能调用进入房间接口,需要从考场接口获取考场token.为了调用考场接口,需要从登陆接口获取登陆token.元件说明如下: 学生登录,提取登录${token}传入 ...

  4. jmeter元件,作用域与优先级

    jmeter元件,作用域与优先级 一.jmeter元件 1.配置元件:优先级最高 1.1 重点使用元件:csv数据文件设置.用户定义变量.计数器 2.取样器:根据不同协议来编写请求脚本的元件 2.1 ...

  5. jmeter结果分析(图形报表和聚合报告)

    采用Jmeter测试工具对web系统作的负载测试,得出的响应报表,数据比较难懂,现作一具体说明.以下是在一次具体负载测试中得出的具体数值,测试线程设置情况为:线程数:200,等待时间(ramp-up) ...

  6. JMeter元件的作用域与执行顺序

    元件的作用域 先来讨论一下元件有作用域.<JMeter基础元件介绍>一节中,我们介绍了8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器 是典型的不与其它元件发生交互作用 ...

  7. jmeter结果分析详解

    Jmeter测试报表相关参数说明 采用Jmeter测试工具对web系统作的负载测试,得出的响应报表,数据比较难懂,现作一具体说明.以下是在一次具体负载测试中得出的具体数值,测试线程设置情况为:线程数: ...

  8. jmeter元件作用及执行顺序

    jmeter是一个开源的性能测试工具,它可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的父子关系,那么随着它们的顺序和所在的域不同,它们在执行的时候,也会有很多不同. jmeter的test pla ...

  9. Jmeter元件运行顺序

    JMeter执行顺序逻辑如下: 1.配置元件(如果存在) 2.前置处理器(如果存在) 3.定时器(如果存在) 4.取样器(如果存在) 5.后置处理器(如果存在且取样器的结果不为空) 6.断言(如果存在 ...

随机推荐

  1. 文件下载文件名包含中文时,乱码的处理方法(url编解码)

    utf-8/gbk编码 "中"这个汉子的utf-8编码为:E4B8AD gbk编码为:D6D0 urlencode 经过urlencode编码后, %E4%B8%AD %D6%D0 ...

  2. requests库获取图片响应流进行转发

    遇到了一个问题,使用requests进行转发 requests响应流的时候,出现各种问题,问题的描述没有记录,不过Debug以下终于解决了问题.......下面简单的描述解决方案 response = ...

  3. 当一个线程进入某个对象的一个 synchronized 的实例方 法后,其它线程是否可进入此对象的其它方法?

    如果其他方法没有 synchronized 的话,其他线程是可以进入的. 所以要开放一个线程安全的对象时,得保证每个方法都是线程安全的.

  4. 使用 MyBatis 的 mapper 接口调用时有哪些要求?

    1.Mapper 接口方法名和 mapper.xml 中定义的每个 sql 的 id 相同: 2.Mapper 接口方法的输入参数类型和 mapper.xml 中定义的每个 sql 的 paramet ...

  5. 详解AOP——用配置文件的方式实现AOP

    AOP概念 1.AOP:面向切面(方面)编程,扩展功能不修改源代码实现 AOP原理 AOP采用横向抽取机制,取代了传统纵向继承体系重复性代码 传统的纵向抽取机制: 横向抽取机制: AOP操作术语 1. ...

  6. MyBatis Plus 2.3 个人笔记-04-配置文件与插件使用

    接入 springboot application.yml配置 1.mapper 扫描 mybatis-plus: # 如果是放在src/main/java目录下 classpath:/com/you ...

  7. Netty学习摘记 —— 初识编解码器

    本文参考 本篇文章是对<Netty In Action>一书第十章"编解码器框架"的学习摘记,主要内容为解码器和编码器 编解码器实际上是一种特殊的ChannelHand ...

  8. 常用缓存(cache)淘汰算法(LFU、LRU、ARC、FIFO、MRU)

    缓存算法是指令的一个明细表,用于决定缓存系统中哪些数据应该被删去. 常见类型包括LFU.LRU.ARC.FIFO.MRU. 最不经常使用算法(LFU): 这个缓存算法使用一个计数器来记录条目被访问的频 ...

  9. 用纯RUST手撸一个开源流媒体服务(RTMP/HTTPFLV/HLS)XIU

    作者工作目前在音视频流媒体行业,用了大概一年的业余时间学习Rust,并且实现了一个简单的音视频流媒体服务,虽然据说Rust已经连续多年被评为最受程序员喜欢的语言,但是在国内还是比较冷门,作者比较看好R ...

  10. 【前端小技巧】利用border画三角形及梯形

    border是围绕元素内容和内边距的一条或多条线,border 属性允许你规定元素边框的样式.宽度和颜色 值: border-width 粗细 none/hidden/solid/dashed/dot ...