接口测试平台-81: 多接口之 小用例:断言-正则法+断言-全文检索法+时区

1. 断言-正则法:

当前,正则断言时提取的都是字符串,那么预期值就也写字符串就好了,没必要进行求值类型的设计,所以先改一下正则断言的规则。如下:

然后设置好并保存:

o":(.*?),"e=2

这个提取到的应该是en,也就是字符串0,此处故意写成会被变成字符串的2作为预期值。

 

然后去写代码:

# # 断言-正则法
if assert_zz != '':  # 说明有配置
    for i in assert_zz.split('\n'):
        zz = i.split('=')[0].rstrip()
        want = i.split('=')[1].lstrip()
        value = re.findall(zz, res)[0]
        self.assertEqual(want, value, '值不等')

运行下看看报告:

发现程序并没有成功走到正则断言上,因为unittest的步骤函数中,一旦断言失败,那么该条用例内的代码便不再继续走了。

昨天故意断言错了路径法,所以导致正则断言没被运行,这里删除路径法的设置并保存:

再运行一次:

现在正常了。

 

2. 断言-全文检索法

接下来实现全文检索是否存在的断言方式,先看下规则:

再看下实际返回体:

然后设置好:

添加了俩个实际存在关键字符串,0和errmsg,还有一个不存在的字符串:谁不是路人

注意,别忘了删除上面的断言哦~ 否则又运行不到这个全文检索了。别忘了保存!!!

然后是 代码部分:

# # 断言-全文检索法
if assert_qz != '':  # 说明有配置
    for i in assert_qz.split('\n'):
        if i not in res:
            raise AssertionError('字符串不存在:%s' % i)

重启服务,运行结果:

好了,这里结束,基本搞定了这俩个提取和三个断言, 下节会讲讲输出优化和接口mock的小功能。

 

3. 时区问题

临时追加一个被忽略的设置,就是时区,django默认时区并不是中国的,这会影响到报告生成时间的时区,导致早了8小时。

所以要改一下,具体改的位置在settings.py里 最后:

改成:

重启服务即可生效。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值