python接口自动化之正则用例参数化示例分析


本篇内容主要讲解“python接口自动化之正则用例参数化示例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大免费云主机域名家学习“python接口自动化之正则用例参数化示例分析”吧!我们在做接口自动化的时候,处理接口依赖的相关数据时,通常会使用正则表达式来进行提取相关的数据。正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(Regular Expression,在代码中常简写为regex、regexp或RE) 。它是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。而Python 自1.5版本起增加了re模块,它提供 Perl 风格的正则表达式模式。单字符:即表示一个单独的字符,比如匹配数字用d,匹配非数字用D。除以下语法,也可以匹配指定的具体字符,可以是1个也可以是多个。字符功能说明.匹配任意1个字符(除了n)[2a]匹配[]中括号中列举的字符,如这里就是匹配2或者a这两个字符其中的一个d匹配数字,即0-9D匹配非数字s匹配空白,即空格、tab键(tab键为两个空格)S匹配非空白w匹配单词字符,即a-z、A-Z、0-9、_(数字、字母、下划线)W匹配非单词字符实例如下,这里先说明一下findall(匹配规则,要匹配的字符串)这个方法是查找所有匹配的数据,以列表的形式返回,后面会在re模块进行详解:如果要匹配某个字符多次,就可以在字符后面加上数量进行表示,具体规则如下:字符功能说明*匹配前一个字符出现0次或者无限次,即可有可无+匹配前一个字符出现1次或无限次,即至少1次?匹配前一个字符出现0次或1次,即要么没有,要么只有1次{m}匹配前一个字符出现m次{m,}匹配前一个字符至少出现m次{m,n}匹配前一个字符出现从m到n次实例如下:字符功能说明|匹配左右任意一个表达式(ab)将括号中字符作为一个分组实例如下:字符功能说明^匹配字符串开头,只能匹配开头$匹配字符串结尾,只能匹配结尾b匹配一个单词的边界(单词:字母、数字、下划线)B匹配非单词的边界实例如下:python里数量词默认是贪婪的,总是尝试匹配尽可能多的字符,而非贪婪模式则是尝试匹配尽可能少的字符,在表示数量的表达式后加上问号(?)就可以关闭贪婪模式。如下例子,匹配2个以上的数字,如果符合条件它会一直匹配到不符合才停止,如其中的34656fya,34656符合2个数字以上,那么它会一直匹配到6为止,如果关闭贪婪模式,那么在满足2个数字时就会停止,最后可以匹配到34、65。在python中使用正则表达式,就会用到re模块来进行操作,提供的方法一般需要传入两个参数:参数1: 匹配的规则参数2:要进行匹配的字符串查找所有符合规范的字符串,以列表的形式返回。查找第一个符合规范的字符串,返回的是一个匹配对象,可以通过group()将匹配到的数据直接提取出来。返回的匹配对象中,span为匹配到的数据的下标范围,match则是匹配到的值。group()参数说明:不传参数:获取的是匹配到的所有内容传入数值:可以通过参数来指定,获取第几个分组中的内容(获取第1个分组,传入参数1,获取第2个分组,传入参数2,依次类推。)从字符串的起始位置进行匹配,匹配成功则返回匹配到的对象,如果开头的位置不符合匹配的规则,不会继续往后面去匹配,直接返回None。re.match()与re.search()都是只匹配一个,不一样的是,前者只匹配字符串的开头,后者则是会匹配整个字符串,但只获取第一个符合的数据。检索和替换:用于替换字符串中的匹配项re.sub()参数说明:参数1:待替换的字符串参数2:目标字符串参数3:要进行替换操作的字符串参数4:可以指定最多替换的次数,非必填(默认替换所有符合规范的字符串)在接口自动化测试中,我们的测试数据都是保存在excel中的,有些参数如果写死一个数据,可能换个场景或者换个环境就不能用了,那么切换环境时就需要先把新环境的测试数据准备好,并且能支持去跑我们的脚本,或者把excel的数据修改为适合新环境的测试数据,维护的成本较高。因此就需要把我们的自动化脚本测试数据尽量地参数化,降低维护成本。我们先看简单版的参数化,以登录为例,登录时用到的账号、密码等信息都可以提取出来放到配置文件,修改数据或更换环境时直接在配置文件中统一修改就可以了。但如果有多个不同的数据需要参数化呢,每个参数都加个判断去替换数据吗?这样的代码既啰嗦又不好维护,这时re模块就可以用上了,直接看一个实例:注意这里的正则表达式是有使用?关闭贪婪模式的,因为测试数据中可能会需要参数化2个或以上的数据,如果不关闭贪婪模式,它就只能匹配搭配一个数据,举例如下:另外提到的一个用于临时保存数据的类,这里主要用于保存接口返回的数据,因为有些测试数据是动态变化的,可能要依赖于某个接口,后面的测试用例又需要这些数据,那么我们在接口返回时就可以保存到这个类里作为一个类属性,接着在需要用这个数据的测试用例时,把这个类属性提取出来替换到测试数据中即可。提示:设置属性setattr(对象, 属性名, 属性值),获取属性值getattr(对象, 属性名)。到此,相信大家对“python接口自动化之正则用例参数化示例分析”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: javascript如何实现倒计时

这篇“javascript如何实现倒计时”文章的知识点大部分人都不太理解,所免费云主机域名以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“javascript如何实现倒计时”文章吧。…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 03/20 19:09
Next 03/20 19:10

相关推荐