解决httprunner框架提取后字典格式无法直接使用的问题

httprunner版本:4.X

脚本格式:pytest格式

近期使用httprunner框架写自动化脚本的时候遇到一个情况,需要测试接口的入参有250多行。由于字段的数量过多,导致写的时候不想一个字段一个字段的传,于是就考虑,从别的接口获取一个入参所需字典,然后把这个字典直接作为入参。

一开始我先直接通过extract提取字典为xxx_dict,以$xxx_dict进行使用

发现入参变成了这个样子{"A":"{'a': '1','b': '2','c': '3'}"}这种格式,格式存在以下两个问题:

1、json格式无法识别单引号的,所以传给接口的时候,接口就会报错

2、key值提取出来后,使用的时候就变成了字符串,所以整个字典都变成了字符串

针对以上两个问题进行解决,思路如下:

第一步:在debugtalk写一个函数,接收一个字典,使用json.dumps将其转换成json格式,使用后入参变成以下{"A":"{"a": "1","b": "2","c": "3"}"},解决了第一个问题

第二步:这个问题想了好久,最后发现使用httprunner框架的setup_hook函数。利用其“在用例执行之前,入参已经确定之后”的特点,把"{和}"替换成{和}。使用后入参变成以下{"A":{"a": "1","b": "2","c": "3"}}

这样接口就能识别提取出来的字典了。

暂时没有时间写个例子附上代码,先分享思路吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值