性能测试-JMeter关联之正则表达式介绍
admin
2023-02-20 01:00:08
0

为什么要关联???

在客户端与服务器通信过程中,多个请求/响应间的数据会有相互依赖的关系。比如上一个请求返回的某些响应数据在后续的请求中需要用到。

下面是一些典型的例子:

1)比如第一次访问网站获取的session id在后续的请求都会将其传给网站;

2)服务器生成token返回给用户,在后续的请求中要带上token;

3)根据条件查询某记录,在查询结果集中选择记录进行操作(比如删除)

...

但是有些通信协议是无状态的,不存在上下文相关性。多个请求/响应之间的数据不能直接进行传递;

并且每次服务器返回的数据不是一成不变的,传递的数据不能通过硬编码(写死)保存来解决。

比如上面三种情况都会产生动态变化的数据:

1)session id的生命周期一般在关闭浏览器时就结束了,每次打开浏览器访问返回的session id并不相同;

2)token也有生命周期,一般也是随机,无状态的;

3)若查询条件参数化了或服务器返回的查询结果集改变了,后续的操作可能会失败。

在这些情况下,可以考虑将服务器返回的动态变化的数据保存到某个参数中,需要时再从中取出。

一、关联原理

举个例子,看电影,看电影过程有如下步骤:

  1.购票

  2.验票

  3.观影

每个步骤可以看做一个请求/响应。观众相当于客户端,影院方相当于服务器。

过程如下图所示:
性能测试-JMeter关联之正则表达式介绍
观众购买的电影票可以看成服务器返回的响应数据,要验票通过才能入场观影。

观众购票相当于一个请求,验票是下一个请求,这需要将上一个请求返回的响应数据(电影票)放在下一个请求中发送给服务器处理。

假设这部电影非常精彩,想重新再看一次,因为电影票只能使用一次,观众必须重新购票,才能验票通过入场;使用第一次购买的电影票入场肯定会被拒之门外。

为了解决这个问题,可以考虑做如下假设:

每次将购买的电影票放入随身携带的LV钱包,并且在放入之前将使用过的票丢弃,以防止入场时掏错票;入场的时,从钱包中取出票来验票,这样就万无一失了。

将电影票放入钱包中,相当于将服务器返回的数据保存起来了,这里钱包就是保存关联数据的参数。

二、关联的定义

将服务器返回的数据包中满足条件的数据保存到一个参数中的过程。

怎样将服务器返回的数据保存起啦,JMeter中可以使用后置处理器来处理关联数据,常见的方法有:

1、正则表达式提取器

2、JSON提取器

需要关联数据的特征

怎样确定哪些数据是需要做关联的,可以从关联数据的特征来识别出这些数据。关联数据有如下三个特征:

1.服务器返回

需要关联的数据一定是从服务器返回的。

客户端输入的数据不需要进行关联,比如输入的用户名与密码。此特征是必选的。

2.数据会再次发送给服务器处理

保存上一个请求响应的数据,其目的是为了将其用于下一个请求中,否则保存起来没有意义。

此特征是可选特征,也就是说不再次发送也是可以保存数据进行关联的。

3.数据动态变化

上一个请求响应的数据若不会动态变化,完全可以写死在脚本中,不需要花力气额外保存再次取出。

正是由于每次返回的数据动态变化,我们需要根据某种规则将这些动态变化的数据找出来保存,

然会取出实际返回的数据。但此特征也是可选的。不动态变化一样可以保存进行关联,但意义不大。

三、正则表达式介绍

JMeter通过内嵌的Apache Jakarta ORO软件来解析处理正则表达式。

Jakarta-ORO是用于处理文本的一组Java类,是目前功能最全性能最好的正则表达式API之一,它提供兼容Perl5类型的正则表达式。

单行模式与多行模式
性能测试-JMeter关联之正则表达式介绍

元字符
性能测试-JMeter关联之正则表达式介绍
性能测试-JMeter关联之正则表达式介绍

扩展正则表达式
性能测试-JMeter关联之正则表达式介绍
性能测试-JMeter关联之正则表达式介绍
性能测试-JMeter关联之正则表达式介绍

相关内容

热门资讯

警方介入女游客高空秋千坠亡,家... 近日,女游客体验高空秋千坠亡事件引发关注。5月5日,四川省广安市华蓥市“5·3”事故调查组发布情况通...
存储涨价之后,如何让AI走向数... 国家数据局数据显示,从2024年到2026年,中国日均Token调用量从1000亿飙升至140万亿(...
华为MatePad Pro M... IT之家 5 月 6 日消息,华为海外账号 Huawei Mobile 今日公布了一款华为 Mate...
万象 一体化防爆气象仪:做高危... WX-FBQ2万象 一体化防爆气象仪:做高危环境的“硬核守护者” 在石油化工、油气储备及煤矿矿井等高...
母亲节好礼推荐 三星Galax... 母亲节悄然临近,一份兼具心意与实用性的礼物,成为子女们表达感恩的最佳载体。在智能手机成为生活必需品的...
视频丨联合国举行AI主题会议 ... 日,中国、赞比亚常驻联合国代表团和中国科学技术协会在纽约联合国总部共同举办“人工智能能力建设国际合作...
首发2亿RYYB长焦+XMAG... 一、前言:2亿RYYB长焦出手 华为影像旗舰的新答案 为什么有人随手一拍就是氛围感大片,而多数人反复...
谷歌、英伟达押注,这家估值 4... 作者|桦林舞王 编辑|靖宇 1956 年,一批科学家聚在达特茅斯,第一次正式讨论「机器能否思考」。...
英伟达想革光模块的命 问AI· 英伟达CPO技术如何冲击光模块市场格局? 上个月中际旭创一季报公布,营收、净利润双双翻倍...
豆包为什么选择了 “最low”... 针对付费会员,豆包官方回应称,豆包始终提供免费服务,在免费服务的基础上,豆包也在探索推出更多增值服务...