亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Pytest的公路工程外業(yè)調(diào)查APP兼容性測試

        2025-05-01 00:00:00黃楠森王茜
        科技創(chuàng)新與應(yīng)用 2025年11期
        關(guān)鍵詞:自動化測試軟件開發(fā)

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

        關(guān)鍵詞:Pytest;兼容性測試;并行處理;自動化測試;軟件開發(fā)

        中圖分類號: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

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

        1" 問題

        四川交通設(shè)計院自研的公路工程外業(yè)調(diào)查APP廣泛地運用與調(diào)查一線,其累計用戶已達到4 000余人。據(jù)統(tǒng)計,其使用的Android機型達100多種,常用機型30多種。

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

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

        2" 解決方案

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

        3" Pytest簡介

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

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

        4" Appium Server簡介

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

        5" 開發(fā)環(huán)境搭建

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

        5.1" Android JDK的環(huán)境配置

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

        Step1:右鍵“我的電腦”中的屬性,進入高級系統(tǒng)設(shè)置后,點擊環(huán)境變量。

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

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

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

        5.2" SDK 環(huán)境變量的配置

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

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

        Step1:右擊“我的電腦”,選擇“屬性”,進入“高級系統(tǒng)設(shè)置”后,點擊“環(huán)境變量”。

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

        Step3:在系統(tǒng)變量中,選中Path變量,進行編輯。在Path中分別新建2個環(huán)境變量,分別為%ANDROI

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

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

        5.3" Appium-server的安裝配置

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

        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。

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

        首次運行,允許uiautomator2應(yīng)用安裝到測試機。

        6.1" pool類執(zhí)行多進程并行操作

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

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

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

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

        6.2 DeviceInfo實例調(diào)用獲取所有設(shè)備的信息

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

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

        6.3" cmdopt函數(shù)調(diào)用啟動driver

        在存放夾具的conftest全局文件中,通過鉤子函數(shù)pytest_addoption將--cmdopt設(shè)置為自定義命令行,并通過cmdopt函數(shù)獲取命令行選項的值,即device_info的值,并返回給調(diào)用者。最后驅(qū)動器driver以cmdopt函數(shù)作為入?yún)?,入?yún)⒐﹩觓ppium和app的函數(shù)調(diào)用,如圖12所示。

        6.4" BaseDriver啟動appium和app

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

        7" 結(jié)論

        根據(jù)3種機型自動化兼容性測試的實驗結(jié)果,發(fā)現(xiàn)華為Nova12有2處未通過的測試是Mate60和小米14 Ultra所沒有的。

        通過自動化并行兼容性測試,有效地發(fā)現(xiàn)了因不同的機型導(dǎo)致的app部分功能失效。提高了測試效率,保證了軟件質(zhì)量。

        參考文獻:

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

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

        [3] 王玥,基于深度學(xué)習(xí)的回歸測試與兼容性測試的研究與實現(xiàn)[D]北京:北京郵電大學(xué),2024.

        猜你喜歡
        自動化測試軟件開發(fā)
        Hadoop性能測試自動化研究
        數(shù)據(jù)驅(qū)動和關(guān)鍵字驅(qū)動的研究與應(yīng)用
        軟件(2016年4期)2017-01-20 09:56:35
        淺談空調(diào)控制器自動化測試
        東方教育(2016年7期)2017-01-17 21:28:10
        基于多總線結(jié)構(gòu)的電路板測試系統(tǒng)設(shè)計研究
        價值工程(2016年32期)2016-12-20 20:32:01
        信息安全環(huán)境下的計算機軟件開發(fā)研究
        計算機軟件開發(fā)中的分層技術(shù)運用
        建模技術(shù)在軟件開發(fā)中的應(yīng)用
        航空航天與國防電子新形勢下自動化測試系統(tǒng)的應(yīng)用
        價值工程(2016年29期)2016-11-14 02:40:46
        軟件開發(fā)中數(shù)據(jù)庫設(shè)計理論的實踐
        基于CTI—TET和SeleniumWebdriver的Web應(yīng)用自動化測試框架的設(shè)計與實現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:45:45
        人妻少妇精品视频专区二区三区| 亚洲中文久久精品无码ww16| 亚洲欧洲日产国产AV无码| 特一级熟女毛片免费观看| 国产午夜精品综合久久久| 粉嫩国产av一区二区三区| 97碰碰碰人妻无码视频| 一本无码人妻在中文字幕免费| 99热这里只有精品国产66| 国产毛片一区二区三区| 91精品国自产拍老熟女露脸| 国产精品办公室沙发| 国产成年无码v片在线| 91精品全国免费观看青青| 亚洲在线视频一区二区| 国产三级精品av在线| 久久久国产乱子伦精品| 欧产日产国产精品精品| 不卡a v无码在线| 亚洲av熟女天堂久久天堂| 国产精华液一区二区三区| 欧美性色黄大片手机版| 精品国产三级a在线观看| 日本中文字幕av网址| 人妖在线一区二区三区| 久久久久亚洲av成人网人人软件| 亚洲精品国产成人| 爆乳日韩尤物无码一区| 九九久久精品一区二区三区av| 精品熟人妻一区二区三区四区不卡 | 蜜桃伦理一区二区三区| 亚洲精品女同一区二区三区| 日本一区二区三区免费播放| 把插八插露脸对白内射| 亚洲无码毛片免费视频在线观看 | 91福利国产在线观看网站| 日本高清一区二区在线播放| 中文字幕无码中文字幕有码| 国产97色在线 | 亚洲| 人妻无码人妻有码不卡| 字幕网中文字幕精品一区|