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)