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報告裏“上榜”。
Airtest官網:https://airtest.netease.com/
Airtest教程官網:https://airtest.doc.io.netease.com/
搭建企業私有云服務:https://airlab.163.com/b2b
官方答疑 Q 羣:117973773
呀,這麼認真都看到這裏啦,幫忙點個推薦支持一下唄,灰常感謝~