我想如果你在这里,你可能已经访问了我们关于变量提取的JMeter系列:

还有另一种从服务器响应中提取内容的方法:使用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 Chromedevtools栏中有一项功能,可让您轻松复制网页中任何元素的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的更多相关文章

  1. Jmeter元件——JSON Extractor后置处理器介绍2

    在前段时间将JSON Extractor元件做了个简单的介绍:Jmeter元件——JSON Extractor后置处理器介绍1,今天以一个具体的json,以不同的方式提取数据做个详细的介绍. 一.模拟 ...

  2. 使用 CSS & jQuery 制作一款漂亮的多彩时钟

    大家可能见过各种各样的时钟效果,比如多年前非常流行的 Flash 制作的各种新奇的动画时钟,现在的 Web 开发者们又开始应用 CSS3 和 Canvas 等最新技术来实现.而今天这里要分享的这款漂亮 ...

  3. 简单实用的下拉菜单(CSS+jquery)

    原文 简单实用的下拉菜单(CSS+jquery) 没什么可以说的,直接上例子 html+jquery代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  4. 一个CSS+jQuery的放大缩小动画效果

    日期: 2013年9月23日 作者:铁锚 // 今天帮朋友写了一些代码,自己觉得写着写着,好几个版本以后,有点满意,于是就贴出来. // 都是定死了的.因为需求就只有4个元素.如果是要用CSS的cla ...

  5. css+jquery 实现图片局部放大预览

    今天有时间开始动手,使用css+jquery实现了图片局部放大的组件,首先看看效果图: 界面设计思路如下: 1.两个div,左边放图片的缩略图 2.在左边缩略图鼠标移动的时候,区域(效果图中的网格) ...

  6. PHP 弹窗 源代码 css Jquery.js

    // 每个弹窗的标识 var x =0; var idzt = new Array(); var Window = function(config){ //ID不重复 idzt[x] = " ...

  7. HTML+CSS+jQuery 纵向导航 && 横向导航 && 消除IE6 BUG && 感悟怎样学习

    <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...

  8. CSS+jQuery实现轮播

    CSS+jQuery实现轮播 CSS jQuery 前端  实现功能: 自动轮播: 鼠标放在上面停止轮播: 鼠标放在上面显示左右切换的按钮: 鼠标放在小圆圈上显示对应的图片: 轮播效果图 style. ...

  9. 常用[js,css,jquery,html]

    目录: 一.javascript事件和属性 二.jquery事件和方法 三.js 四.css 五.html 六.js操作cookies 七.插件 javascript事件和属性 事件 onblur   ...

随机推荐

  1. Android模拟器adb命令介绍

    在SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为Android Debug Bridge,就是调试桥的作用 在SDK的Tools文件夹下包含着Android模 ...

  2. FFMPEG(一) 从V4L2捕获摄像头数据

    系列相关博文: FFMPEG(一) 从V4L2捕获摄像头数据 FFMPEG(二) v4l2 数据格式装换 FFMPEG(三) v4l2 数据编码H264 最近在学习FFMPEG,发现网上的很多例子都是 ...

  3. ffmpeg第三方库编译记录

    最近在研究ffmpeg的编译,之前使用的Ubuntu,需要安装虚拟机,非常麻烦,所以后来改研究在Windows平台编译. 一开始遇到很多挫折,参考了网上很多的帖子,但要么不全要么内容已过期,经过我的反 ...

  4. JEECG datagrid 列表检索条件 添加下拉级联功能

    $("#communityId").change( function(){ var id = $(this).children('option:selected').val(); ...

  5. Java中CountDownLatch类的使用

    0.CountDownLatch作用 1) Java api中的解释:一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 2) CountDownLatch可以使J ...

  6. Ajax知识点整理

    一.javascript原生Ajax 1.简介 Ajax是Asynchronous JavaScript+XML(异步JavaScript和XML)的缩写. 该名称诞生于XML还是数据传输首选格式的时 ...

  7. 自定义Panel中添加依赖属性需要注意的问题

    今天帮忙同事调试一个自定义Panel的问题, 很奇怪, 利用Binding可以通过ItemSource来添加控件,但是在Listbox的xaml里添加几个ListboxItem却报异常: Visual ...

  8. 上传下载,使用,commons-fileupload,commons-io来加载上传下载

    导入两个jarcommons-fileupload.jar,和commons-io.jar 在请求中创建核心类 // 1. 创建工厂对象 FileItemFactory factory = new D ...

  9. 对象流demo1----

    对象流demo1: package com.etc.test; import java.io.BufferedInputStream; import java.io.BufferedOutputStr ...

  10. 输出缓存与CachePanel

    缓存的级别 缓存的作用自不必说,提高系统性能最重要的手段之一.上至应用框架,下至文件系统乃至CPU,计算机中各部分设计都能见到缓存的身影.许多朋友一直在追求如何提高Web应用程序的性能,其实最容易被理 ...