这是我们最受欢迎的博文,我们添加了更多提取器。这篇文章解释了如何使用正则表达式提取器从第一个请求的响应中提取密钥,并将提取的密钥用于后续请求。我们称之为JMeter Extract并重复使用。

现在您可以使用其他提取器,JSON提取器和Xpath提取器。我们已将此添加到此博客文章的末尾。

您可以使用正则表达式提取器从第一个请求的响应中提取密钥,并将提取的密钥用于后续请求。我们称之为JMeter Extract并重复使用。以下是步骤:

  1. 右键单击第一个请求并添加后处理器:Regular Expression Extractor。

  2. 创建正则表达式并在其他必填字段中提供值。有关更多详细信息,请参阅JMeter组件参考。
  3. 提取的值将保存在作为参考名称给出的变量中。
  4. 您可以在后续请求中使用此变量。

示例测试计划 - JMeter提取和重复使用

我们以OpenWeather API为例,将提取cityid

  1. 让我们假设“按城市当前的天气”是您的第一个要求。响应此请求,它返回城市ID。我添加了一个正则表达式提取器,它将提取城市ID,提取的值将保存在“cityid”变量名中。

  2. “cityid”变量在后续请求中发送。例如,它用于“按城市ID的当前天气”请求。

我们现在已经完成了JMeter提取和重用。

您可以 使用RedLine13上任何移动应用程序,Web应用程序或API的JMX脚本运行  JMeter负载测试。这里有  结果  检查出来。

或者去尝试自己的负载测试

更多提取器 - JMeter提取和重复使用

这个新部分将解释如何使用JSON提取器或Xpath提取器从第一个请求的响应中提取密钥,并将提取的密钥用于后续请求。这也是JMeter Extract和重复使用的一部分。

使用JSON Extractor提取

JSON是一种非常简单的数据格式,它已经超越了  XML  的流行程度。越来越多的  REST API  和服务器使用JSON作为主要数据交换格式。从JMeter 3.0开始,使用JSON后处理器提取器从JSON响应中提取数据要容易得多。JSON后处理器使您可以使用JSON-PATH语法从响应中提取数据。此后处理器与正则表达式提取器非常相似。它必须作为HTTP Sampler的子项或具有响应的任何其他采样器放置。它将允许您以非常简单的方式提取文本内容。有关更多详细信息,请参阅JSONPath语法

为了演示JSON后处理器的使用,让我们使用https://jsonplaceholder.typicode.com/todos/1休息服务,它允许您演示发送请求和获取响应。

如果单击此链接或将粘贴复制到浏览器中,您将看到响应。响应采用JSON格式:

  1. {
  2. “userId” :1 ,
  3. “id” :1 ,
  4. “title” :“delectus aut autem” ,
  5. “完成” :假
  6. }

从上面的响应中,您可以完全使用JSON路径和JSON后处理器来提取userId,id和title。
请按照以下步骤提取值。

使用以下参数添加HTTP请求采样器:

协议: https 
服务器名称或IP: jsonplaceholder.typicode.com 
方法: GET 
路径: / todos / 1

添加JSON后处理器作为HTTP请求采样器的子代:

创建变量的名称: userID 
JSON路径表达式: $ .userId 
匹配号: 1

上面的JSON提取器提取userId并存储在userID中。您可以使用$ {userID}重用此变量。

要了解有关编写JSON路径表达式的更多信息,请参阅http://goessner.net/articles/JSONPath/index.html#e2

使用XPath Extractor解压缩

XPath定义为  XML路径。 它是使用XML路径表达式在网页上查找任何元素的语法或语言。XPath用于使用HTML DOM结构查找网页上任何元素的位置。为了演示XPath提取器的使用,让我们假设我在JMeter中的一个HTTP请求有以下响应:

  1. <div class = “container” >
  2. <h2>选择您的出发城市:</ h2>
  3. <form action = “reserve.php” method = “post” >
  4. <select name = “fromPort” class = “form-inline” >
  5. <option value = “Paris” >巴黎</ option>
  6. <option value = “Philadelphia” >费城</ option>
  7. <option value = “Boston” > Boston </ option>
  8. <option value = “Portland” > Portland </ option>
  9. <option value = “San Diego” >圣地亚哥</ option>
  10. <option value = “墨西哥城” >墨西哥城</ option>
  11. <option value = “SãoPaolo” >SãoPaolo</ option>
  12. </选择>
  13. <P>
  14. <h2>选择目的地城市:</ h2>
  15. <select name = “toPort” class = “form-inline” >
  16. <option value = “Buenos Aires” >布宜诺斯艾利斯</ option>
  17. <option value = “Rome” >罗马</ option>
  18. <option value = “London” >伦敦</ option>
  19. <option value = “Berlin” >柏林</ option>
  20. <option value = “New York” >纽约</ option>
  21. <option value = “Dublin” >都柏林</ option>
  22. <option value = “Cairo” >开罗</ option>
  23. </选择>

我们可以将fromPort值和toPort值提取到两个不同的变量中,然后将其传递给下一个请求。如果构建正则表达式(value =“(。+?)”>),它会在单个数组中捕获fromPort和toPort的所有值。使用正则表达式提取此类值非常困难。您可以使用XPATH提取器来提取它们。

要为fromPort提取随机选项值,可以使用  //  在Xpath字段中选择[@ name ='fromPort'] / *并将匹配编号设置 为0。

要提取  toPort,您可以使用  //  在Xpath字段中选择[@ name ='fromPort'] / *并将匹配编号设置 为0。

您可以使用RedLine13上任何移动应用程序,Web应用程序或API的JMX脚本  运行  JMeter负载测试。以下是  结帐的示例结果

或者去尝试自己的  负载测试

JMeter提取和重用作为变量 - 具有更多提取器的更多相关文章

  1. jmeter BeanShell实例-----两个变量之间的断言对比

    jmeter BeanShell实例-----两个变量之间的断言对比 在jmeter的中,断言没法对两个变量的进行对比后判断,只能使用Bean Shell断言来进行,总是有人来问怎么写呢.这里写一个简 ...

  2. jmeter BeanShell实例-----两个变量之间的断言对比(转)

    jmeter BeanShell实例-----两个变量之间的断言对比 在jmeter的中,断言没法对两个变量的进行对比后判断,只能使用Bean Shell断言来进行,总是有人来问怎么写呢.这里写一个简 ...

  3. Jmeter系列(26)- 详解 JSON 提取器

    果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 为什么要用 JSON 提取器 JSON ...

  4. JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录

    前文我们讲过了若何获取登录后的 Cookie 信息,不知如何获取登录 Cookie 的朋友,敬请参阅我之前写的博文:Fiddler-005-获取 Cookie 信息.参阅上篇文章,获取到 Cookie ...

  5. 用条件变量实现事件等待器的正确与错误做法--转自陈硕的Blog

    用条件变量实现事件等待器的正确与错误做法 TL;DR 如果你能一眼看出 https://gist.github.com/chenshuo/6430925 中的那 8 个 Waiter classes ...

  6. Jmeter系列(27)- 详解正则提取器

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 有了 JSON 提取器为啥还要用正则提 ...

  7. JMeter 不同线程组间变量传递

    JMeter元件都是有作用域的,而变量大多使用正则表达式提取器,要想在不通过线程组件使用变量参数,则需要设置全部变量 JMeter函数助手就提供了一个函数用于设置全局变量属性,实现的功能类似于在用户自 ...

  8. jmeter(十二)关联之正则表达式提取器

    如果有这样的情况:一个完整的操作流程,需要先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就是常说的关联/将上一个请求的响应结果作为下一个请求的参数): 在jmeter中,可以利用正 ...

  9. <转>jmeter(十二)关联之正则表达式提取器

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

随机推荐

  1. DNS常见攻击与防范

    DNS常见攻击与防范 转自:http://www.williamlong.info/archives/3813.html 日期:2015-7-10 随着网络的逐步普及,网络安全已成为INTERNET路 ...

  2. [haoi2008]玩具命名

    某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自己的名字能够扩充得很 ...

  3. Bestcoder round 18----B题(一元三次方程确定区间的最大值(包含极值比较))

    Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  4. discuz邮箱注册激活||腾讯企业邮箱免费注册及登录方法

    如何申请免费的企业邮箱,如果拥有了网站,还能有一个免费的域名邮箱,是不是很拉风呢?对于还没有注册企业的用户来说,优先使用企业邮箱,是非常好的事呢. 腾讯邮箱现在开放免费的企业邮箱注册,效果要比个人邮箱 ...

  5. C++的逐过程和逐语句的区别

    1.逐语句是指在遇到函数调用语句的时候进入到函数内部执行. 2.逐过程是指在遇到函数调用语句时把函数当作一条语句执行.

  6. 【MongoDB学习-在.NET中的简单操作类】

    1.新建MVC项目, 管理NuGet包,进入下载MongDB.net库文件 2.新增项目DAL数据访问层,引用以下库文件: 3.C# 访问MongoDB通用方法类: using MongoDB.Dri ...

  7. INSTALL_FAILED_UID_CHANGED

    ADT试图安装console显示上面的提示.网上查的办法: 1. 删除/data/app/(filename) 文件夹下的apk包 2. 删除/system/app/(filename) 文件夹下的a ...

  8. POJ 3764 The xor-longest( 树上异或前缀和&字典树求最大异或)

    In an edge-weighted tree, the xor-length of a path p is defined as the xor sum of the weights of edg ...

  9. ubuntu下的google拼音输入法(终结版)

    声明:此文章是从我的51cto博客上搬至于此. Ubuntu下SCIM应该是最好的中文输入法了,它与搜狗差不多,下面介绍它的安装方法: 1)终端输入: sudo apt-get remove scim ...

  10. 杂文笔记《Redis在万亿级日访问量下的中断优化》

    杂文笔记<Redis在万亿级日访问量下的中断优化> Redis在万亿级日访问量下的中断优化 https://mp.weixin.qq.com/s?__biz=MjM5ODI5Njc2MA= ...