Python做接口测试时正则表达式使用技巧
比如某电商网站查看订单,响应是一个网页,我们需要从该网页代码中提取订单编码;鼠标右键选择网页编码,复制到正则表达式测试其中,找到订单编号,编写好正则表达式,查询结果如下:
1列就是我们需要提取的订单编号
Python中使用正则表达式需导入re模块,使用re.match、re.search、re.findall等提取数据;
re.match是否在字符串刚开始的位置匹配。这个方法并不是完全匹配,网页编码很长,不适用re.match;
re.findall将所有获取的内容返回为一个列表,做接口一般只要一个数据,不需要列表,这里也不用;
re.search会在内容中以查找模式匹配,只要找到第一个匹配然后返回,所以提取网页编码中的某一个数据,使用re.searc函数
re.search查询出来的结果是一个object,并不是想要的值,后面接口如果直接调用,调用的是这个object,并不是其中的订单编号,所以还需要加后缀处理:
. group() 返回被 RE 匹配的字符串
. start() 返回匹配开始的位置
. end() 返回匹配结束的位置
. span() 返回一个元组包含匹配 (开始,结束) 的位置
很明显我们需要的是.group();括号中无内容,默认第0列,在正则表达式测试器中,我们要的是第1列,所以使用.group(1)