圆月山庄资源网 Design By www.vgjia.com

在做自动化测试时,经常会对一整套业务流程进行一组接口上的测试,这时候接口之间经常会有数据依赖,那么具体要怎么实现这个依赖呢。

思路如下:

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

核心代码实现:

抽取接口的返回值存储到全局变量字典中

# 抽取接口的返回值存储到全局变量字典中

if set_global_vars and isinstance(set_global_vars, list):
  for set_global_var in set_global_vars:
    if isinstance(set_global_var, dict):
      name = set_global_var.get('name') # name 代表全局变量的名字
      query = set_global_var.get('query') # query 代表全局变量的查询语句
      value = common.dict_get(response_json, query) # response_json 代表接口的响应数据
      self.global_vars[name] = value

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

解析字符串中全局变量并进行替换

import re

# 解析字符串中全局变量并进行替换
def resolve_global_var(pre_resolve_var, global_var_dic, global_var_regex='\${.*"color: #ff0000">最佳实践

我们来模拟一次全局变量替换的效果:

if __name__ == '__main__':
  pre_resolve_var = 'left ${status} right, left ${data} right'
  global_var_dic = {'status': 'STATUS', 'data': 'DATA'}
  resolved_str = resolve_global_var(pre_resolve_var=pre_resolve_var, global_var_dic=global_var_dic)
  print(resolved_str)

下面是控制台输出:

left STATUS right, left DATA right

Process finished with exit code 0

可以看出输出还是符合预期的,将字符串中全局变量成功解析。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

标签:
python,接口数据依赖,python接口自动化测试

圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com