zoukankan      html  css  js  c++  java
  • 性能测试之工具篇-Jmeter

    Jmeter了解这些重点足以

    切勿过度依赖工具,没必要把太多的精力放在工具的学习上

    前言

    1、对测试来说,jmeter应该是大家使用较频繁的测试工具之一,因为其开源、免费、轻量、功能强大,支持很多种协议,除了测功能,还能做自动化和性能测试;

    2、据某机构的调查,性能并发工具中,jmeter市场占有率已经50%+,超过了老大哥loadrunner;

    3、这么一款如此优秀的工具,对测试而言,是必须掌握的;

    4、经常看到群里大家讨论jmeter的各种功能,我发现有些朋友过度使用了一些不必要的功能;其实,jmeter常用的功能并不多,把主要的掌握,基本上就可以搞定90%的需求了,所以,不要把时间耗费在工具不常用的功能上,如果是做性能测试,分析定位调优才是重点

    jmeter常用功能(性能方向)

    从jmeter2.x版本用到现在的5.x,常用的功能也就下面列举的这些,我不详细单讲,因为网上很多介绍

    1、测试计划

    2、线程组

    3、【Sampler】

    HTTP请求:可以参考:测试必备:jmeter测试http协议接口的各种传参方式

    如果是其它协议,比如java、dubbo、websocket、smtp、tcp、jdbc,添加对应的取样器等即可,如果没有,那么就需要我们自己开发,所以,java基础是必备的。(一般都有开发好的开源jar下载放到..libext下即可)

    BeanShell Sampler: 需要java基础

    Debug Sampler:只看到jmeter变量

    4、【逻辑控制器】

    事务控制器

    ForEach控制器、if控制器

    仅一次控制器

    5、【前置处理器】

    BeanShell PreProcessor

    6、【后置处理器】

    正则表达式提取器:关联的方式很多,我喜欢用万能的正则,大家可以参考:jmeter关联的5种方式

    Debug PostProcessor:除了可以看到jmeter变量,还可以看到配置信息,最好放在正则表达式提取器后面,否则看不到提取的结果;

    BeanShell PostProcessor

    7、【断言】

    响应断言

    BeanShell断言

    8、【定时器】

    固定定时器

    高斯随机定时器

    Synchronizing Timer

    9、【配置元件】

    HTTP信息头管理器

    HTTP Cookie管理器

    CSV 数据文件设置:重点

    HTTP请求默认值

    10、【监听器】

    查看结果树

    聚合报告

    11、函数助手

    常用的函数需要掌握,如随机函数、uuid、时间戳等,举例:生成1-1000的随机数,可以通过${__Random(1,1000,key)}生成随机数,通过${key}可以获取这个随机数;

    12、分布式压测

    分布式压测也是需要掌握的,参考:jmeter5.1分布式压测或者jmeter5.0分布式压测

    另外,beanshell相关的,可以参考:玩转jmeter:beanshell必备技能

    jmeter执行顺序

    配置元件 → 前置处理器 → 定时器 → 取样器 → 后置处理器 → 断言 → 监听器;

    同一层级的,顺序执行;

    jmeter最佳实践

    最后,我们来看看官方的最佳实践,英语不好的小伙伴请使用游览器自动翻译

    重点部分:16.7 Reducing resource requirements

    大概意思是:

    Jmeter压测减少资源使用的一些建议,即压测结果会更准确:

    1、使用非GUI模式(也就是CLI,Command Line Interface,命令行界面):jmeter -n -t test.jmx -l result.jtl

    2、少使用Listener, 如果使用-l参数,它们都可以被删除或禁用

    3、在加载测试期间不要使用“查看结果树”或“用表格查看结果”监听器,只能在脚本阶段使用它们来调试脚本

    4、包含控制器在这里没有帮助,因为它将文件中的所有测试元素添加到测试计划中

    5、不要使用功能模式

    6、使用CSV输出而不是XML

    7、只保存你需要的数据

    8、尽可能少地使用断言

    9、如果测试需要大量数据,尤其是需要将其随机化,可以提前准备好测试数据放到数据文件中,从CSV数据集中读取, 这样可以避免在运行时浪费资源

    支持原创-->转自 https://www.cnblogs.com/uncleyong/p/11975786.html

  • 相关阅读:
    Matlab 绘制三维立体图(以地质异常体为例)
    Azure DevOps的variable group实现array和hashtable参数的传递
    Azure DevOps 利用rest api设置variable group
    Azure AADSTS7000215 其中一种问题的解决
    Power BI 实现实时更新Streaming Dataset
    AAD Service Principal获取azure user list (Microsoft Graph API)
    Matlab 沿三维任意方向切割CT图的仿真计算
    Azure Powershell script检测登陆并部署ARM Template
    Azure KeyVault设置策略和自动化添加secrets键值对
    Azure登陆的两种常见方式(user 和 service principal登陆)
  • 原文地址:https://www.cnblogs.com/jiangmingbai/p/12809523.html
Copyright © 2011-2022 走看看