一般在做自动化测试时,经常会对一整套业务流程进行一组接口上的测试,这时候接口之间经常会有数据依赖,那又该如何继续呢?

那么有如下思路:

  1. 抽取之前接口的返回值存储到全局变量字典中。
  2. 初始化接口请求时,解析请求头部请求参数等信息中的全局变量并进行替换。
  3. 发出请求。
抽取接口的返回值存储到全局变量字典中

其中set_global_vars代表的是当前测试用例全局变量设置列表, self.global_vars则代表测试类实例全局变量字典common.dict_get方法的具体实现请移步方法具体实现

解析字符串中全局变量并进行替换python接口自动化测试之接口数据依赖-LMLPHP

python接口自动化测试之接口数据依赖-LMLPHP 

 这里,首先先创建识别全局变量的正则规则,然后运用re.sub方法进行替换。其中,re.sub中的repl参数可接受函数作为参数。global_var_repl方法中,使用global_var_dic字典去获取匹配的值并返回。

默认参数中,将全局变量做了这样一个识别: ${GLOBALVAR_NAME}, 用global_var_dic查找并替换全局变量时,则使用了默认预设的起止索引参数。这种写法我感觉有些奇怪, 但是目前也没想出更好的方法,如果大家有更好的实现思路的话欢迎讨论:)

最佳实践

接下来模拟一次全局变量替换的效果:

python接口自动化测试之接口数据依赖-LMLPHP

下面是控制台输出:python接口自动化测试之接口数据依赖-LMLPHP   可以看出输出还是符合预期的,将字符串中全局变量成功解析。

 感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

python接口自动化测试之接口数据依赖-LMLPHP

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

python接口自动化测试之接口数据依赖-LMLPHP

 

11-21 15:56