文章來源於AirtestProject
前言
有很多新手同學在剛開始使用AirtestIDE的時候,就特別喜歡新建純 .py
腳本,我想這可能是出於對純 .py
腳本莫名的熟悉感吧~
而認真看過我們官方教程的同學都知道,對於剛接觸Airtest和Poco這兩個自動化測試框架的新手來說,我們還是非常推薦大家從 .air
腳本開始學起的。
但鑑於在普通的 .py
腳本里面調用Airtest或者Poco的接口,也是同學們的一個剛需,我們今天就先來看看如何藉助AirtestIDE來幫助我們新建純 .py
腳本,並瞭解下這其中有什麼特別的注意事項吧~本期目錄:
- 1.新建.py腳本
- 2.詳解auto_setup()裏面的logdir和devices
- 3.生成純.py腳本的報告
(注:下文內容均使用IDE自帶的python環境)
1.新建.py腳本
① 打開你的AirtestIDE,依次選擇 文件
- 新建腳本
- .py 純Python(高級用戶
② 在彈出的設置窗口,依次設置好各個初始化參數:
③ 按上述設置新建的純 .py 腳本,初始化內容會如圖所示:
我們重點來看下這段初始化代碼
if not cli_setup():
auto_setup(__file__, logdir=True, devices=[
"Android://127.0.0.1:5037/ZPFABE5DI7WWZLAM",
])
這段初始化代碼的意思是說,當使用 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的腳本將無法正常執行(敲黑板!最常見的就是下圖這種情況):
擴展閱讀:Airtest API精講之設備連接管理API集合
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",
])
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",
])
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: