前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口测试平台176: 并发用例底层

接口测试平台176: 并发用例底层

作者头像
我去热饭
发布2022-05-20 09:21:16
2580
发布2022-05-20 09:21:16
举报
文章被收录于专栏:测试开发干货

时隔多日,随着中间插入的篇章【测试圈相亲平台】的完结,接口测试平台重新更新。不过最开始的篇章的很多设计都比较老旧了。大家其实可以不用一句一句跟,看个设计,混个眼熟,熏陶一下即可。

而接口平台的搭建,其实我更推荐用【测试圈相亲平台】的技术来重构,不过本公众号系列暂时就不从头再来了。毕竟这个教程里融合了很多粉丝的热情投稿和献计献策,所以重构还是放在未来吧。我们先解决眼下的这个新的并发功能底层。

回忆了一下上节,我们貌似一直在写具体步骤step的请求,现在回头一看,这代码量是真的庞大且复杂,毕竟功能点太多了。

我们之前写到并完成了加密策略这步骤。

接下来我们先把证书融合部分写完:

然后再考虑这个写入数据库请求数据的问题。

注意,我们这里有俩部分红圈内都是关于写入报告数据库表的。因为我们设计逐步实现,所以判断下方的这个写入数据库的函数write_res是无用的, 请删除:

原因如下:

最终的报告是多个并发的用例合并,而每个用例此时又有n个小步骤,每个小步骤既有自己的请求数据,还要有返回值的断言。最终的结果统一起来,才是完整的报告。

而整个wqrf_run_case.py文件,仅仅是负责一个用例的请求过程。最终控制多用例并发的功能和整合报告的功能 应该在它的上一层文件中实现。

针对这种复杂的结构设计和高度定制化需求,市面上的一切已有单测框架都不会满足。所以我们只能走出自研这一步。

既然wqrf_run_case.py文件只负责一个用例及旗下步骤的请求和结果,那么我们把这些结果存到数据库后,只代表一个用例的结果。所以上一层控制并发的时候,要去数据库提取出参与并发的用例的结果并合并。这就决定我们的数据库报告表的设计,只能以具体小步骤为基础单位 存放。

比如这样:

步骤id

请求数据

返回数据

断言结果

129391

{}

{}

{}

491941

{}

{}

{}

上一层的函数在决定并发用例和整合结果的时候,就要从这个表中,提取出下面用例旗下的具体步骤的最新数据,并整合。

所以本节课我们需要先来设计下数据库表结构:

打开models.py:

先说下,这些自动为什么有的用默认值{}

因为在面对如此多维的数据存放在一个小小单元格的时候,最好的免失真办法就是用json字符串存储,所以我们之后从里面拿数据解析也是要把json拿出来转换为字典。但是为了防止如果为空字符串的情况转换字典报错,所以这里要设置成{} 即空json。

别忘了执行同步命令:

然后我们就可以把小步骤的请求数据放在这里面了,想放多少放多少。

今天内容到此结束。欢迎下期继续!

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

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

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

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

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