接口测试-工作心得记录十二(装饰器的使用)

这个装饰器的功能写完有一阵子了,有个提测任务(也是在斗米最后的上线任务了)就一直没写博客,今天放假没什么事简单写一下。接口有这样一种测试场景就是有些接口(尤其是主流程接口)可能想要动态的增加测试用能(比如说接口响应时间,日志功能等等),这样就需要使用装饰器来修饰case,既灵活又不需要修改case代码,方便好用,这也是我想写这篇博客的原因。

装饰器功能强大,我目前就只会使用最简单的形式,也是看了别的博客,后面我会把博客链接粘出来,写的很好大家可以参考一下。装饰器本质上就是闭包的使用,闭包就是函数的引用,我理解闭包就是把要装饰的函数引用过来但是不运行,完成必要的功能在运行要装饰的函数,这样就完成了函数的动态功能扩展。举个例子,如图:


这个就是一个最简单的装饰器,参数func就是函数名称的引用,在外层return 中引用了内函数wrap,ps:引用表示知道函数的名称但是没有运行,加上()才是运行函数。在内函数wrap中增加了获取时间->运行func()函数->计算运行时间并打印出来。运行效果如下:



使用@语法糖来修饰被装饰的函数,最后运行结果:



这就是最简单的装饰器使用,但是这个装饰器time_count_demo()有二个问题第一个就是如果被装饰的func函数有参数就会报错,另一个就是如果func有返回值,就会丢掉了,如图:



下面就是装饰一个有参数func()函数,和运行结果:




运行就会报错说没有参数,这样就延伸出一个通用的装饰器模板如下:



这里面在内函数wrap()中增加了通用参数*args 表示列表,**kwargs表示字典类型参数,解决了通用参数的问题。第二个返回temp_result表示func()运行的返回结果,如果没有返回结果就是none,这个就是通用的装饰器写法,下面是运行结果如图:




当然装饰器还有其他更复杂的功能后面我用到在写,大概就这些,增加接口测试的扩展性。

参考博客如下:http://www.cnblogs.com/Lin-Yi/p/7306235.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值