文档章节

jmeter正则表达式书写

o
 osc_mervd488
发布于 2018/04/23 22:43
字数 933
阅读 5
收藏 0

精选30+云产品,助力企业轻松上云!>>>

在测试过程中,经常会有以下几种场景,如A接口的返回值,用于B接口中,而且A登陆的账户,每次登陆,这个sid值还是变化的。那么在实际工作中,如何才能A接口中提取参数到B接口中?接下来我们就可以用正则表达式来解决这个问题。

场景如下,一个登陆接口,登陆后要使用该账号去购买标,买标的时候要使用A的登陆信息值。通过接口抓包,我们分析返回值如下:

我们知道要提取的值巍sid。接下来我们就简单说明正则表达式的使用方法:

说明:

(1)引用名称:下一个请求要引用的参数名称,如填写Atask,则可用${Atask}引用它。

(2)正则表达式:

    ():括起来的部分就是要提取的。

    .:匹配任何字符串。
    +:一次或多次。
    ?:不要太贪婪,在找到第一个匹配项后停止。

(3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0

(5)缺省值:如果参数没有取得到值,那默认给一个值让它取,我填的Error。

还有一种方法,可以判断我们的正则表达式有没有错误。

工具名称:RegexTester ,下载地址:百度,很多。

使用方法截图:

jmeter中使用如下:

 

 补充例子:

案列:

通过jmeter发送一个Http请求后,如何来获取响应结果内容值?

常见场景一:比如说发送一个投标的请求,返回是一串JSON串,因想判断响应结果是否正确,所以可以通过获取result的值(因result =1 时,说明投标成功),其中响应结果格式如下:{"errorMsg":null,"result":1,"data":{"result":"2","msg":"投标成功!"}},或者判断msg内容也可。

常见场景二:

有A、B两个接口,其中B接口的输入参数来源于A接口的响应结果,此时也需要提取到A接口的响应字段值

言归正传,如何获取呢?通常可以使用“正则表达式提取器”、Beanshell PostProcessor等来进行,在此使用的是正则表达式来进行提取,

 

1、新增一个Http请求,设置如下:

 

2、在该Http请求下,添加一个正则表达式提取器,具体设置如下图所示:

 

 

名词解释:

Apply to:应用范围

要检查的响应字段:样本数据源

引用名称:其他地方引用时的变量名称,引用方法:${引用名称}

正则表达式:数据提取器

  • .  匹配任何字符

  • +   一次或更多次

  • ?    停止在第一个匹配成功时

模板:表示使用提取到的第几个值:
$-1$:表示取所有值
$0$:表示随机取值
$1$:表示取第1个
$2$:表示取第二个
以此类推:$n$:表示取第n个

 

匹配数字:0 代表随机取值,1 代表全部取值

缺省值:如果正则表达式没有搜找到值,则使用此缺省值

 

3、添加一个Debug Sampler ,

4、执行完,结果如下:

 

 

备注:正则表达式提取的结果保存在result中,

result_g0 :根据匹配规则所匹配的全部内容 ;

result_g1:根据匹配规则匹配出符合条件的内容;

 

4、随后接下即可使用提取的数据,用法${result}

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Jmeter参数化的4种方法

用Jmeter测试时包含两种情况的参数,一种是在url中,一种是请求中需要发送的参数。 URL中的参数,如:http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/,其中“2010/06/01/jmeter参...

今幕明
2015/03/28
9.4K
0
JMeter中正则表达式提取

jmeter之关联 的个人理解: 关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据 要关联这个 user_id":"10145" 说明: 简单介绍一下Jmeter正则表达式提...

覃光林
2018/08/30
29
0
JMeter使用JSON Extractor插件实现将一个接口的JSON返回值作为下一个接口的入参

##补充## 接口响应数据,一般为JSON,HTML格式的数据。 对于HTML的响应结果提取,可以使用正则表达式,也可以通过XPath来提取;对于JSON格式的数据,可以用正则表达式,JSON Extractor插件,...

osc_on5pjexo
04/16
3
0
JMETER实战分享

JMETER实战分享 •一、如何使用JMETER压测LBM接口 •二、如何开展JMETER的接口关联测试 •三、如何使用JMETER实施分布式压测 一、如何使用JMETER压测LBM接口 步骤: Ø1、启动Jmeter Ø2、导...

颜丽
2019/06/05
176
0
JMeter接口测试入门

1、JMeter简介 JMeter是Apache组织开发的基于Java的压力测试工具。具有开源免费、框架灵活、多平台支持等优势。除了压力测试外,JMeter在接口测试方面也有广泛的应用。 2、JMeter安装 访问J...

魔鬼妹子
2019/06/21
7
0

没有更多内容

加载失败,请刷新页面

加载更多

深入浅出Zabbix 3.0 -- 第二章 Zabbix Web操作与定义

第二章 Zabbix Web操作与定义 本章介绍Zabbix 中一些基本概念的定义和web前端页面的操作,包括Zabbix中使用的一些术语的定义,Web页面中用户管理、主机和主机组的管理,以及监控项、模板、触...

osc_5zaxkz1e
5分钟前
0
0
深入浅出Zabbix 3.0 -- 第一章 Zabbix 安装与配置

第一章 Zabbix 安装与配置 1.1 Zabbix 介绍 Zabbix是一个企业级的开源监控软件,可以监控IT基础架构的可用性和应用的性能,为用户提供集中管理、分布式监控的一站式(all in one)监控解决方...

osc_nvkeo9cj
6分钟前
0
0
PHP 实现抽奖逻辑

public static function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 forea......

chenhongjiang
6分钟前
0
0
struts2 上传 下载

东方部落: http://11144439.blog.51cto.com struts中上传文件功能小测试。这里jar是 2.5 版本。 项目结构图 废话不多说,直接代码。 2. web.xml配置 <?xml version="1.0" encoding="UTF-8......

osc_1qix3fyb
8分钟前
12
0
SVN管理系统安装及其操作

SVN管理系统安装及操作 防伪码:学习永远不晚! 前言: SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上...

osc_afifi2qt
9分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部