前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口测试平台代码实现133: 全局变量-12

接口测试平台代码实现133: 全局变量-12

作者头像
我去热饭
发布2022-05-19 10:05:11
2550
发布2022-05-19 10:05:11
举报
文章被收录于专栏:测试开发干货

好,时隔半月的 实战系列继续更新。

让我们先回顾下现在的进度:

全局变量组的增删改查已经做完了。

然后我们想先插入到接口调试层功能里。

这其中涉及到 变量的占位 和替换。

我们做了一个大字符串的替换公共函数。

然后把url,header host等都塞进去换一遍出来,都成功了。

上节课最后我们说要开始弄复杂的body了。其实body也并不是很复杂,我们只需要记住:

body存在数据库的时候也是字符串的形式,虽然不同的请求体类型让他们长得像列表,像字典,但从数据库或前端刚提出来 都是字符串,而之前是在要发送实际请求时候,才会变成各种字典等格式。

而我们的替换,采用忠实替换法则的话,就是直接给它在字符串的时候,替换变量。然后如果变成字典等操作出错,那就是用户的问题,比如一个请求体如下:

{"A":"zxc"}

用户想把这个zxc字符串用变量表示后,在body中这么占位:

{"A":~value~}

然后我们忠实替换后变成

{"A":zxc}

结果一json.loads,直接报错。那这就是用户使用问题。我们可以提示。

让他改成:

{"A":"~value~"}

这样,再替换后就是:

{"A":"zxc"}

就成功了。

所以我们现在打开我们的views.py,找到Api_send这个函数,也就是调试层发送请求。

可以看到我们的url,host,header等都经过了

代码语言:javascript
复制
global_datas_replace

这个公共替换函数的洗礼,现在我们把body也这么洗了。

然后重启服务,开始去测试,我打开我的项目:

可以看到,依然有俩组变量,一个数字,一个字符串:

我顺便给views加个print,看看实际的请求体替换结果:

然后在接口调试层设置:

请求看结果:

没有任何报错,因为请求的是x度,所以参数随便写,输出请求体也成功替换了,这里为什么123456不是整形呢?是因为form-data的关系,遵从postman的风格和行业依从性,用户输入的一切都按字符串处理。

然后我们试试在raw-json这种常用情况下:

注意,这里的设置,uuid外并没有加引号,因为它是整形的。:

输出如上图,可以看到 的确是忠实替换,123456变成整形也没错~

好了,本节内容到此结束。欢迎继续分享和追更。

这里要说下,这么复杂的底层设置,按理说我们的自测是不充分的。因为这个替换操作有可能引起一些其他功能的bug,当然也可能没有。我们之后攒一攒会单独找一期进行充分测试和修复各种问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档