期刊信息
曾用名:现代图书情报技术;计算机与图书馆
主办:中国科学院文献情报中心
主管:中国科学院
ISSN:2096-3467
CN:10-1478/G2
语言:中文
周期:月刊
影响因子:0.912234
数据库收录:
北大核心期刊(2004版);北大核心期刊(2008版);北大核心期刊(2011版);北大核心期刊(2017版);中国科学引文数据库(2017-2018);中国科学引文数据库(2019-2020);中文社会科学引文索引-来源(2017-2018);中文社会科学引文索引-来源(2019-2020);国家哲学社会科学学术期刊数据库;中国人文社科核心期刊;中国科技核心期刊;期刊分类:图书情报与数字图书馆
期刊热词:
研究论文
Python文本变量与函数的解析执行,增强自动化测
【作者】网站采编
【关键词】
【摘要】我们在使用Python进行自动化测试或者测试脚本开发时,通常会在代码中融入数据驱动设计,以便于降低代码开发、维护成本,例如我们在进行接口自动化测试时,我们会使用不同的数据
我们在使用Python进行自动化测试或者测试脚本开发时,通常会在代码中融入数据驱动设计,以便于降低代码开发、维护成本,例如我们在进行接口自动化测试时,我们会使用不同的数据(入参数据、期望结果数据),驱动同一条自动化测试用例执行,已验证该接口在不同场景下功能是否正常,通常我们会将这些数据存储在数据库、yaml、Excel或其他文件中。
在数据驱动的具体实现设计中,我们使用的各数据类型通常都是固定值(静态值),比如固定的字符串、数字、列表、字典等等,来驱动自动化测试用例或者脚本的执行。
但当在需要非固定(动态)进行数据驱动测试时,例如,在进行接口测试时,请求体中存在 ''time''(当前时间)属性,每次发送请求时,都需要使用当前时间。那么该如何设计代码实现数据驱动呢 ?
本文,通过Python 解析字符串中变量名、函数名(函数的参数),同时支持加载指定自定义模块,获取模块方法及变量对象,以实现动态加载字符串并将字符串中的变量名、函数名,替换为变量值、函数返回值。
我们可以通过下面示例,更直观地了解一下:
示例
例如,我们加载数据驱动文件(YAML格式 ) ,其中包含 $变量名 、${函数名($变量名, )}内容。
上述Yaml文件中的变量、函数,我们可以在指定的一个或多个自定义模块中进行设计、开发。如下,我们在 built_in.py 模块中设计了MODULE、TERMINAL_NAME变量,以及now_time、phone函数。
通过已实现ParseContent 类中的解析方法,即可完成解析,如下:
执行如上代码,上述 Yaml文件内容,解析结果如下 :
源码分享
为了方便阅读,源码中,将各模块代码合入一个模块中。
上述代码已经完成改造,支持添加多个自定义模块,解耦模块加载和字符串解析功能。
文章来源:《数据分析与知识发现》 网址: http://www.sjfxyzsfx.cn/zonghexinwen/2021/0522/1170.html