如何把自定义的函数,记录到你的Airtest报告里

758 阅读2分钟

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

熟悉Airtest的同学都知道,像touchswipe这类核心API,运行之后,都会在Airtest报告里记录一个步骤:

1.png

但有很多情况下,我们可能会使用自定义的函数,这种自定义的函数,就不会被记录到我们的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报告:

2.png

可以看到,这时候,自定义的函数,也被显示到了我们的Airtest报告里面,是不是非常简单!

2)附加1张当前设备截图的操作

如果我们希望在报告显示自定义函数内容的同时,还附带一张当前设备的截图的话,可以增加 snapshot=True 参数在自定义函数的定义中:

@logwrap
def open_calculator(snapshot=True):
    wake()
    start_app("com.sonymobile.exactcalculator")

这时候报告不仅能显示自定义的函数,还能带上一张设备截图:

3.png

但是,需要注意的是,增加 snapshot=True 参数这块的内容,是在1.2.7版本的Airtest才新增的,所以需要使用的同学,至少保证自己当前环境的Airtest版本大于等于1.2.7。

3. 小结

关于Airtest的装饰器@logwrap就介绍到这里,感兴趣的同学可以赶紧实操一下,让你自定义的函数,也能在Airtest报告里“上榜”。


AirtestIDE下载:airtest.netease.com/
Airtest 教程官网:airtest.doc.io.netease.com/
搭建企业私有云服务:airlab.163.com/b2b

官方答疑 Q 群:117973773