正则表达式主要是针对字符串进行操作,可以简化对字符串的复杂操作,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。当然最基本的还是匹配提取、校验。
功能测试/自动化脚本里,经常会需要使用正则表达式来提取或匹配校验一些值。
正则表达式几乎可以满足你对字符串的所有检索要求。
JMeter的正则表达式提取器
Apply to:应用范围
要检查的响应字段:样本数据源。
引用名称:其他地方引用时的变量名称,我这里写的phone,可自定义设置,引用方法:${引用名称}
正则表达式:数据提取器,()括号里为你要获取的的值。"mobilephone":"( 相当于LR左边界, )","leaveamount"相当于LR右边界。而括号里\d+为正则表达式,用来匹配所需要获取的数据,何谓正则表达式文章末尾会附上说明
模板:用于从找到的匹配项创建字符串的模板。这是一个带有特殊元素的任意字符串,用于引用正则表达式中的组。引用组的语法是:' $ 1 $ '引用组1,' $ 2 $ '引用组2,等等。$ 0 $引用整个表达式匹配的内容。
匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1
缺省值:匹配失败时的默认值。可以不写。若需用于后续逻辑判断,可简单写为 ERROR
示例:需要将"id":82,"mobilephone":"150****7414", 用户id、手机号码都取出用作后续使用。
如何编写正则表达式
基本语法
使用示例
获取被空格隔开的每个数字
8192.0 8192.0 6400.0 0.0 41984.0 36845.6 220160.0
正则表达式:[0-9]+(\.)?[0-9]*\b
匹配字符串是否为Email地址
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
Java的正则工具包
可以使用JDK自带的Matcher与Pattern方法, 这里推荐使用Hutool的正则工具-ReUtil
cn.hutoolhutool-all5.4.3
// 查找所有匹配文本
String content = "ZZZaaabbbccc中文1234";
List resultFindAll = ReUtil.findAll("\\w{2}", content, 0, new ArrayList());
// 结果:["ZZ", "Za", "aa", "bb", "bc", "cc", "12", "34"]
Python的正则工具包
# 校验字符串是否为数字
import re
pattern = re.compile(ur'^[0-9]*$')
str = u''
print(pattern.search(str))
看看程序员和测试的薪资差别
测试工具-XPath
性能测试之场景设计和结果判断
python接口自动化
扫一扫,关注我
若有收获,点个在看??感谢