ENGLISH 中文(简体)
设为首页 加入收藏
新闻中心
 
 当前位置: 首页 > 新闻中心 > 行业快讯 > 【行业资讯】Python文本变量与函数的解析执行,增强自动化测试数据驱动
【行业资讯】Python文本变量与函数的解析执行,增强自动化测试数据驱动

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

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

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

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

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

示例

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

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

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

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


源码分享

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

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


文章来源:有了你乱了心


东莞贸发会展服务有限公司
深圳贸发会展服务有限公司
本站内容归  上海贸发展览服务有限公司  版权所有
沪ICP备17023807号-1

电话:高雅女士:13918474775
传真:+86-21-37048779