jmeter常用配置元件介绍总结之后置处理器

系列文章目录
安装jmeter

jmeter常用配置元件介绍总结之后置处理器

    • 8.后置处理器
      • 8.1.CSS/JQuery提取器
      • 8.2.JSON JMESPath Extractor
      • 8.3.JSON提取器
      • 8.4.正则表达式提取器
      • 8.5.边界提取器
      • 8.5.Debug PostProcessor
      • 8.6.XPath2 Extractor
      • 8.7.XPath提取器
      • 8.8.结果状态处理器

8.后置处理器

后置处理器在采样器之后才执行

在这里插入图片描述

8.1.CSS/JQuery提取器

功能:主要用于要提取的目标内容是html内容时,如:请求响应消息返回的是html
参数介绍
apply to:设置提取器,提取范围,从哪一部分提取数据

Main sample and sub-samples :匹配当前父级取样器,会覆盖字取样器
Main sample only:默认此选项,匹配当前父级取样器
Sub-samples only:匹配子取样器
JMeter Variable Name to use:在选项的输入框输入jmeter变量名,可以匹配jmeter变量值

提取相关参数配置:
CSS选择器提取器实现:选择提取方式,可以选择JSOUP/JODD,默认JSOUP
引用名称:设置变量名称,将提取到的值给到该变量
CSS选择器表达式:填写css选择器表达式
属性:填写属性名称,则提取对应属性的值,不填写则提取标签的text值
匹配数字(0代表随机):表示取提取到的第几个值,0:随机取值,-1:匹配所有,n:取第n个值
缺省值:设置一个默认值,没有提取到值时,就使用该值

如图提取text文本演示:

在这里插入图片描述
在这里插入图片描述

如图提取属性值演示:

在这里插入图片描述
在这里插入图片描述

8.2.JSON JMESPath Extractor

功能:以JMESPath表达式提取json格式的信息
参数介绍
apply to:同上,CSS/JQuery提取器这里不再详细介绍
Names of created variables:设置变量名称,将提取到的值给到该变量
JESPath expressions:JESPath表达式
Match No. (0 for Random):表示取提取到的第几个值,0:随机取值,-1:匹配所有,n:取第n个值
Default Values:设置一个默认值,没有提取到值时,就使用该值

说明:
JESPath表达式基础介绍(这里只介绍了基本操作还有很多强大的功能):
1.用字段名来选择某一信息,如匹配msg值,就用表达式:msg,来匹配msg对应的值
2.用点·来表示子节点切换到子层级,如要匹配sub_msg值,就需要用到·,就用表达式:msg_all.sub_msg,来匹配sub_msg对应的值,多层则用.切进去即可
3.可以用数组下标取值,如:要取到值“测试2”,就用表达式remsg[1]

{
    "msg": "Business SUCCESS",
    "code": "40004",
    "sub_code": "ACQ.TRADE_HAS_SUCCESS",
    "remsg": [
        "测试",
        "测试2"
    ],
    "msg_all": {
        "out_trade_no": "6823789339978248",
        "sub_msg": "交易已被支付",
        "trade_no": "2013112011001004330000121536"
    }
}

如图演示提取:
在这里插入图片描述
在这里插入图片描述

8.3.JSON提取器

功能:以JOSN Path表达式提取json格式的信息
参数介绍
apply to:同上,CSS/JQuery提取器这里不再详细介绍
Names of created variables:设置变量名称
JSON Path expressions:JOSNPath表达式
Match No. (0 for Random):表示取提取到的第几个值,0:随机取值,-1:匹配所有,n:取第n个值
Compute concatenation var:匹配到多个值时,将多个值拼接起来,然后给设置的变量
Default Values:设置一个默认值

json path表达式基本介绍:
1.用$来表示根
2.用·来表示字节点
3.用[n],来通过下标取值
另外还可以配合一些常用操作符、通配符使用,如:==,>,<,*等
如:
取“测试”这个值:$.msg_all.remsg[0]
取sub_msg的值:$.msg_all.sub_msg
取code的值:$.code

{
    "msg": "Business SUCCESS",
    "code": "40004",
    "sub_code": "ACQ.TRADE_HAS_SUCCESS",
    "msg_all": {
        "out_trade_no": "6823789339978248",
        "sub_msg": "交易已被支付",
        "remsg": [
            "测试",
            "测试2"
        ],
        "trade_no": "2013112011001004330000121536"
    }
}

如图:
在这里插入图片描述
在这里插入图片描述
另外这里介绍一个测试表达式的工具,
如图,在查看结果树中可以选择表达式类型,输入表达式进行测试
在这里插入图片描述

8.4.正则表达式提取器

功能:以正则表达式提取内容信息
参数介绍
apply to:同上,CSS/JQuery提取器这里不再详细介绍
要检查的响应字段:设置从取样器的哪一部分提取内容。
分别表示:

主体:响应体,默认选中,最常用的
Body (unescaped):
Body as a Document
信息头:响应头
Request Headers:请求头
URL:URL
响应代码:响应码
响应信息:响应信息

引用名称:设置变量名称
正则表达式:填写正则表达式

正则表达式基础应用讲解:
():用括号括起来的部分就表示要提取的内容
.:点表示任意字符
+:加表示匹配一次或多次
?:问号表示第一个匹配项找到后停止匹配
:星号表示匹配字符任意次

使用的格式:左边界(.
?)有边界
一般常用的有(.*?)、(.+?)能满足绝大部分情况

模板:设置匹配的字符串模板模板
匹配数字(0代表随机):表示取提取到的第几个值,0:随机取值,-1:匹配所有,n:取第n个值
缺省值:设置一个默认值

{
    "msg": "Business SUCCESS",
    "code": "40004",
    "sub_code": "ACQ.TRADE_HAS_SUCCESS",
    "msg_all": {
        "out_trade_no": "6823789339978248",
        "sub_msg": "交易已被支付",
        "remsg": [
            "测试",
            "测试2"
        ],
        "trade_no": "2013112011001004330000121536"
    }
}

如图提取单个值演示:

在这里插入图片描述在这里插入图片描述

如图提取多个值演示:

在这里插入图片描述
在这里插入图片描述

注意:
1.同时提取多个值时,引用名称只需要设置一个
2.模板提取多少变量就应该设置几个模板,多个模板之间用分隔符隔开
3.提取多个值时通过${变量名+_gn},如:我这里演示的引用第一个值就用${test_g1}依次类推,
4.提取单值,一个引用名、一个模板、直接引用变量名即可
提示:
有个小技巧就是直接复制要提取的内容把要匹配的值换位(.*?),大部分情况可直接使用。
如要提取以上测试内容的:“交易已被支付”
先复制:“sub_msg”:“交易已被支付”,“trade_no”
替换内容:“sub_msg”:“(.*?)”,“trade_no”

8.5.边界提取器

功能:以边界的方式式提取内容信息
参数介绍
apply to和要检查的响应字段就不做过多介绍了文章前面其他元件有介绍
引用名称:设置变量名称
左边界:设置左边界内容,从提取内容开始前的边界
右边界:设置右边界的内容,从提取内容开始后的边界
匹配数字(0代表随机):表示取提取到的第几个值,0:随机取值,-1:匹配所有,n:取第n个值
缺省值:设置一个默认值

在这里插入图片描述
在这里插入图片描述

8.5.Debug PostProcessor

主要用于调试JMeter 属性、取样器属性、系统属性中的参数,在查看结果树中查看返回的值
如图:

在这里插入图片描述
在这里插入图片描述

8.6.XPath2 Extractor

功能:用xpath表达式来提取html内容
参数介绍
引用名称:设置变量名称
XPath query:xpath表达式,xpath语法这里暂时不做介绍
匹配数字(0代表随机):表示取提取到的第几个值,0:随机取值,-1:匹配所有,n:取第n个值
缺省值:设置一个默认值
Return entire XPath fragment instead of text content?:勾选后会连带内容所在的标签也返回来
在这里插入图片描述
在这里插入图片描述

8.7.XPath提取器

功能:用xpath表达式来提取内容
参数介绍
XML Parsing Options:解析的XML参数配置

UseTidy:页面是HTML格式时,选中该选项;如果是XML或XHTML格式,则取消选中
Quiet:只显示需要的HTML页面
Report errors:显示响应报错
Show warnings:显示警告;
Use Namespaces:如果启用该选项,后续的XML解析器将使用命名空间来分辨;
Validate XML:根据页面元素模式进行检查解析;
Ignore Whitespace:忽略空白内容
Return entire XPath fragment instead of text content?:勾选后会连带内容所在的标签也返回来

引用名称:设置变量名称
XPath query:xpath表达式,xpath语法这里暂时不做介绍
匹配数字(0代表随机):表示取提取到的第几个值,0:随机取值,-1:匹配所有,n:取第n个值
缺省值:设置一个默认值
在这里插入图片描述
在这里插入图片描述

8.8.结果状态处理器

功能:主要用来监听取样器执行失败后的结果状态,配置执行失败后执行怎么处理,失败后执行什么动作,如:失败后继续、失败后停止测试等
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/915784.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java Springboot旅游信息推荐系统

一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA 数据库&#xff1a;MySQL8.0…

基础网络安全知识

1.ctfhub技能树 1.1 Web-SQL注入 Web-SQL注入-整数型 && 字符型 && MySQL结构 参考&#xff1a;5.9.6MySql注入 Web-SQL注入-报错注入 step1: 查库名 ?id1 and extractvalue(1,concat(0x7e,database(),0x7e))-- step2: 查看表名 ?id1 and extractvalue(1…

01-Ajax入门与axios使用、URL知识

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

iStore OS 插件的手动安装与特殊卸载

有些插件在iStore 中并没有展示,因此需要手动安装,手动安装无法通过前端彻底卸载,本文提供方法和流程。 1.插件手动安装 1.1地址 github 项目地址根据自己需求选择。本人以x86_64 为主。 https://github.com/AUK9527/Are-u-ok/tree/main/x86 点击后下载得到run安装包 1…

neo4j desktop基本入门

下载安装不在赘述&#xff0c;本文只记述一些neo4j的基本入门操作 连接本地neo4j数据库 1. 点击ADD添加连接 端口一般是7687 账户名和密码忘记了&#xff0c;可以通过neo4j web&#xff08;默认为neo4jneo4j://localhost:7687/neo4j - Neo4j Browser&#xff09;重置密码 AL…

ElasticSearch的Python Client测试

一、Python环境准备 1、下载Python安装包并安装 https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe 2、安装 SDK 参考ES官方文档: https://www.elastic.co/guide/en/elasticsearch/client/index.html python -m pip install elasticsearch一、Client 代…

强化学习入门笔记(Reinforcement Learning,RL) 强推!

由于本人的近期研究方向涉及到强化学习&#xff0c;本科时已经学习过了&#xff0c;但是感觉还是有些概念和算法没有学懂学透&#xff0c;所以想重新系统性的学习一下&#xff0c;记录了整个学习过程&#xff0c;而且对当时没有理解不是特别深刻的内容有了一些更加深刻的理解&a…

redis 原理篇 26 网络模型 Redis是单线程的吗?为什么使用单线程

都是学cs的&#xff0c;有人月薪几万&#xff0c;有人月薪几千&#xff0c;哎&#xff0c; 相信 边际效用&#xff0c; 也就是说&#xff0c; 随着技术提升的越来越多&#xff0c;薪资的提升比例会更大 一个月几万&#xff0c;那肯定是高级开发了&#xff0c; 一个月几千&…

UE4 Cook 从UAT传递参数给UE4Editor

需求 一句Cook的命令如下&#xff1a; ${EnginePath}/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -project${ClientPath}/${ProjectName}.uproject -noP4 -platformIOS -cooksinglepackage -client -clientconfig${CookConfig} -iterate -skipbuild -nocompile -NoMutex…

jmeter基础05_第1个http请求

本节课使用网站“httpbin.org”进行基础的http请求全流程。 请求获取httpbin.org的首页&#xff1a; 请求方法&#xff1a;GET URL&#xff1a;http://httpbin.org 参数&#xff1a;无 1、操作步骤 ① 打开jmeter&#xff1a;命令行窗口输入“jmeter”并回车。 ② 添加线程组…

【Ubuntu24.04】从双系统到虚拟机再到单系统的故事

故事 在大学前期&#xff0c;我使用Ubuntu系统都是为了学习一些命令或者其它Linux的东西&#xff0c;对性能的要求不高&#xff0c;所以选择了虚拟机&#xff0c;后来为了做毕设&#xff0c;选择安装了Ubuntu20.04双系统&#xff0c;因为虚拟机实在带不动&#xff0c;那时我的主…

力扣 LeetCode 18. 四数之和(Day3:哈希表)

解题思路&#xff1a; 需要先弄懂三数之和&#xff0c;思路类似 三数之和&#xff1a;指针 i &#xff0c;left &#xff0c;right 四数之和&#xff1a;指针 k &#xff0c;i &#xff0c;left &#xff0c;right&#xff08;相当于多了一个 k &#xff0c;多了一个外层 fo…

30 秒!用通义灵码画 SpaceX 星链发射流程图

不想读前人“骨灰级”代码&#xff0c; 不想当“牛马”程序员&#xff0c; 想像看图片一样快速读复杂代码和架构&#xff1f; 来了&#xff0c;灵码又加新 buff&#xff01;&#xff01; 通义灵码支持代码逻辑可视化&#xff0c; 可以把你的每段代码画成流程图。 你可以把…

sql注入之二次注入(sqlilabs-less24)

二阶注入&#xff08;Second-Order Injection&#xff09;是一种特殊的 SQL 注入攻击&#xff0c;通常发生在用户输入的数据首先被存储在数据库中&#xff0c;然后在后续的操作中被使用时&#xff0c;触发了注入漏洞。与传统的 SQL 注入&#xff08;直接注入&#xff09;不同&a…

Warped Universe游戏即将在Sui上推出,为玩家提供多样化的游戏体验

Warped Games选择Sui作为其即将推出的创新多类型游戏Warped Universe的首选Web3技术。Warped Universe让玩家可以体验第三视角实时动作、回合制策略和基地建设等玩法。该游戏使用Unreal Engine 5开发&#xff0c;将借助Sui的技术使玩家能够拥有、交易和变现其游戏内资产。 War…

显示微服务间feign调用的日志

第一步 package com.niuniu.common.config;import com.niuniu.common.CommonConstant; import com.niuniu.common.utils.UserContext; import feign.Logger; import feign.RequestInterceptor; import feign.RequestTemplate; import org.springframework.context.annotation.…

nginx部署H5端程序与PC端进行区分及代理多个项目及H5内页面刷新出现404问题。

在项目中会碰见需要在nginx代理多个项目&#xff0c;如果在加上uniapp开发的H5端的项目&#xff0c;你还要在nginx中区分PC端和手机H5端&#xff0c;这就会让人很头大&#xff01;网上大部分的资料都是采用在nginx的conf配置文件中添加区分pc和手机端的变量例如&#xff1a;set…

redis 原理篇 31 redis内存回收 内存淘汰策略

哦哦&#xff0c; 内存满了咋搞 就算过期key 删除&#xff0c;还是不够用&#xff0c; 这种问题没办法&#xff0c;只能了解一下啥解决方案了&#xff0c; 内存是有限的&#xff0c;一直存&#xff0c;肯定会满&#xff0c;这时&#xff0c;咋处理&#xff1f; 首先&#xff…

C++《继承》

在之前学习学习C类和对象时我们就初步了解到了C当中有三大特性&#xff0c;分别是封装、继承、多态&#xff0c;通过之前的学习我们已经了解了C的封装特性&#xff0c;那么接下来我们将继续学习另外的两大特性&#xff0c;在此将分为两个章节来分别讲解继承和多态。本篇就先来学…

[C++11] 包装器 : function 与 bind 的原理及使用

文章目录 functionstd::function 的基本语法使用 std::function 包装不同的可调用对象function包装普通成员函数为什么要传入 this 指针参数&#xff1f;传入对象指针与传入对象实例的区别 例题 &#xff1a;150. 逆波兰表达式求值 - ⼒扣&#xff08;LeetCode&#xff09; bin…