接口测试工具-jmeter

jmeter 概念

	JMeter就是一款使用JAVA开发的,开源的测试工具。主要用于Web应用的压力测试或功能测试,可以通过编写脚本模拟web操作,进行多线程高并发的HTTP、FTP等请求,从而反映出网站的性能,服务器的可靠性。

jmeter 原理

	向服务器提交请求,并从服务器获取请求返回结果。即建立一个线程池,多线程运行取样器产生大量负载,自运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果

jmeter目录结构

在这里插入图片描述

/ bin目录:
/ examples:存放jmeter使用实例
	ApacheJMeter.jar :Jmeter源码包
	jmeter.sh:启动文件
	jmeter.properties:jmeter配置文件
	jmerter-server:启动负载生成器文件
	jmeter.log:
/ docs目录:帮助文档
/ lib 目录:jar包,插件管理
/ extras 目录:提供对Ant的支持文件,也用于持续集成
/ printable_docs 目录:用户手册

jmeter常用控件

Jmeter体制结构和控件使用

在这里插入图片描述
常用控件

  1. 测试计划
    含义:一个jmx文件只能有一个测试计划,测试计划中可以定义变量(多用于不常变化的数据,例如服务器ip,数据库ip等),引入jar包,编辑测试模式。
    在这里插入图片描述
    run thread groups consecutively:独立运行每个线程组
    run teardown thread groups after shutdown of main threads:主线程结束后运行tear down线程组
    functional test mode:函数测试模式(只有当你需要记录每个请求从服务器取得的数据到文件时才需要选择函数测试模式。选择这个选项很影响性能。)
    在这里插入图片描述可以将本地jar包导入
  2. 线程组
    一个测试计划内可以存在多个线程组。每个线程组之间的变量相互独立。
    在这里插入图片描述
    Name:线程组名称
    Comments:描述/备注
    Action to be taken after a sampler error:取样器错误后执行以下操作
    continue/start next thread group/stop thread/stop test/stop test now:继续/启动下个线程/停止线程/停止测试/立刻停止
    thread properties:线程属性
    number of threads(users):线程数量
    ramp-up period(in seconds):线程启动间隔时间
    loop count:循环次数
    scheduler configuration:调度器配置
    duration:持续时间
    startup delay:启动延迟

setup thread group
测试初始化操作,即线程组开始之前执行的内容,用于初始化测试环境,测试数据准备等。
在这里插入图片描述
tear down线程组
测试执行后操作,即线程组执行完成之后执行的内容。可用于清理测试环境,清空测试数据等。
在这里插入图片描述

  1. 测试片段
    Test Fragment 测试片段
    与线程组同级别,但是默认不会执行。只有被模块控制器引用的时候才会执行。
  2. 取样器
    Sampler 取样器(在线程组下add)
    模拟用户操作,向服务器发出http请求、webservice或java请求等。
    在这里插入图片描述
    http请求(Http request)较为常用
    例如:Get方法
    在这里插入图片描述
    post方法:
    在这里插入图片描述
    debug sampler 调试取样器:
    一般只需要改动name,把需要关注的变量填写在name里,多个变量用逗号隔开即可
    在这里插入图片描述
  3. 前置处理器
    取样器请求前执行的操作,可以是获取测试数据,修改参数等。
    在这里插入图片描述
  4. 后置处理器
    请求执行后的处理,常用的是正则表达式提取器和jason提取器
    在这里插入图片描述
  5. 逻辑控制器
    在这里插入图片描述
    if控制器
    根据指定表达式的值决定是否执行该节点下的子节点,默认使用JavaScript的语法进行判断。如果if控制器里的语句为真,则继续执行。为假,不执行。
    Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true
    Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式
    在这里插入图片描述
    Throughput Controller 吞吐量控制器
    控制其下的子节点的执行次数与负载比例分配
    Total Executions:设置运行次数
    Percent Executions:设置运行比例(1~100之间)
    在这里插入图片描述
    常量吞吐量定时器
    如果需要设定固定tps则需要采用常量吞吐量定时器
    target tps设定为持续时间*期望tps
    exp:持续时间为60s期望tps为10 则target tps为600,以次类推计算
    在这里插入图片描述
  6. 配置元件
    在这里插入图片描述
    CSV数据文件设置
    多用于数据读取测试数据
    在这里插入图片描述
    HTTP信息头管理器
    定义信息头,在其覆盖下的所有元件都会使用该信息头
    在这里插入图片描述
  7. 定时器
    类似思考时间,控制取样器的间隔时间。
    在这里插入图片描述
    固定定时器
    固定定时器不计入单个取样器的响应时间,只计入事务控制器的时间。
    在这里插入图片描述
  8. 断言
    判断请求响应值是否正确的控件,常用的是响应断言。
    在这里插入图片描述
  9. 监听
    查看请求执行结果的控件,常用的是察看结果树和聚合报告
    在这里插入图片描述
    察看结果树
    可查看请求响应的结果、请求内容和响应数据。
    可自定义把数据写入 某个文件内,请求很多的时候,可以通过查找功能进行定位查看。
    在这里插入图片描述
    聚合报告
    在这里插入图片描述
    lable: sampler的名字
    样本:每个sampler发出的请求数
    平均值:平均响应时间,默认情况下是单个请求的平均响应时间,如果使用事务控制器,就是指单个事务平均响应时间。
    中位数:50%用户的响应时间
    90%百分位:90%用户的响应时间
    95%百分位:95%用户的响应时间
    99%百分位:99%用户的响应时间
    最小值:最小响应时间
    最大值:最大响应时间
    注:以上单位为ms
    异常%:错误请求所占百分比
    吞吐量:默认表示每秒完成的请求数(TPS)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值