1、接口2的入参值依赖接口1的响应结果,如接口2的入参ids需要拿到接口1响应结果的id字段值,测试用例写在excel中,参数:{"ids":"${$..id}$"}

2、工具类result_utils.py中实现如下:

1)正则表达式:p_data = '\${(.*?)}\$'  ,采用的是非贪婪模式

2)查找要替换的字段方法,返回列表

#正则匹配查找
def res_find(data,pattern_data=p_data):
pattern = re.compile(pattern_data)
re_res = pattern.findall(data)
return re_res
param = {"ids":"${$..id}$"}
print(res_find(param,p_data)

打印结果:['$..id']3)

3)使用jsonpath从响应结果提取对应字段的值

#找到值,返回列表;没找到,返回False,bool值
def save_response(self,result,params):
if result:
param = jsonpath.jsonpath(result,params)
# 提取结果为True
if (param==False):
raise Exception("提取结果为FALSE,请检查表达式是否正确")
pass
else:
return param
else:
raise Exception('响应结果为空,无法提取')
values = Response().save_response(result,'$..id')

value打印结果:单个值['111'],多个值['111','222']

4)拿到了要替换的字段、和替换的新值,就要开始替换了,写了一个替换的方法

#正则匹配提取后替换
def res_sub(data,replace,pattern_data=p_data):
pattern = re.compile(pattern_data)
re_res = pattern.findall(data)
if re_res:
#replace被替换串
return re.sub(pattern_data,replace,data)
return re_resdd

调用替换的方法进行参数替换:

params为接口2拿到的入参{"ids":"${$..id}$"},values为上面3)提取的值

value = values[0],values是列表,我是取值第一个

params = res_sub(params, value)

返回params,即参数替换结果

备注:第一次写博客,不好的地方多指教,本文为原创,如有引用,请注明出处,谢谢

最新文章

  1. ECMAScript Web APIs node.js
  2. Windows英文版GitHub客户端使用操作流程图文攻略教程现没中文版
  3. Python之MySQL
  4. 原生js实现addClass,removeClass,hasClass方法
  5. Microsoft.Practices.EnterpriseLibrary企业库问题
  6. Tuning “enq:TX – row lock contention” events
  7. 利用青瓷布局自定义加载的场景,而不是自己改写qici-loading
  8. mysql数据库还原出错ERROR:Unknown command ‘\\’解决手记
  9. java泛型编程
  10. nginx的请求接收流程(二)
  11. myeclipse连接hadoop集群编程及问题解决
  12. svn branch 的使用
  13. 海康相机SDK二次开发只有视频无声音问题
  14. 001_Go hello world
  15. python_flask 基础巩固(自定义URL转换器)
  16. Electron入门笔记(一)-自己快速搭建一个app demo
  17. TensorFlow实战Google深度学习框架10-12章学习笔记
  18. 简易selenium自动化测试框架(Python)
  19. Go 结构体(Struct)
  20. vue.js环境配置步骤及npm run dev报错解决方案

热门文章

  1. bzoj2427 软件安装! 树dp
  2. Netty 框架学习 —— 引导
  3. 熬夜总结vue3中setUp函数的2个参数详解
  4. 2、SpringBoot整合之SpringBoot整合servlet
  5. 98、配置ftp服务器(vsftpd)
  6. 13、mysql主从复制原理解析
  7. 关于vim
  8. 其他:压力测试Jmeter工具使用
  9. php混淆加密解密实战
  10. SoapUI Pro 最新版本和最新功能