Python文本变量与函数的解析执行,增强自动化测

来源:分析测试技术与仪器 【在线投稿】 栏目:综合新闻 时间:2021-05-22
作者:网站采编
关键词:
摘要:我们在使用Python进行自动化测试或者测试脚本开发时,通常会在代码中融入数据驱动设计,以便于降低代码开发、维护成本,例如我们在进行接口自动化测试时,我们会使用不同的数据



我们在使用Python进行自动化测试或者测试脚本开发时,通常会在代码中融入数据驱动设计,以便于降低代码开发、维护成本,例如我们在进行接口自动化测试时,我们会使用不同的数据(入参数据、期望结果数据),驱动同一条自动化测试用例执行,已验证该接口在不同场景下功能是否正常,通常我们会将这些数据存储在数据库、yaml、Excel或其他文件中。

在数据驱动的具体实现设计中,我们使用的各数据类型通常都是固定值(静态值),比如固定的字符串、数字、列表、字典等等,来驱动自动化测试用例或者脚本的执行。

但当在需要非固定(动态)进行数据驱动测试时,例如,在进行接口测试时,请求体中存在 ''time''(当前时间)属性,每次发送请求时,都需要使用当前时间。那么该如何设计代码实现数据驱动呢 ?

本文,通过Python 解析字符串中变量名、函数名(函数的参数),同时支持加载指定自定义模块,获取模块方法及变量对象,以实现动态加载字符串并将字符串中的变量名、函数名,替换为变量值、函数返回值。

我们可以通过下面示例,更直观地了解一下:

示例

例如,我们加载数据驱动文件(YAML格式 ) ,其中包含 $变量名 、${函数名($变量名, )}内容。

上述Yaml文件中的变量、函数,我们可以在指定的一个或多个自定义模块中进行设计、开发。如下,我们在 built_in.py 模块中设计了MODULE、TERMINAL_NAME变量,以及now_time、phone函数。

通过已实现ParseContent 类中的解析方法,即可完成解析,如下:

执行如上代码,上述 Yaml文件内容,解析结果如下 :


源码分享

为了方便阅读,源码中,将各模块代码合入一个模块中。

上述代码已经完成改造,支持添加多个自定义模块,解耦模块加载和字符串解析功能。



文章来源:《分析测试技术与仪器》 网址: http://www.fxcsjsyyq.cn/zonghexinwen/2021/0522/691.html



上一篇:C-NCAP五星评价,传祺GS4碰撞测试拆车解析
下一篇:“混”出长城的另一片天!解析长城DHT混合动力

分析测试技术与仪器投稿 | 分析测试技术与仪器编辑部| 分析测试技术与仪器版面费 | 分析测试技术与仪器论文发表 | 分析测试技术与仪器最新目录
Copyright © 2018 《分析测试技术与仪器》杂志社 版权所有
投稿电话: 投稿邮箱: