從.air腳本到純.py腳本的距離究竟有多遠


前言

有很多新手同學在剛開始使用AirtestIDE的時候,就特別喜歡新建純 .py 腳本,我想這可能是出於對純 .py 腳本莫名的熟悉感吧~

而認真看過我們官方教程的同學都知道,對於剛接觸Airtest和Poco這兩個自動化測試框架的新手來說,我們還是非常推薦大家從 .air 腳本開始學起的。

但鑒於在普通的 .py 腳本里面調用Airtest或者Poco的接口,也是同學們的一個剛需,我們今天就先來看看如何借助AirtestIDE來幫助我們新建純 .py 腳本,並了解下這其中有什么特別的注意事項吧~

本期目錄:

  • 1.新建.py腳本
  • 2.詳解auto_setup()里面的logdir和devices
  • 3.生成純.py腳本的報告

1.新建.py腳本

① 打開你的AirtestIDE,依次選擇 文件 - 新建腳本 - .py 純Python(高級用戶)

② 在彈出的設置窗口,依次設置好各個初始化參數:

③ 按上述設置新建的純 .py 腳本,初始化內容會如圖所示:

我們重點來看下這段初始化代碼

if not cli_setup():
    auto_setup(__file__, logdir=True, devices=[
            "Android://127.0.0.1:5037/ZPFABE5DI7WWZLAM?cap_method=JAVACAP",
    ])

這段初始化代碼的意思是說,當使用 python xxx.py 來運行本文件,且不帶任何命令行參數時,則自動使用 auto_setup 這個接口來對 Airtest 相關的參數進行初始化。這樣只需要在寫 .py 腳本時,填寫好期望的參數就能直接用 python xxx.py 指令來運行腳本。

如果是 python xxx.py --device xx --log xx 這種帶命令行參數的,只要腳本檢測到傳入了命令行參數,就依然優先使用命令行參數來初始化 Airtest 相關的參數。

2.詳解auto_setup()里面的logdir和devices

① 設置腳本運行時的log保存路徑--logdir

logdir 的值必須為 True 或者是指定的具體保存路徑。如果 logdir 的值為 None 的話,則默認在運行腳本時不保存log內容,也就是最終不能生成報告。

如果將 logdir 的值設置為 True ,則表示將log內容保存在默認為 .py 文件所在目錄下的 log/ 目錄:

如果填寫具體的保存路徑,比如 E:/test/log,此時log內容就會被保存在指定目錄下:

② 連接設備參數--devices

在新建 .py 腳本時,這個 devices 參數一定要加上,你可以使用當前IDE已連接的設備進行初始化,也可以建完腳本之后,自己再手動添加上。

如果沒有在 .py 腳本中添加這個連接設備的參數,那么腳本內關於Airtest或者Poco的腳本將無法正常執行(敲黑板!最常見的就是下圖這種情況):

image

不同設備連接參數的寫法也不一樣,具體可以參考我們往期的推文:“用1行代碼搞定自動化測試的設備連接問題”

3.生成純.py腳本的報告

生成純 .py 腳本的報告有倆種方法,一種是借助IDE的 查看報告 按鈕來生成;另一種是使用 simple_report() 方法生成報告。

① 借助IDE的 查看報告 按鈕

運行完 .py 腳本以后,點擊IDE的 查看報告 按鈕之后,會彈出一個提示框,讓你選擇log目錄所在位置:

此時你只需要選擇初始化參數 logdir 所填寫的路徑,再點擊OK即可。之后會在默認瀏覽器打開剛才的腳本運行報告。

② 使用 simple_report() 方法

 simple_report() 方法在 airtest.report.report 模塊中,所以使用之前,我們需要把這個方法引入進來:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
from airtest.cli.parser import cli_setup

if not cli_setup():
    auto_setup(__file__, logdir=True, devices=[
            "Android://127.0.0.1:5037/ZPFABE5DI7WWZLAM?cap_method=JAVACAP",
    ])

snapshot(msg="請填寫測試點.")

# generate html report
from airtest.report.report import simple_report
simple_report(__file__)

 

如果初始化的時候,logdir 的值為 True ,即log內容被保存在 .py 文件的log/目錄下,則我們可以直接使用 simple_report(__file__) ,無需其它參數,即可幫助我們在 .py 文件所在目錄生成腳本運行的報告 log.html:

如果初始化的時候,logdir 的值為指定目錄,則在 simple_report(__file__) 里面我們還需要加上以下參數:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
from airtest.cli.parser import cli_setup

if not cli_setup():
    auto_setup(__file__, logdir="E:/test/log", devices=[
            "Android://127.0.0.1:5037/ZPFABE5DI7WWZLAM?cap_method=JAVACAP",
    ])

snapshot(msg="請填寫測試點.")

# generate html report
from airtest.report.report import simple_report
simple_report(__file__,logpath="E:/test/log",output="E:/test/log/log.html")

因為初始化的時候,我們把腳本保存目錄用 logdir 參數指定為"E:/test/log",則在生成報告的時候,我們也要去找這個地址的log.txt,所以需要將 logpath 指定為"E:/test/log"。

另外我們希望log.html,即網頁版的報告也保存在此路徑,所以我們將output也指定為 "E:/test/log/log.html"。

那么我們可不可以不指定 output 地址呢?當然是可以的,如果我們沒有指定 output 地址的話,將默認在 .py 腳本所在的目錄下生成log.html:

 

關於 simple_report(__file__) 更多參數的詳情,可以參考此鏈接:https://airtest.readthedocs.io/zh_CN/latest/_modules/airtest/report/report.html#simple_report


Airtest官網:http://airtest.netease.com/
Airtest教程官網:https://airtest.doc.io.netease.com/
搭建企業私有雲服務:https://airlab.163.com/b2b

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM