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

2022-05-20 09:21:16 浏览数 (1)

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

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

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

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

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

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

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

原因如下:

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

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

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

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

比如这样:

步骤id

请求数据

返回数据

断言结果

129391

{}

{}

{}

491941

{}

{}

{}

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

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

打开models.py:

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

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

别忘了执行同步命令:

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

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

0 人点赞