Python 如何在 response 取值,然后用作请求

难忘四九城 · 2021年03月24日 · 最后由 难忘四九城 回复于 2021年04月21日 · 3677 次阅读

还请大佬们不吝赐教。
这是个自动化测试场景,类似于我们注册 app,比如需要填下住址,可以参考下边的接口返回值,我需要随机提取一组数据比如"value":"abc"、"value":"D",用作下一步的请求体,我该怎么提取,困扰小弟半天了。
{
"status":{
"code":0,
"detail":"",
"serverResponseTime":1616569995778
},
"body":[
{
"label":"abc",
"value":"abc",
"children":[
{
"label":"D",
"value":"D"
},
{
"label":"E",
"value":"E"
},
{
"label":"F",
"value":"F"
}
]
},
{
"label":"qwe",
"value":"qwe",
"children":[
{
"label":"R",
"value":"R"
},
{
"label":"T",
"value":T"
},
{
"label":"Y",
"value":"Y"
}
]
},
}
欢迎各路大佬来此评论

共收到 13 条回复 时间 点赞

1.先获取 children 数组长度 length
2.再随机值 0-length-1 作为索引
3.再指定数组索引的对象
4.构造请求参数

获得 body 中数组的个数,然后随机取任意一个

推荐使用 jsonpath 库,可以很方便的取值

正常的思路不是把 value 提取出来,赋值一个新的变量!然后在后面的接口种调用新的变量!

cheunghr 回复

好的,感谢大佬~

Wensau 回复

好的,谢谢大佬

tester 回复

好的 谢谢大佬

刘小样 回复

如果我不取出来,那我应该怎么知道我请求应该写什么呢?

你不提取出来?那你怎么把它写进下一个接口的 body 中去!

刘小样 回复

那么请问,你说的是什么?正常思路不是把 value 提取出来,请你说说你的正常思路?

接口 1 返回的 json 数据中有你要的值。可以将接口 1json 数据中的 value 对应的值取出来放到一个变量 得到一个 value_list=['abc','D','E','F'] 然后你在接口 2 请求数据中加上一个 value:random.choice(value_list) 我这个方法说的是用 python 语言 最后我只是随口一说、如果说的有误、或者没有满足你的需求勿怪!😀

刘小样 回复

我是没明白你第一条评论说不该提取 value,第二条评论说不提取出来怎么用?第三条评论说提取出来才可以用。。。,还有一点我已经标明主题是 python,不过还是谢谢指导~

难忘四九城 关闭了讨论 04月01日 14:33
难忘四九城 重新开启了讨论 04月21日 13:56

忘了我应该补充下解决方法
area_list = 上边的那组 list
area_data = random.choice(area_list)
province = area_data['value']
city = random.choice(area_data['children'])['value']
return {city, province}

难忘四九城 关闭了讨论 04月21日 13:59
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册