1. 前言
熟悉Airtest的同学都知道,像touch
、swipe
这类核心API,运行之后,都会在Airtest报告里记录一个步骤:
但有很多情况下,我们可能会使用自定义的函数,这种自定义的函数,就不会被记录到我们的Airtest报告里面。
那如果我们想要自定义的函数,也能显示在Airtest报告里面,该怎么处理呢?接下来我们就一起来了解下Airtest的装饰器 @logwrap
。
2. @logwrap
的介绍与示例
Airtest提供了一个装饰器 @logwrap
,这个装饰器可以帮助我们把函数显示到Airtest报告中。
1)在自定义函数中使用@logwrap
的例子
我们可以从一个非常简单的例子,来体验下这个装饰器的作用。假设我们有一个自定义的函数,这个函数的作用是唤醒设备屏幕、启动计算机应用,我们姑且把这个自定义的函数叫做open_calculator
:
# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
from airtest.core.api import *
auto_setup(__file__)
@logwrap
def open_calculator():
wake()
start_app("com.sonymobile.exactcalculator")
open_calculator()
运行完这个简单的.air
脚本之后,我们就可以生成Airtest报告:
可以看到,这时候,自定义的函数,也被显示到了我们的Airtest报告里面,是不是非常简单!
2)附加1张当前设备截图的操作
如果我们希望在报告显示自定义函数内容的同时,还附带一张当前设备的截图的话,可以增加 snapshot=True
参数在自定义函数的定义中:
@logwrap
def open_calculator(snapshot=True):
wake()
start_app("com.sonymobile.exactcalculator")
这时候报告不仅能显示自定义的函数,还能带上一张设备截图:
但是,需要注意的是,增加 snapshot=True
参数这块的内容,是在1.2.7版本的Airtest才新增的,所以需要使用的同学,至少保证自己当前环境的Airtest版本大于等于1.2.7。
3. 小结
关于Airtest的装饰器@logwrap
就介绍到这里,感兴趣的同学可以赶紧实操一下,让你自定义的函数,也能在Airtest报告里“上榜”。