Jmeter简介

基础介绍

Jmeter录制脚本的原始是配置一个HTTP代理,然后浏览器通过这个代理访问测试页面从而完成脚本录制。
一、下载安装

jmeter本身不需要安装,需要配置环境变量JDK,然后打开bin文件夹中的jmeter.vbs即可。建议jdk 1.7及以上版本。

基本祖成:

  • 负载发生器:模拟多线程或多进程用户行为
  • 用户运行器:模拟用户行为
  • 资源生成器:测试过程中服务器、负载机的资源数据
  • 报表生成器:查看可视化的结果数据

二、主要概念

  • 测试计划(test plan)
    是测试脚本的根节点。描述一个性能测试,包含本次测试所有相关功能。关于整个测试脚本的基础设置可以在测试计划中设定。
  • 线程(threads)

    setUp Thread Group:
    一种特殊类型的线程,可用于执行预测试操作。即执行测试前进行的定期线程组。
    tearDown Thread Group:
    一种特殊类型的线程,可用于执行测试后动作。即执行测试结束后定期执行的线程组。
    Thread Group:
    添加使用的线程,一个线程组可看作一个虚拟用户组,每个线程为一个虚拟用户。
  • 测试片段(test fragment)
    是一组特殊的线程组,不被执行,除非它是一个模块控制器或者被控制器所引用时才会被执行。
  • 控制器
    有两种控制器:取样器(sampler)和逻辑控制器(Logic Controller)作用:用这些元件驱动处理一个测试(在Thread Group中添加控制器)
    1)取样器

    取样器是性能测试中向服务器发送请求,记录响应数据,记录响应时间的最小单元。jmeter支持多种类型的sampler,不同类型的sampler可以根据设置的参数向服务器发出不同类型的请求。
    2)逻辑控制器

    包含两类元件:一类是Test Plan中sampler节点发送请求的逻辑顺序控制器,常用的有:if controller、switch controller、Loop controller等;另一类是用来组织和控制Sampler节点的,如:Transaction Controller等。
  • 监听器(Listener)

对测试结果进行处理和可视化展示的一系列组件,常用的有图形结果(Aggregrate Graph)、查看结果树(View Results Tree)、聚合报告(Aggregate Report)等。
以上五种元件即可构成一个简单的性能测试脚本

  • 配置元件(Config Element)

    用于提供对静态数据配置的支持。CSV Data Set Config可以将本地数据文件形成数据池(Data Pool);HTTP Request Defaults和TCP Sampler config等类型的元件可以修改sampler的默认数据。

  • 定时器(Timer)

    用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段,jmeter定义了Constant Times、Constant Throughput Tiems等不同类型的Timers。

    throughput:吞吐量

  • 断言(assertions)

    用于检查测试中得到的响应数据等是否符合预期,Assertions一般用来设置检查点,用以保证性能测试过程中的数据交互与预期一致。

  • 前处理器(Pre Processors)

    用于在实际请求发出之前对即将发出的请求进行特殊处理。

    1)HTML Link Parser

    是HTML链接解析器,用于从前一个sampler返回的html页面中按照规则解析连接和表单,再根据此处理器所在的sampler中的规则进行匹配修改,而后该sampler会执行。

  • 后处理器(Post Processors)

    用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据。

JMeter参数化

参数化是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替。

  • 参数化的四种方式及使用场景
参数化方式 使用场景
User Parameters 适用于参数取值范围很小的时候使用
CSV Data Set Config 适用于参数取值范围较大的时候使用灵活性强
User Defined Variables 一般用于Test Plan中不需要随请求迭代的参数设置,如:Host、Port Number
Function Helper Dialog中的函数 可作为其他参数方式的补充,如随机生成的函数
  • User Parameters(用户参数)
    添加路径:Http Request -> Add -> Pre Processors -> User Parameters
    添加之后设置参数名和参数值
    在Http Request中设置请求参数
  • CSV Data Set Config(CSV 数据配置)
    添加路径:Http Request -> Add -> Config Element -> CSV Data Set Config
  • User Defined Varivales(用户自定义变量)
    添加路径:Thread Group -> Add -> Config Element -> User Defined Variables
  • Function Helper Dialog 中的函数
    添加步骤:Tools -> Function Helper Dialog
    选择函数,填写数据要求,点击Generate & Copy to clipboard
    配置取样器中的请求参数:将Function syntax显示的函数信息写入参数值中,eg:${__Random(10,99,random_set)}

测试结果字段

  • Label:定义HTTP请求名称
  • Samples:表示这次测试中一共发出了多少个请求
  • Average:平均响应时长------默认情况是单个Request的平均响应时长,当使用了Transaction Controller时以Transaction为单位显示平均响应时长
  • Median:中位数,50%用户的响应时长
  • 90%Line:90%用户的响应时长
  • Min:访问页面的最小响应时长
  • Max:访问页面的最大响应时长
  • Error%:错误请求的数量/请求的总数
  • Throughput:默认情况下表示每秒完成的请求数(Request per Second)
  • KB/Sec:每秒从服务器端接收到的数据量
相关推荐
测试老哥1 天前
Jmeter测试脚本编写技巧
自动化测试·软件测试·功能测试·测试工具·jmeter·职场和发展·性能测试
易思涯1 天前
【已解决】黑马点评项目jmeter高并发测试中用户数据的生成
jmeter·解决方法·黑马点评
霍格沃兹测试开发学社测试人社区1 天前
软件测试丨性能测试工具-JMeter
软件测试·测试开发·测试工具·jmeter·性能测试
字节程序员2 天前
Jmeter分布式压力测试
分布式·jmeter·压力测试
美团测试工程师2 天前
九大高效的前端测试工具与框架
软件测试·测试工具·jmeter
love静思冥想2 天前
JMeter 使用详解
java·jmeter
互联网杂货铺3 天前
几个常见的Jmeter压测问题
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
ggggyyyyy09283 天前
接口测试-Fidder及jmeter使用
测试工具·jmeter·fiddler·接口测试
明月与玄武3 天前
Jmeter 分布式压测部署--常见坑以及解决方案
分布式·jmeter
字节程序员3 天前
使用JUnit进行集成测试
jmeter·junit·单元测试·集成测试·压力测试