接口测试-工作心得记录十一(unittest.skipif使用)

背景:最近把jenkins的调用频率调高了,这样就遇到之前没有遇到的问题,接口不同调用频率对应response返回json结构体会有不同。举个例子,商户端都有发帖的功能,postpub发布接口一天只能发布10个帖子,当超过10个的时候就会有不同的json结构体。面对这样的问题,解决方法我想到就2个,第一就是在书写case的时候写两个hope_response,在check接口返回response的时候校验两个(这样check方法就要支持hope_response就要支持类似assert_in的方法,目前没有想到要怎么写。。),所以就采用第二个就是用unittest.skipif(condition),当condition为true时就会运行case,false则不运行。

先看一下最后写的效果:


里面调用一个postpub_condition()方法用于判断boolen类型

思路:判断逻辑首先要在配置文件定义一个times(次数)记录发了多少次,每次发布成功后增加一次,当times>=10时就返回false,case跳过,times<10次是为true,继续运行case。

还要判断是不是当天,当时第二天是times要清0,重新计数,先看一下配置文件:


定义times和date,一个用于计数,一个用于判断日期。

首先是书写配置文件的:


就是使用ConfigParser()类来书写,没啥好说的,不会的自己上网看一下,很简单的。

下面试读取config的方法。如图:


下图是,往配置文件书写次数+1的方法:


最后就是判断times和date来返回true和false,如图:


简单说明一下:

读取配置文件的日期和当前日期进行比较,如果不等就把次数重置成0,我觉得不需要判断是大是小,因为这个没人改而且改服务器时间可能性太低了,做了基本的比对就行了,

这里面用了说去时间方法,如图:


使用date.timedelta()方法可以计算日期,返回date型的,读取配置文件的日期是string类型的,所以要强转成str,这是个坑注意一下,数据类型,最后就是times<maxtimes时就计数+1,大体就是这些,活用unittest框架,还是很方便的。



猜你喜欢

转载自blog.csdn.net/gogoboi_jin/article/details/79672055
今日推荐