因为此平台历经过久,且技术功能繁多,小伙伴们如果跟不下去,可以简单大致浏览一遍,熟悉下节奏和方案也是不错的哦~
在本章开始前,我们要把之前的几个遗留代码补上:
上节课我们写完了临时变量提取部分,这个提取的tmp_d ,最重要返回给主函数的,好让主函数把它传递给下一个执行的step。所以别忘了最后加上这句:
然后我们要考虑的是,放入数据库表的都应该有什么?
- 步骤step的请求数据,我们放了么?
答:放了
注意,这里我们直接给r_step.save()保存。先删掉这句,我们要在所有数据存完后才能保存哦~
2. 步骤的step的返回结果放了么?
答:忘了,补上:注意代码位置,放在请求结果拿到之后!
3. 步骤的断言呢?我们还没开发这里,
而 本节课我们要搞定的是断言部分:
首先是 路径法,路径法需要使用者按规则写好路径,然后我们算法去这个路径下寻找到的结果看是否对应。
原理在我们之前的文章已经讲过,这里直接复制之前的代码然后稍微改改即可:
注意看,我们之前代码是在unittest框架中,所以才有什么self.assertEqual断言。不过现在我们是在普通的函数中,那么要怎么来计算这个结果的对错呢?
实际上,直接用=号判断即可。但是结果放到哪里呢?要知道,我们现在已经不是在unittest框架内了哦~
想到了么?答案就是放在数据库啊!我们数据库除了存放每一个step的请求数据,返回数据。最重要的就是断言结果喽。
也就是这个字段:
注意,这里我特意写了默认值为{} ,意思是这里我准备用一个json来存放。毕竟断言有很多,可能一个步骤 使用者用了多个断言,那么每个断言的key就是他写的表达式,而值就是 真 / 假,也就是对/错。
所以代码应该改成如下:
注意上图,我新添加了个临时的存放结果的字典,然后方便存储。
等到三个断言都结束,再把它tmp_assert_result 变成json存放到数据库即可。
还有,want == value 的结果要么是True 要么是 False哦~
然后是正则断言:
然后是全值检测:
这个全值检测,就是判断字符串是否在返回体而已。所以要么值为假要么为真。
三个全完事,我们要保存到数据库里:
好,到此,我们断言的部分就完事了。
下一节,临时变量的替换使用部分!