JMETER CSS JQUERY EXTRACTOR
我想如果你在这里,你可能已经访问了我们关于变量提取的JMeter系列:
- XPath Extractor:使用XPath Expressions从XML响应中提取内容,
- Regexp Extractor:使用正则表达式提取内容,
- 和Json Path Extractor:使用JsonPath的提取器内容。
还有另一种从服务器响应中提取内容的方法:使用CSS选择器或JQuery选择器。
让我们看看我们如何利用选择器来使用JMeter 提取变量!
了解选择器
由于JMeter的CSS JQuery Extractor支持两种语法,让我们简要解释每一种并指出关键差异。
CSS选择器
CSS选择器是使用以下语法选择元素的模式:
| 选择 | 例 | 选择 |
|---|---|---|
.class |
.intro |
All elements with class="intro" |
#id |
#firstname |
The element with id="firstname" |
* |
* |
All elements |
element |
p |
All <p> elements |
element,element |
div, p |
All <div> elements and all <p> elements |
element element |
div p |
All <p> elements inside <div> elements |
JQuery选择器
JQuery选择器可以像CSS选择器一样,但使用不同的语法:
| 选择 | 例 | 选择 |
|---|---|---|
* |
$("*") |
All elements |
#id |
$("#lastname") |
The element with id="lastname" |
.class |
$(".intro") |
All elements with class="intro" |
.class,.class |
$(".intro,.demo") |
All elements with the class "intro" or "demo" |
element |
$("p") |
All <p> elements |
el1,el2,el3 |
$("h1,div,p") |
All <h1>, <div> and <p> elements |
看看CSS Selectors的不同之处?这只是一个品味问题。使用您最熟悉的语法。
但是,有没有办法轻松获取网页中任何给定元素的CSS选择器?是!
Chrome - 复制CSS选择器
Google Chrome在devtools栏中有一项功能,可让您轻松复制网页中任何元素的css选择器。
让我们看看如何在我们的Petstore演示中做到这一点。
Petstore主页
现在,让我们尝试让CSS选择器中的FISH HTML链接:
- 右键单击FISH链接并选择
Inspect,
检查petstore主页内的FISH链接
它应该打开底部的Chrome开发者工具栏。
- 在源代码的HTML代码中,右键单击元素并选择
Copy > Copy Selector菜单。
复制元素CSS选择器
它应该将选择器复制到剪贴板:#SidebarContent > a:nth-child(1)。此选择器选择侧栏中的第一个链接。
大!现在我们知道选择器是什么以及如何轻松地从网页中提取它们。现在是时候看看JMeter了!
CSS JQuery Extractor
组态
JMeter的CSS JQuery Extractor UI
JMeter的CSS JQuery Extractor具有以下特定配置:
- 参考名称:结果变量的名称,可在后续采样器中使用,具有语法
${foo}(输入时foo), - CSS / JQuery Expression:基本上是我们之前见过的选择器,
- 属性:要提取的元素的属性。示例:
href选择链接时<a href="...">Link</a>, - 匹配Nr:像其他Post处理器一样,
0随机一个,否则索引(从1开始)当多个值可用时, - 默认值:在无法提取内容的情况下放入变量的值。
配置非常类似于XPath,Regexp或Json Extractors。
在哪里放置它
CSS JQuery Extractor是一种JMeter Post处理器。这意味着它必须作为采样器的子项放置。然后针对采样器的采样结果执行提取器。
没有得到它?让我们看一个具体的例子。

这里的提取器位于主页采样器下,这是一个HTTP请求。
现在让我们看看Petstore Demo的具体用法。
具体例子
出于此示例的目的,我们将使用Petstore Demo来模拟以下脚本:
- 访问主页:我们稍后会使用回复,
- 从侧边栏中提取随机链接,
- 访问从侧栏中提取的产品类别页面。
访问主页
第一步是使用HTTP请求查询主页。
HTTP请求到petstore主页
我们将使用收到的服务器响应使用CSS / JQuery Extractor从侧边栏中提取随机链接。
提取随机链接
让我们在主页采样器下放置一个CSS JQuery Extractor。

${path}使用CSS JQuery Extractor 提取变量
在提取后,将被执行的网页取样。我们使用以下配置:
- 创建的变量名称:
path, - CSS / jQuery表达式:
#SidebarContent > a, - 属性:我们
href从链接中选择属性(这是一个相对路径), - 匹配Nr :
0,但可以留空以获得相同的结果。
访问产品类别
产品类别页面位于类似的东西 /actions/Catalog.action?viewCategory=&categoryId=CATS
然后,我们需要使用${path}先前提取的变量添加HTTP请求以访问产品类别页面。
在JMeter中配置HTTP请求采样器
最后,让我们添加一个Debug Sampler来在运行期间显示JMeter变量。
使用JMeter Variables = true调试采样器
和一个View Results Tree监听器来查看结果。
查看结果树UI侦听器
好的,我们准备好运行我们的脚本了!
第一次运行
在第一次运行中我们得到:
path=/actions/Catalog.action;...?viewCategory=&categoryId=CATS
第二轮
而且,在第二轮,我们得到了一些不同的东西:
path=/actions/Catalog.action;...?viewCategory=&categoryId=FISH
我们设法使用CSS / JQuery Extractor模拟随机产品类别选择!
在每次运行时,提取器采用随机链接并提取其href属性。然后,我们将结果${path}变量重新注入HTTP请求。
当然,还有许多其他可能的方法来使用这个提取器。这只是一个简单的例子,可以为您铺平道路,让您快速入门。随意从您自己的JMeter玩它!
性能
与XPath Extractor非常相似,CSS / JQuery提取器也存在同样的缺陷:
- 它通常比Regexp Extractor慢得多,因为它需要将页面转换为DOM文档,
- CPU和内存消耗很高,这使得它不适合重负载测试(但功能测试很好!)
- 使用正则表达式可以轻松执行大多数变量提取。
无论如何,JMeter提供了这种替代方案。在急于使用CSS JQuery Extractor之前,请确保仔细考虑其他选项。
JMETER CSS JQUERY EXTRACTOR的更多相关文章
- Jmeter元件——JSON Extractor后置处理器介绍2
在前段时间将JSON Extractor元件做了个简单的介绍:Jmeter元件——JSON Extractor后置处理器介绍1,今天以一个具体的json,以不同的方式提取数据做个详细的介绍. 一.模拟 ...
- 使用 CSS & jQuery 制作一款漂亮的多彩时钟
大家可能见过各种各样的时钟效果,比如多年前非常流行的 Flash 制作的各种新奇的动画时钟,现在的 Web 开发者们又开始应用 CSS3 和 Canvas 等最新技术来实现.而今天这里要分享的这款漂亮 ...
- 简单实用的下拉菜单(CSS+jquery)
原文 简单实用的下拉菜单(CSS+jquery) 没什么可以说的,直接上例子 html+jquery代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...
- 一个CSS+jQuery的放大缩小动画效果
日期: 2013年9月23日 作者:铁锚 // 今天帮朋友写了一些代码,自己觉得写着写着,好几个版本以后,有点满意,于是就贴出来. // 都是定死了的.因为需求就只有4个元素.如果是要用CSS的cla ...
- css+jquery 实现图片局部放大预览
今天有时间开始动手,使用css+jquery实现了图片局部放大的组件,首先看看效果图: 界面设计思路如下: 1.两个div,左边放图片的缩略图 2.在左边缩略图鼠标移动的时候,区域(效果图中的网格) ...
- PHP 弹窗 源代码 css Jquery.js
// 每个弹窗的标识 var x =0; var idzt = new Array(); var Window = function(config){ //ID不重复 idzt[x] = " ...
- HTML+CSS+jQuery 纵向导航 && 横向导航 && 消除IE6 BUG && 感悟怎样学习
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...
- CSS+jQuery实现轮播
CSS+jQuery实现轮播 CSS jQuery 前端 实现功能: 自动轮播: 鼠标放在上面停止轮播: 鼠标放在上面显示左右切换的按钮: 鼠标放在小圆圈上显示对应的图片: 轮播效果图 style. ...
- 常用[js,css,jquery,html]
目录: 一.javascript事件和属性 二.jquery事件和方法 三.js 四.css 五.html 六.js操作cookies 七.插件 javascript事件和属性 事件 onblur ...
随机推荐
- LOJ2305 「NOI2017」游戏
「NOI2017」游戏 题目背景 狂野飙车是小 L 最喜欢的游戏.与其他业余玩家不同的是,小 L 在玩游戏之余,还精于研究游戏的设计,因此他有着与众不同的游戏策略. 题目描述 小 L 计划进行$n$场 ...
- CSS禁止鼠标事件---pointer-events:none
pointer-events:none顾名思意,就是鼠标事件拜拜的意思.元素应用了该CSS属性,链接啊,点击啊什么的都变成了“浮云牌酱油”.
- 自定义type为file型input控件+该控件具有本地图片预览功能
最近的一个项目需求是写一个type为filex型的input控件,这个控件: 第一,要自定义样式: 第二,要能直接在本地预览上传的图片: 第三,要能检测图片的尺寸是否符合要求. 故综合网上的资源写了下 ...
- GrayCode for state machine
How & Why use Gray Code A gray counter is a binary counter where only one bit changes at a time. ...
- http请求中的get和post的区别
1.标准答案 GET在浏览器回退时是无害的,而POST会再次提交请求. GET产生的URL地址可以被Bookmark,而POST不可以. GET请求会被浏览器主动cache,而POST不会,除非手动设 ...
- shell入门-tr替换字符和split切割大文件
命令:tr 说明:替换字符 格式tr ‘原字符’ ‘新字符’ 可以是范围字符,指定字符 命令:split 选项:-b 50m 1.txt 根据大小分割 单位是b不用单位,单位是兆加m -l 100 ...
- ueditor1.4.3jsp版成功上传图片后却回显不出来与在线管理显示不出图片的解决方案
这是因为路径问题,可以在jsp/config.json这个文件去改路径 通过“imageUrlPrefix”与“imagePathFormat”这两个属性去拼凑路径. “imageUrlPrefix” ...
- .NET生成ICO图标
using System; using System.Collections.Generic; using System.Web; using System.Drawing; using System ...
- [51nod1116]K进制下的大数
解题关键:$A\% (k - 1) = (A[0] + A[1]*k + A[2]*{k^2} + ...A[n]*{k^n})\% (k - 1) = (A[0] + A[1] + ...A[n]) ...
- 8、scala函数式编程
一.函数式编程1 1.介绍 Scala中的函数是Java中完全没有的概念.因为Java是完全面向对象的编程语言,没有任何面向过程编程语言的特性,因此Java中的一等公民是类和对象, 而且只有方法的概念 ...