999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Pytest的公路工程外業調查APP兼容性測試

2025-05-01 00:00:00黃楠森王茜
科技創新與應用 2025年11期

摘" 要:四川交通院自研的公路工程外業調查APP廣泛地用于一線外業勘測。由于軟件與機型及其機型版本適配的問題,導致該軟件在不同的設備上可能會產生不同。針對該情況,發明一種能夠多機并行兼容性自動化測試的方法。對于常用的3種Android手機,給出具體的實現方法。通過該方法,大大縮短依次手動測試需要的時間,避免重復且繁瑣的手工測試,保證軟件的質量,縮短軟件開發的周期。

關鍵詞:Pytest;兼容性測試;并行處理;自動化測試;軟件開發

中圖分類號:TP274 文獻標志碼:A 文章編號:2095-2945(2025)11-0045-04

Abstract: The self-developed Highway Engineering Field Survey App by Sichuan Transportation Institute is widely used in frontline field surveys. Due to issues related to software compatibility with different device models and versions, the software may experience various problems on different devices. To address this, a method for parallel multi-device automated compatibility testing was invented. The specific implementation for three commonly used Android phones was provided. This method significantly reduces the time required for sequential manual testing, avoids repetitive and tedious manual testing, ensures software quality, and shortens the software development cycle.

Keywords: Pytest; compatibility testing; parallel processing; automated testing; software development

四川省交通勘察設計研究院有限公司自研的公路工程外業調查APP適用于各版本的Android手機系統,但某些APP功能需針對不同的機型進行程序適配,在華為手機上能正常運行的功能,但小米手機上可能會無法正常使用,因此,需針對不同機型的Android手機依次進行自動化測試。每一種機型的手機單獨運行測試用例耗時費力。提供了一種并行兼容性測試的方法能夠同時在多種機型的手機上運行測試用例,提高測試效率。

1" 問題

四川交通設計院自研的公路工程外業調查APP廣泛地運用與調查一線,其累計用戶已達到4 000余人。據統計,其使用的Android機型達100多種,常用機型30多種。

盡管在軟件測試過程中,已采用了自動化測試的方式提高軟件的測試效率和測試質量,并且取得了良好的收益。測試效率相比于手動測試提高了80%,大大縮短了軟件開發的周期。測試流程也做到了標準化、流程化和智能化。

但有的問題依然存在。由于用戶使用機型繁多,會造成同一個功能在某些用戶的手機上能正常使用,而在另一些用戶的手機上出現問題。這就需要拿到有代表性的樣機依次對已有功能進行兼容性測試。盡管已有自動化測試提高效率,但如果將十多個樣機依次插入電腦進行測試,依然非常耗費時間。且測試人員需一直守在電腦前,等一個樣機測試完畢后,更換另一個樣機進行測試。

2" 解決方案

多機并行兼容性測試是指將若干個手機同時連接到電腦上,同時利用一套測試代碼在若干個手機上運行測試用例,最后分別輸出測試報告。這種方式是傳統自動化測試方式的進階,不僅滿足了自動化測試的要求,而且能夠同一時間在多個手機上進行自動化測試。針對此種解決方案,發明了一種基于Pytest的公路工程外業調查APP的兼容性測試方法,并且對于Android手機常用的測試場景給出了具體的實現方法。

3" Pytest簡介

Pytest是一個強大的Python測試框架,用于編寫和運行測試用例。它廣泛應用于單元測試、集成測試、功能測試等各類測試場景。Pytest 的主要特點包括易用性、靈活性和豐富的插件生態系統。

Pytest提供了Fixture功能,用于在測試用例前后執行準備和清理操作。例如,數據庫連接、初始化數據、創建臨時文件等。Fixture可以設置不同的作用域,如函數級別、模塊級別或會話級別。

4" Appium Server簡介

Appium Server 是一種用于自動化測試移動應用程序的工具,它支持在 Android 和 iOS 平臺上進行測試。作為一個開源項目,Appium 允許開發人員使用標準的 WebDriver 協議(與 Selenium 類似)編寫測試腳本,以便與移動設備上的應用程序進行交互。Appium Server 接受客戶端發送的測試請求(命令),將這些請求翻譯成設備可執行的動作,并將執行結果返回給客戶端。

5" 開發環境搭建

本節主要介紹了Android SDK,JDK的環境配置,appium server的安裝配置,appium客戶端的安裝,pytest的安裝。Android SDK、JDK、Python的安裝配置只需根據安裝提示按流程進行,不在本節進行說明。

5.1" Android JDK的環境配置

JDK是開發人員運用Java進行開發的核心工具包,它提供了Java開發的一系列工具與環境。其中包括Java編譯器,Java開發和運行所需的環境。其中重要的環境例如Java類庫、Java虛擬機、調試工具、打包工具和文檔生成工具。以此,是進行Android端APP測試必不可少的程序。配置Java環境包含以下步驟。

Step1:右鍵“我的電腦”中的屬性,進入高級系統設置后,點擊環境變量。

Step2:新建系統變量為JAVA_HOME,變量值輸入為jdk的安裝目錄。點擊“確定”,如圖1所示。

Step3:在系統變量中,找到Path變量,選中,進行編輯。在Path中新建2個環境變量,分別為%JAVA_HOME\bin和%JAVA_HOME%\jre\bin。確保變量名字的大小寫準確,編寫完畢,點擊確定,如圖2所示。

Step 4: JDK配置完成后,退出環境變量的配置頁面。

5.2" SDK 環境變量的配置

Android SDK包含了Android開發,調試,測試的一系列工具和包。這其中,本次測試使用的adb命令就包含在Android SDK中。Adb命令用于測試Android手機是否能夠與測試電腦正常通信,以及獲取設備的uuid值以尋求測試電腦與Andoid手機的正常通信等。

配置Android SDK的環境變量與配置JDK的步驟相類似,都是通過在環境變量中新建ANDROID_HOME環境變量,然后在Path中加入SDK安裝目錄中執行文件的路徑來實現的,以下是具體步驟。

Step1:右擊“我的電腦”,選擇“屬性”,進入“高級系統設置”后,點擊“環境變量”。

Step2:進入“環境變量”后,在“系統變量”中新建環境變量。變量名為ANDROID_HOME,變量值填寫ANDROID_SDK的安裝主目錄,確保地址正確。設置好后點擊“確定”退出,如圖3所示。

Step3:在系統變量中,選中Path變量,進行編輯。在Path中分別新建2個環境變量,分別為%ANDROI

D_HOME%\platform_tools和%ANDROID_HOME%\tools。新建好后,點擊“確定”保存并退出,如圖4所示。

Step 4:確認所有配置完畢后,即可退出。

5.3" Appium-server的安裝配置

Step 1:首先,確保電腦上安裝有nodejs和npm。可通過命令進行檢查,如圖5所示。若未安裝nodejs,可在官網上下載安裝nodejs,過程簡單,此節不再贅述。

Step 2:使用npm安裝指定版本的appium-server,如圖6所示。

Step 3:安裝完成后,可使用一下命令檢查appium-server是否安裝成功,如圖7所示。

5.4" Appium客戶端的安裝

在IDE工具Pycharm命令行中,輸入 pip install appium-python-client==2.8.1安裝指定版本的appium客戶端。

5.5" pytest的安裝

在IDE工具Pycharm命令行中,輸入pip install pytest==7.2.2安裝指定版本的pytest。

6" 并行測試實例

為測試不同Android版本的手機存在的APP兼容性問題,所用測試機分別為華為Mate 60,Android版本為12.0.1,小米14 Ultra,Android版本為13.0.1,華為mate40pro,Android版本為14.0.1。

測試開始之前,將手機通過數據線連接到USB拓展塢,打開手機的開發者模式。通過adb命令測試是否所有手機已與測試電腦相連。

首次運行,允許uiautomator2應用安裝到測試機。

6.1" pool類執行多進程并行操作

Multiprocessing 是 Python 的標準庫模塊,用于并行執行任務,以充分利用多核處理器的能力。

Pool 類提供了一種便捷的方式來并行執行函數調用。它允許將函數應用于輸入數據的多個部分,并并行執行這些調用。Pool 通過將多個進程分配給不同的處理器核,以提高性能,尤其是在 CPU 密集型任務中,如圖8所示。

Run_parallel為啟動測試的入口函數,device_infos變量將各個設備的信息以列表嵌套字典的形式從內存中讀取出來,通過pool.map(run_parallel,device_infos),使得run_parallel函數分別讀取各個設備的信息。

以自定義命令行--cmdopt={device_info}傳入設備信息參數,用作各個driver啟動appium的基本數據。

6.2 DeviceInfo實例調用獲取所有設備的信息

在DeviceInfo類中,編寫adb命令獲取所有設備的udid,如圖9所示。

而后利用獲取到的每個udid循環,獲取設備的其他信息,調用find_port函數和check_port函數設定好每個設備的port,bp_port,sys_port。最后將每個設備的信息以字典的形式存放入列表device_infomation當中,如圖10、11所示。

6.3" cmdopt函數調用啟動driver

在存放夾具的conftest全局文件中,通過鉤子函數pytest_addoption將--cmdopt設置為自定義命令行,并通過cmdopt函數獲取命令行選項的值,即device_info的值,并返回給調用者。最后驅動器driver以cmdopt函數作為入參,入參供啟動appium和app的函數調用,如圖12所示。

6.4" BaseDriver啟動appium和app

BaseDriver類以傳入的cmdopt表達式作為參數,在__init__方法中運用啟動appium,如圖13所示。然后調用get_base_driver()方法啟動應用程序,如圖14所示。

7" 結論

根據3種機型自動化兼容性測試的實驗結果,發現華為Nova12有2處未通過的測試是Mate60和小米14 Ultra所沒有的。

通過自動化并行兼容性測試,有效地發現了因不同的機型導致的app部分功能失效。提高了測試效率,保證了軟件質量。

參考文獻:

[1] 王佳明,駱德漢.基于Monkeyrunner的Android應用自動化測試框架的研究[J].電腦知識與技術2019(15):234-236,245.

[2] 成靜,朱怡安,張濤,等.基于模型的移動應用兼容性測試方法研究[J].西北工業大學學報,2015(2):337-341.

[3] 王玥,基于深度學習的回歸測試與兼容性測試的研究與實現[D]北京:北京郵電大學,2024.

主站蜘蛛池模板: 国产精品亚洲欧美日韩久久| 色妞永久免费视频| 国产91线观看| 伊人久久综在合线亚洲91| 在线观看亚洲精品福利片| 久久综合干| 欧美精品高清| 亚洲免费毛片| 亚洲中文字幕在线一区播放| 中文字幕乱码二三区免费| 国产对白刺激真实精品91| 精品成人一区二区三区电影| a级毛片网| 99ri国产在线| 欧美啪啪网| 国产亚洲精品91| 精品国产福利在线| 国产福利拍拍拍| 亚洲永久色| 青青国产视频| 国产精品私拍在线爆乳| 日韩人妻精品一区| 亚洲色欲色欲www在线观看| 亚洲最新网址| 国产黄色免费看| 99青青青精品视频在线| 久久9966精品国产免费| 亚洲天堂久久新| 日韩精品免费一线在线观看| 日韩福利在线观看| 久久中文字幕2021精品| 国产va免费精品观看| 精品国产免费第一区二区三区日韩| 色婷婷狠狠干| 五月天在线网站| 亚洲成人福利网站| 永久在线播放| 青青久久91| 免费看a毛片| 亚洲日韩精品无码专区| 美女一级免费毛片| 亚洲精品无码日韩国产不卡| 国产在线自乱拍播放| 日韩av无码DVD| 国产玖玖视频| 三级视频中文字幕| 中文字幕无码av专区久久| 久久国产黑丝袜视频| 精品一区二区三区自慰喷水| 全午夜免费一级毛片| 亚洲天堂网在线视频| 免费看黄片一区二区三区| 亚洲中文久久精品无玛| 国产精品视频3p| 婷婷色婷婷| 久久男人视频| 精品久久香蕉国产线看观看gif| 午夜色综合| 国内毛片视频| 国产白浆一区二区三区视频在线| 亚洲欧洲日韩综合| 一本一道波多野结衣av黑人在线| 在线视频亚洲色图| 九色视频一区| 91在线国内在线播放老师| 久久婷婷综合色一区二区| 欧美成人午夜影院| 伊人色综合久久天天| 另类欧美日韩| 亚洲天堂精品在线观看| 国产在线97| 欧美激情综合| 精品一区二区三区水蜜桃| 日韩AV无码免费一二三区| 久久福利片| 天堂亚洲网| 免费av一区二区三区在线| 99视频只有精品| 性喷潮久久久久久久久| 免费av一区二区三区在线| 22sihu国产精品视频影视资讯| 亚亚洲乱码一二三四区|