JMETER CSS JQUERY EXTRACTOR

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

还有另一种从服务器响应中提取内容的方法:使用CSS选择器JQuery选择器

让我们看看我们如何利用选择器来使用JMeter 提取变量!

了解选择器

由于JMeter的CSS JQuery Extractor支持两种语法,让我们简要解释每一种并指出关键差异。

CSS选择器

CSS选择器是使用以下语法选择元素的模式:

选择选择
.class.intro All elements with class="intro"
 #id#firstnameThe element with id="firstname"
 **All elements
 elementpAll <p> elements
element,element div, pAll <div> elements and all <p> elements
element elementdiv pAll <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选择器复制元素CSS选择器

它应该将选择器复制到剪贴板:#SidebarContent > a:nth-child(1)。此选择器选择侧栏中的第一个链接。

大!现在我们知道选择器是什么以及如何轻松地从网页中提取它们。现在是时候看看JMeter了!

CSS JQuery Extractor

组态

JMeter CSS JQuery ExtractorJMeter的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处理器。这意味着它必须作为采样器的子项放置。然后针对采样器的采样结果执行提取器。

没有得到它?让我们看一个具体的例子。

JMeter CSS JQuery后处理器

这里的提取器位于主页采样器下,这是一个HTTP请求

现在让我们看看Petstore Demo的具体用法。

具体例子

出于此示例的目的,我们将使用Petstore Demo来模拟以下脚本:

  • 访问主页:我们稍后会使用回复,
  • 从侧边栏中提取随机链接,
  • 访问从侧栏中提取的产品类别页面。

访问主页

第一步是使用HTTP请求查询主页。

HTTP请求主页HTTP请求到petstore主页

我们将使用收到的服务器响应使用CSS / JQuery Extractor从侧边栏中提取随机链接。

让我们在主页采样器下放置一个CSS JQuery Extractor。

HTTP请求主页${path}使用CSS JQuery Extractor 提取变量

在提取后,将被执行的网页取样。我们使用以下配置:

  • 创建的变量名称:path
  • CSS / jQuery表达式:#SidebarContent > a
  • 属性:我们href从链接中选择属性(这是一个相对路径),
  • 匹配Nr : 0,但可以留空以获得相同的结果。

访问产品类别

Petstore产品类别产品类别页面位于类似的东西 /actions/Catalog.action?viewCategory=&categoryId=CATS

然后,我们需要使用${path}先前提取的变量添加HTTP请求以访问产品类别页面。

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之前,请确保仔细考虑其他选项。

转载于:https://www.cnblogs.com/a00ium/p/10386391.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。 JMeter是一个功能强大的性能测试工具,支持多种协议,包括HTTP、WebService和Socket协议。下面是使用JMeter开发这些协议脚本的步骤: 1. HTTP协议脚本开发 (1)创建测试计划:在JMeter中创建一个测试计划,并添加一个线程组。 (2)添加HTTP请求:在线程组下添加一个HTTP请求,并设置请求的URL、请求方法、请求头和请求参数等。 (3)添加断言:可以在HTTP请求中添加一个响应断言,用于验证响应结果是否正确。 (4)运行测试计划:运行测试计划并查看测试结果。 2. WebService协议脚本开发 (1)创建测试计划:在JMeter中创建一个测试计划,并添加一个线程组。 (2)添加WebService(SOAP)请求:在线程组下添加一个WebService(SOAP)请求,并设置请求的URL、请求方法、请求头和请求参数等。 (3)添加断言:可以在WebService请求中添加一个响应断言,用于验证响应结果是否正确。 (4)运行测试计划:运行测试计划并查看测试结果。 3. Socket协议脚本开发 (1)创建测试计划:在JMeter中创建一个测试计划,并添加一个线程组。 (2)添加TCP Sampler:在线程组下添加一个TCP Sampler,并设置请求的IP地址、端口号和请求数据等。 (3)添加响应断言:可以在TCP Sampler中添加一个响应断言,用于验证响应结果是否正确。 (4)运行测试计划:运行测试计划并查看测试结果。 以上就是使用JMeter开发Http/WebService/Socket协议脚本的基本步骤,希望能对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值