日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网易技术干货 | 云信移动端音视频UI自动化测试实践

發布時間:2025/3/8 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网易技术干货 | 云信移动端音视频UI自动化测试实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章來自網易云信高級測試工程師,在從事測試工作的五年時間中,她做過Android端、Windows端、Web端、服務端測試,在UI自動化、接口自動化、音視頻測試方面均有所積累。本文將結合應用實踐,介紹下如何使用ATX實現音視頻的自動化測試。

一、ATX介紹

首先來簡單介紹下ATX。ATX(AutomatorX) 是一款開源的自動化測試方案,支持測試iOS平臺和Android平臺的原生應用、游戲、Web應用。使用Python來編寫測試用例,混合使用圖像識別,控件定位技術來完成游戲的自動化。附加專用的IDE來完成腳本的快速編寫。

ATX在Android端編寫UI自動化的部分為 UIautomatorII,開源地址:

https://github.com/openatx/uiautomator2,源于谷歌的UIautomator,經過封裝之后目前支持使用python來編寫。在支持UIautomator原生功能的基礎上,新增了以下feature:

  • 設備和開發機可以脫離數據線,通過WiFi互聯(基于atx-agent)
  • 集成了openstf/minicap達到實時屏幕投頻,以及實時截圖
  • 集成了openstf/minitouch達到精確實時控制設備
  • 修復了xiaocong/uiautomator經常性退出的問題
  • 代碼進行了重構和精簡,方便維護
  • 實現了一個設備管理平臺(也支持iOS) atxserver2

ATX在ios端編寫UI自動化的部分為facebook-wda,開源地址:https://github.com/openatx/facebook-wda

二、應用舉例

這部分以Android端為例,介紹下如何上手使用ATX。

1. 環境準備

a) 下載python環境,建議直接使用python3以上的環境,python將在2020年停止對python2的支持

下載python包,安裝,配置環境變量。

下載一個ide,比如pycharm、wing ide等。

b) 安裝adb,并且設置環境變量

c) 下載python 的包管理工具pip

d) 使用pip 下載uiautomator2

pip install uiautomator 2

e) 手機上安裝ATX助手

python -m uiautomator2 init

2. 使用編輯器查看UI結構

a) 在python環境下安裝并啟動 編輯器 ATX editor

安裝:python -m pip install --upgrade weditor

啟動:python -m weditor

啟動完成之后打開頁面

b) 連接手機,打開atx,獲取ip地址,填入connect左邊的輸入框處,點擊connect

c) 在webditor頁面點擊操作等可生成python代碼,輔助測試代碼的開發

3. 打開IDE開始編寫代碼

a) 連接設備:

import uiautomator2 as u2 d =

u2.connect('10.0.0.1') # alias for

u2.connect_wifi('10.0.0.1') print(http://d.info)

上面是通過wifi連接,目前支持三種連接方式:通過wifi、USB、ADB WIFI

上述http://d.info可用于獲取設備信息

b) 操作手機設備:

d.press("home") 點擊home鍵

d.screen_off() 鎖屏

d.open_quick_settings() 查看快捷鍵

c) 安裝、啟動、卸載應用

d.app_install('http://some-domain.com/some.apk')

d.app_start("http://com.example.xxx")

d.app_stop("http://com.example.xxx")

d) 識別手機上控件、對控件進行相關操作等

d(text='Clock', className='android.widget.TextView')

具體使用指導參考:

https://github.com/openatx/uiautomator2

三、云信實時音移動端實踐

1. 云信實時音視頻Android端實踐

使用UIautomatorII實現UI自動化測試。測試代碼結構如下:

?

幾個文件夾的作用分別如下:

cases:負責編寫用例

common:集成了測試框架的核心部分,包括對開源UI方案的封裝、開源的測試報告、基礎UI操作的封裝、日志方法、數據庫操作

config:配置信息,設備ID等

logs:存儲了運行日志

results:存儲了測試報告

runsuite:測試用例集管理

其中commonbase.py里面完成了對應用操作的基礎封裝,比如啟動應用、殺進程、安裝應用、卸載應用、拉取日志、權限控制、button初始化、基礎業務邏輯封裝(創建房間、入會、打開關閉攝像頭等等)。

建議在完成開源工具熟悉和業務基礎用例整理之后就按照上述模式搭建測試框架,方便編寫用例、排查問題和擴展功能。

2. 云信實時音視頻iOS端實踐

iOS端結構和Android端類似,引入atx、unittest模塊后,在basecase.py里對一些通用并且基礎的操作進行了封裝,比如啟動、殺掉進程,創建/進入音視頻房間、對switch開關的設置開啟和關閉等,方便在具體的測試用例中進行調用。

四、關于UI自動化的斷言

關于斷言,在接口自動化和純應用的UI自動化中,斷言的方式相對直接,借助接口返回值,借助界面UI變化即可進行判斷。在云信的音視頻業務中,測試需要保證的內容,除了簡單的邏輯相關的功能之外,大部分是跟音視頻體驗結合的功能和效果改進。在這里經過長時間和多次數的摸索,我們采用監控控件 + 結合日志判斷兩個層面來進行音視頻斷言。

那么如何在結合日志進行音視頻斷言呢?下面將舉幾個例子來說明:

1. 判斷音視頻通話成功建立

獲取到 cid,說明已經獲取到建立通話的關鍵憑證,相當于鑰匙。

獲取日志中關于音視頻播放的首幀音頻和首幀視頻,目前分別為 first auido、first video,用這兩個來識別下行的音視頻播放是否成功,再結合不同的uid就可以進行多人會議的判斷。

通過上面兩個標識,再結合控件的變化,可以對基礎的音視頻通話:點對點音視頻通話、多人音視頻通話、互動直播、多流、訂閱等進行自動化測試。

2. 判斷通話中棄用了何種QoS模式

目前云信業務中對外有三種Qos模式:1流暢;2清晰;3錄屏,在日志中相關的字段是encodeMode,通過UI自動化設置Qos模式,通過日志判斷是否設置成功,再結合 1 來判斷通話建立的情況。

3. 判斷通話中具體使用了哪種分辨率

日志中通過 set_video_codec_rate 來標識具體設置和使用了哪檔分辨率,使用這個條件再加 1 的判斷方法,可以完成用例中對于各種分辨率的遍歷。

按照上述方法,用例中關于幀率的遍歷、攝像頭和麥克風的操作等等均可以自動化。

五、使用心得

1. 在使用ATX編寫 iOS 自動化時,在環境穩定之后,盡量不要隨意升級xcode,可能引發wda連接失敗等等情況

2. 早期UIautomatorII的版本在oppo機型上的適配不好,因為oppo設備打開usb調試會有提醒條,導致空間獲取失敗,目前已經解決,建議更新到最新版本使用

3. 在Android端上編寫UI自動化時,偶爾出現無法啟動atx-agent的情況,遇到這種情況,需要重新初始化uiautomator2

總結

以上是生活随笔為你收集整理的网易技术干货 | 云信移动端音视频UI自动化测试实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。