手机版 | 网站导航
观察家网 > 经济 >

正则表达式不为空_如何添加正则表达式

互联网 | 2023-05-26 15:36:03

关于正则表达式不为空_如何使用JMeter中的正则表达式? 的知识大家了解吗?以下就是小编整理的关于正则表达式不为空_如何使用JMeter中的正则表达式? 的介绍,希望可以给到大家一些参考,一起来了解下吧!

正则表达式不是空(如何在JMeter中使用正则表达式?)

如果你在JMeter脚本中看到一些类似这样的符号:(。*?)(\d+),你觉得程序是乱码吗?拆开来看,每个符号似乎都有固定的含义,组合起来就成了令人费解的天书。这些神秘的符号包含了哪些强大的功能?让我们一起揭开它们的面纱。


【资料图】

首先,什么是正则表达式?

上面提到的特定符号的组合称为正则表达式,在JMeter工具中用来表示对字符串的一种逻辑过滤。正则表达式的作用分为“提取”和“匹配”。前者用于从字符串中获取我们想要的部分,后者用于将提取的字符串与给定的字符串进行比较。正则表达式的好处不言而喻。它以极其简单的方式实现了对琴弦的复杂控制,兼具灵活性和逻辑性。

二、如何添加正则表达式

1.添加正则表达式提取器。

请求->添加->后处理器->正则表达式提取器。

正则表达式的作用域是线程组,所以正则表达式的层次结构应该位于需要提取返回值的请求者之下,即作为请求的子设备,需要通过正则表达式进行数据关联的两个请求应该放在同一个线程组中。

2.写正则表达式。

正则表达式提取器包含以下元素:

名称:定义正则表达式的名称。

注释:写脚本时的注释。

适用范围:适用于主采样器或子采样器,一般使用默认选项。

要检查的响应字段:示例数据源

Name:其他采样器中引用变量的名称,用法为$ {reference name}。

正则表达式:数据提取器,()包含响应消息中匹配数据的规则。

模板:用$ $括起来。如果包含多个正则表达式,$表示提取之一个正则表达式解析的值,$表示提取第二个正则表达式的结果,依此类推。

匹配数:正则表达式匹配数据的所有结果都可以看作一个数组,匹配数可以看作数组的元素。-1表示全部,0表示随机,1表示之一个,2表示第二个,依此类推。

默认值:如果提取失败,引用变量的默认值可以是空。

第三,如何使用正则表达式

那么,如何使用正则表达式呢?有哪些常见的使用场景?下面通过几个例子来学习正则表达式的用法。

场景1:获取网站登录信息令牌

当我们使用JMeter记录web脚本时,经常需要使用Token作为用户认证的标志。令牌是服务器为每个用户创建的令牌。当用户之一次登录时,服务器生成的令牌被带回给客户端。以后客户端只需要带上这个令牌,服务器就可以识别请求者的身份,而不需要再次验证用户名和密码。

那么,如何获取令牌,如何动态地分配给下一个请求呢?这里,我们向登录会话添加了一个正则表达式提取器。

首先,从登录会话的返回消息中找到“token:”然后在脚本中添加一个正则表达式提取器。引用名为token,正则表达式为“token”:(。*?)”而模板是$。这个正则表达式的意思是要返回的字符串封装在()和。意味着它匹配任何字符串,*?表示匹配零次或多次后停止。完整的意思是:匹配的起始字符是”,结束字符是最后一个”。它匹配两个引号之间的任何字符,匹配一次或多次,当之一个字符串匹配时停止,并将字符串保存到变量token。

在下一个查询事务请求中,可以直接使用变量${token}来关联令牌信息。线程循环执行多次,${token}始终保持当前登录状态的值,赋给查询事务的请求。

场景2:在性能测试中回收数据

在进行性能测试时,一些特殊的场景往往会导致数据无法回收,或者可以使用的次数有限。然而,高并发压力测试需要大量的数据,因此需要花费时间和精力来准备数据。这时,将两个“反向”事务串联起来,就可以轻松解决数据回收的困难。比如在做金融购买交易的性能测试时,随着测试轮次的增加,账户余额越来越少,那么如何方便快捷的实现资金回笼?根据不同理财产品业务逻辑的不同,有卖出和提现两种选择。如果当前产品支持实时持有,让客户先买后卖,相当于之前的购买行为被抵消了。

在设计测试脚本时,您需要将购买和出售请求放在同一个线程组中。首先设计正则表达式,用“NUM_SEQ_AR”提取购买成功后返回的合同号:“(\d+)”,其中\d表示提取纯数字。通常,金融机构的合同号以数字形式存储。

然后用${Seq}引用合同号作为卖出交易的输入数据,客户账户信息可以和买入交易来自同一个CSV文件,实现前后交易的一致性。

添加JMeter调试工具,后处理器->调试后处理器,观察正则表达式操作。

正则表达式提取的合同号与买入返回消息一致,正则表达式书写正确。

正则表达式看起来很复杂,但其实只要了解它的用法,只需要在实际使用场景中具体问题具体分析,结合数据多动手练习。不管问题有多难或多复杂,都有办法解决。正则表达式包含了强大的功能,本文只做最基本的介绍。同学们可以自己探索更多的用法,让我们的性能测试和界面测试变得更简单!

如果你也有很多问题需要解决,你的测试职业规划需要一点光亮,也想和大家分享讨论。推荐你一个“Python自动化测试学习交流群”。这里有你缺失的知识,这里有你为数不多的技能,这里有你的大牛...

请关注+私信回复:“测试”可获得免费软件测试学习资料,同时进入群学习交流~ ~

标签: 正则表达式 如何使用

  • 标签:正则表达式,如何使用

相关推荐