wordpress网站回调域,友情链接交换方式有哪些,做同城网站最赚钱,wordpress 微软雅黑最近在做接口自动化断言时#xff0c;每个接口文件里都写了一遍提取接口响应数据#xff0c;然后append到列表里#xff0c;传给公共的断言方法与sql查询出来的数据做比对#xff0c;这样如果是100个接口#xff0c;每个接口都写一遍接口响应数据提取#xff0c;就要写10… 最近在做接口自动化断言时每个接口文件里都写了一遍提取接口响应数据然后append到列表里传给公共的断言方法与sql查询出来的数据做比对这样如果是100个接口每个接口都写一遍接口响应数据提取就要写100遍太过依赖于返回数据的格式了如果list里面多嵌套几层而且都要效验那....通用性也不好据说递归可以实现此通用方法可以 一层一层拆提取出自己想要的数据组装一个 自己的数据组然后和 预期结果一组一组对比实现公共断言方法。
直接或间接的调用自身的函数称为递归函数。函数递归包含了一种隐式的循环它会重复执行某段代码但这种重复执行无须循环控制。每调用一次自身相当于复制一份该函数只不过参数有变化参数的变化就是重要的结束条件 递归函数特性 1、必须有一个明确的结束条件 2、每次进入更深一层递归时问题规模相比上次递归都应有所减少 3、相邻两次重复之间有紧密的联系前一次要为后一次做准备通常前一次的输出就作为后一次的输入。 4、递归效率不高递归层次过多会导致栈溢出在计算机中函数调用是通过栈stack这种数据结构实现的每当进入一个函数调用栈就会加一层栈帧每当函数返回栈就会减一层栈帧。由于栈的大小不是无限的所以递归调用的次数过多会导致栈溢出
5、递归次数有上限
for循环实现1-100的和 def sum():x0for i in range(1,101):xireturn x
print(sum())C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/test/test01.py
5050Process finished with exit code 0递归实现1-100的和
def sum(max):if max0 and max100:return maxsum(max-1)else:return 0
print(sum(100))C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/test/test01.py
5050Process finished with exit code 0json串是一个列表类模块的接口响应数据我想断言接口响应的字段created_at和updated_at使用递归将这2个字段值提取出来append到列表里与sql查询库里的created_at和updated_at两个字段做对比所有同类型接口的断言可使用此公共方法进行断言。
接口响应json串如下
json_data{count_tab_4: 13,total: 13,list: [{created_at: 2019-12-19 16:10:01,updated_at: 2019-12-19 16:15:01,company: {full_name: 项目,short_name: 项目简},task_sex: 1,task_user_id_card: 610523198806273676,task: {type_child_name: 软件开发,users_type_txt: 用户}}, {created_at: 2019-12-17 11:25:02,updated_at: 2019-12-17 11:30:02,company: {full_name: 项目,short_name: 项目简},task_sex: 1,task_name: 啊啊啊任务啊啊,task: {type_child_name: 软件开发,users_type_txt: 用户}}],page_size: 10,page: 1
}方法实现提取created_at和updated_at的value组合成list
response_values[]
def test(response_data,keys[]):if isinstance(response_data,list):for value in response_data:if isinstance(value,list) or isinstance(value,dict):test(value,keys)elif isinstance(response_data,dict):for i,j in response_data.items():if i in keys:response_values.append(j)else:test(j,keys)else:passtest(json_data,[created_at,updated_at])
print(response_values)C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/test/test01.py
[2019-12-19 16:10:01, 2019-12-19 16:15:01, 2019-12-17 11:25:02, 2019-12-17 11:30:02]Process finished with exit code 0