JMETER与它的组件们
JSON提取器与Debug Sampler
我们平时会遇到很多JSON格式的接口返回,我们需要提取参数可以用JSON提取器,同时配合自带的调试器来进行调试。
JSON提取器
Name of created variables:提取的值存放的变量名称
JSON Path expression:表达式,就是刚在在结果树中验证的表达式,可以同时使用多个表达式,用分号隔开
Match No:0 随机 1第一个 -1所有
Compute concatenation var:如果匹配所有时,就将所有值存入变量名_ALL 中
Default Value:提取不到值时默认值
我们使用Dummy sampler来mock一个返回(这里不会可以上一篇)
{
"topic":"mock_api",
"data":{
"errormes":"",
"response":[
{
"name":"A",
"age":18
},
{
"name":"B",
"age":30
}
]
}
}
现在我们来提取age这个字段,这里会分享不同的方法来取值
第一种:一层一层从上至下取age=18这个值
//每一层就是一个".",因为response是个列表,我们去索引为0
$.data.response[0].age
第二种:有条件的筛选name=A的age,使用表达式:[?(@.key == value)]
//$..直接去找response字段,根据表达式去找name是A的age
$..response[?(@.name=="A")].age
第三种:直接根据表达式找,并且可以一次性提取多层多变量
// Result[0]={"name":"A","age":18}
$..[?(@.name=="A")].["age","name"]
// Result[0]=18
$..[?(@.name=="A")].age
效果展示
计数器
然后我们设置不同的线程和循环次数来看看效果
设置线程1,循环3
设置线程2,循环3
设置线程2,循环3,勾选上方计数器中的与每用户独立的跟踪计数器
设置线程2,循环3,勾选上方计数器中的与每用户独立的跟踪计数器 和 在每个线程组迭代上重置计数器
while逻辑控制器、循环控制器、if逻辑控制器和测试活动
这两个我们放在一起,假设我们需要去判断循环的次数大于5就自动跳出循环
while控制器
填入 ${__jexl3("${num}" != "5",)}
循环五次后退出,这里需要注意的是while条件中一般只会使用javaScript或者jexl3(这两个都是在函数助手中查看,辅助编写)
循环控制器+if控制器
勾选上永远,这样就会一直循环(这里勾选上只要是为了和上面while控制器模拟同一个场景,一般不会勾选永远,下面在做if判断,这样太麻烦了)
我们在for循环下面增加if控制器去判断是否满足我们需要的条件,if下面增加一个动作控制器,如果满足if条件就Break,跳出循环
if条件填入 ${__jexl3("${num}" == "5",)}
这样就达到和while相同的效果了
断言
汉化过后断言就很好理解,这里讲一下模式匹配规则:
包括(contains):包含指定的某个或多个字符串,支持正则表达式
匹配(match):完全匹配指定的字符串,判断为成功,支持正则表达式
相等(equals):响应需要完全匹配指定的字符串,不支持正则
字符串(Substring):响应中需要包含指定字符串,不支持正则
否(Not) 和 或者(or):就是对上述判断做的逻辑运算
随机变量
在配置元件中有个随机变量简单好用
HTTP镜像服务器
可以理解做了一个挡板,把我们自己当做服务器,把我们自己收到的请求原封不动的显示出来,方便调试请求
设置好服务器记得点击启动
这时候请求的数据就会全部显示在你面前了
JDBC
JDBC链接数据库
链接数据库我们需要一个链接数据的jar包:https://downloads.mysql.com/archives/c-j/
步骤
1 测试计划中添加上方下载的jar包
4把需要取得值放入变量
value=vars.getobject("resultserial_nos").get(8).get("serial_number");
vars.put(serial_number,value);
同步定时器
同步定时器设置了集合点,达到并发的作用
说到并发绕不开的就是并行:并发其实就是任务切换,而并行就是多个进程同时进行,Jmeter也提供了并发插件这里不做赘述,有兴趣的可以去插件管理内自己下载:Parallel Controller
事务控制器
我们需要去测试几个接口的混合场景下的性能,就需要把几个接口放到一个事务中
stepping Thread Group + jp@gc - Transactions per Second + jp@gc - Response Times Over Time
线程组中有个stepping thread group可以帮助我们不断加压增加线程组数量来查看不同压力下的tps
安装插件: jpgc - Standard Set这里有jp@gc - Transactions per Second可以用这个查看每秒事务处理
纵坐标为TPS横坐标为时间
纵坐标为请求响应时间
友情链接
selenium结合jmeter进行测试
JMETER与它的组件们的更多相关文章
- JMeter学习-005-JMeter 主要组件概要介绍及执行顺序
本文将对 JMeter 主要组件(主要涉及 Threads(Users).Test Fragment.逻辑控制器.配置元件.定时器.前置处理器.Sampler.后置处理器.断言.监听器 十大组件)进行 ...
- JMeter入门(1):JMeter总体介绍及组件介绍
一.JMeter概述 JMeter就是一个测试工具,相比于LoadRunner等测试工具,此工具免费,且比较好用,但是前提当然是安装Java环境: JMeter可以做 (1)压力测试及性能测试: (2 ...
- Jmeter使用笔记之组件的作用域
以前一直使用loadrunner,最近入职新公司后需要使用jmeter,这里把使用过程中出现的一些问题进行总结,同时会和自己使用loadrunner的情况相比较,以后也会不断总结,GO! 一.组件的作 ...
- Jmeter之JDBC类型组件
一.背景 在测试过程中,避免不了与数据库打交道,比如数据的校验.数据的准备或者重置操作,又或者对数据库进行增删改查,基于以上诉求,在Jmeter中是如何实现的呢.可使用JDBC类型组件来实现以上功能操 ...
- 『动善时』JMeter基础 — 32、JMeter察看结果树组件详解
目录 1.察看结果树介绍 2.察看结果树界面详解 3.察看结果树的其他功能 (1)将数据写入文件中 (2)Search功能 (3)Scroll automatically选项 4.总结 1.察看结果树 ...
- jmeter之JDBC类组件
~什么是JDBC?:全称名为Java DataBase Connectivity,(java数据库连接),在jmeter中是一种可以远程操作数据库的一类组件. ~jmeter如何操作数据库?:jmet ...
- 细雨学习笔记:JMeter 的主要测试组件总结
1. 测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器. 2. 线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求.实际的请求内容在Sampler中定义, ...
- jmeter 常用组件详解
1.测试计划(test plan) 描述一个性能测试,包含本次测试所有相关功能 2.threads(users)线程 Setup thread group: 一种特殊类型的线程,可用于执行预测试操作. ...
- JMeter各个基础组件简介
刚从LoadRunner转到JMeter,对JMeter的各种概念比较懵.在这里记录下.欢迎大家关注我的个人微信号:测试杂货铺. JMeter的各个功能都是它的组件来完成或实现的,下面来对JMeter ...
随机推荐
- HEXO-admin安装和使用(汉化版)
hi,大家好,我是KINGWDY,众所周知我用的是hexo,写博文首先要在终端输入hexo n xxxxx,然后打开MWeb PRO开始写md,但是,这很麻烦,就在我一筹莫展之际,我看到了这篇博文-- ...
- 057_末晨曦Vue技术_处理边界情况之强制更新和创建低开销的静态组件
强制更新和创建低开销的静态组件 点击打开视频讲解更加详细 强制更新 如果你发现你自己需要在 Vue 中做一次强制更新,99.9% 的情况,是你在某个地方做错了事. 你可能还没有留意到数组或对象的变更检 ...
- 数据结构与算法【Java】05---排序算法总结
前言 数据 data 结构(structure)是一门 研究组织数据方式的学科,有了编程语言也就有了数据结构.学好数据结构才可以编写出更加漂亮,更加有效率的代码. 要学习好数据结构就要多多考虑如何将生 ...
- 第十四章 二进制部署k8s集群的平滑升级
1.软件包下载 去github上下载较新的Kubernetes软件包https://github.com/ 2.升级说明 升级包括master节点升级和node节点的升级,本章升级至v1.15.12: ...
- LFS(Linux From Scratch)构建过程全记录(一):准备工作
写在前面 本人修学了一门课,名曰<操作系统课程设计>,其任务为基于LFS以编译源代码的方式制作一个基本的Linux操作系统,并且编写在linux下的GUI软件. 本操作系统构建的全过程将分 ...
- itoa与atoi函数
// 自己参考并编写的itoa与atoi函数 // 支持10进制整形,支持16进制整形,支持负数 // 20220228,修复负数字符字符串会转换成正数的bug#include <stdio.h ...
- open-falcon安装配置
1.安装工具 yum install git telnet net-tools tree nmap sysstat lrzsz dos2unix tcpdump ntpdate wget -y 2.对 ...
- kratos v2版本命令行工具使用
使用 下载 go install github.com/go-kratos/kratos/cmd/kratos/v2@latest 查看是否安装成功 kratos -v kratos version ...
- 查询参数和字符串校验:Query_Parameters_and_String_Validations
官方文档地址:https://fastapi.tiangolo.com/zh/tutorial/query-params-str-validations/ # -*- coding: UTF-8 -* ...
- Traefik 2.0 实现自动化 HTTPS
文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247484457&idx=1&sn=35112e98 ...