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

1. 前言

熟悉 Airtest 的同学都知道,像touchswipe这类核心 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 报告里 “上榜”。


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

官方答疑 Q 群:117973773

呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~


↙↙↙阅读原文可查看相关链接,并与作者交流