B05_接口测试前置知识补充:正则表达式
正则表达式(Regular Expression),通常被用来检索符合某个特定规则的文本内容。也常被简写为 regex 或 regexp。
在使用 HttpRunner 进行接口测试的时候,经常需要从返回的响应文本(HTML)中提取部分内容,实现变量的赋值或者断言。如下图所示。
正则表达式可以使用“元字符(metacharacters)”来表达一些规则的含义,另外本章节不对正则表达式进行具体说明,只涉及最基础部分,以实现在 HttpRunner 工具的使用为目的。
对内容进行匹配:
- ^: 约束首字符
- $: 约束尾字符
- .: 匹配任意单个字符
- \d:匹配一个任意数字
- \w:匹配字母、数字、下划线
- \s:匹配任何空白字符
对出现次数匹配:
- *:可以出现“任意次”
- +:至少出现一次
- ?:只出现0次或1次
- {n,m}:最少出现n次,最多出现m次
- {n}:固定只出现n次
- {n,}:至少出现n次,多者不限
我们可以借助一些专门的正则表达式工具来快速处理,这里使用 RegexBuddy 来完成实验。
原始文本如下:
<input type="text" name="username" value="Jonah" maxlength="20">
正则表达式:
\d{2}
匹配实验结果:原始文本中的 20 部分被匹配到并高亮显示
原始文本如下:
<input type="text" name="username" value="Jonah" maxlength="20">
正则表达式:
Jon\w+
匹配实验结果:原始文本中的 Jonah 部分被匹配到并高亮显示
原始文本如下:
<input type="text" name="username" value="Jonah" maxlength="20">
正则表达式:
\sm.*=
匹配实验结果:原始文本中的 “ maxlength=” 部分被匹配到并高亮显示
原始文本如下:
<input type="text" name="username" value="Jonah" maxlength="20">
<input type="password" name="pwd" maxlength="20">
正则表达式:
^<.*pwd.*>$
匹配实验结果:原始文本中整个第二行被匹配到并高亮显示