02 APP 自動化-Appium 運行原理詳解

環境搭建見 01 APP 自動化-環境搭建

文章目錄

        • 一、Appium及Appium自動化測試原理
        • 二、Appium 自動化配置項
        • 三、常見 ADB 命令
        • 四、第一個 app 自動化腳本

一、Appium及Appium自動化測試原理

Appium 跨平臺、開源的 app 自動化測試框架,用來測試 app 應用程序,支持Android/iOS 操作系統
為什么通過代碼操作不同的操作系統(Android/IOS)不同版本的手機終端的應用程序?

  • web自動測試:如何通過代碼,實現操作pc端的瀏覽器進行對應的操作?
    代碼->selenium 中 webdriver->xxx瀏覽器驅動->操控瀏覽器實現對應操作
  • app自動化測試: 代碼-----? 操控手機端的應用程序,實現對應 app 自動化測試
二、Appium 自動化配置項

不同系統不同版本可能用到不同的軟件包/框架----》python 腳本指定操作終端的這些參數設置
Desired Capabilities - Appium
常用必備參數:

  • platformName 操作系統(iOS/android) Android
  • platformVersion 系統版本 16.0
  • deviceName 設備名稱 127.0.0.1:62001
  • app/appPackage 包名 ‘com.tal.kaoyan’
  • appActivity 入口啟動頁面 ‘com.tal.kaoyan.ui.activity.SplashActivity’ —Android only
{"platformName": "iOS","appium:options": {"platformVersion": "14.4","deviceName": "iPhone 11","app": "Some-App.app.zip","automationName": "XCUITest"}
三、常見 ADB 命令

ADB 命令:命令調試橋

  • 1、連接模擬器 命令:
    • 查看連接設備:adb devices 或者 連接設備: adb connect 127.0.0.1:62001
    • 不同模擬器端口號不同:雷神:5555 夜神:62001 mumu:7555 逍遙:21503
  • 2、獲取包名及入口啟動頁面 aapt dump badging 包路徑
    • 進入 aapt.exe 所在的路徑(D:\Andriod_SDK\Andriod_SDK\build-tools\29.0.3)或者把所在路徑也配置到系統變量中
    • 再輸入命令:aapt dump badging C:\Users\x\Desktop\kaoyan3.1.0.apk
    • 注意:包路徑不要包含中文
    • 獲取包名:
    • 獲取啟動頁面appActivity 的值:
四、第一個 app 自動化腳本

以上環境配置完成后,按照下面步驟,即可實現 app 自動化啟動
1、通過 appium 命令啟動 appium server 服務
2、電腦鏈接手機,或者打開模擬器

  • 通過adb devices 查看連接狀態,保證是已連接狀態
  • 若不是連接狀態,通過adb connect 127.0.0.1:62001命令連接設備

3、編寫以下腳本代碼進行運行:

# -*- coding=utf-8 -*-from appium import webdriver
from appium.options.android import UiAutomator2Options# 設置操作終端的配置參數
desired_caps = dict(platformName='Android', # 指定操作系統platformVersion='7.1.2',# 指定操作系統版本automationName='Uiautomator2',# 默認框架deviceName='127.0.0.1:62001',# 指定設備名稱appPackage='com.tal.kaoyan',# 被操作的應用程序包名appActivity='com.tal.kaoyan.ui.activity.SplashActivity',# 啟動頁面noReset='false',# true--不重置  false--重置app='F:\Pycharm\AppAuto\kaoyan3.1.0.apk'  # apk文件所在路徑
)
# 發送命令給 appium server
driver = webdriver.Remote('http://127.0.0.1:4723', options=UiAutomator2Options().load_capabilities(desired_caps))

具體實現原理:

  • 1、自動化腳本發送 http 請求到 appium server

  • 2、創建會話 session

  • 3、確認終端設備是否連接,并且確認安卓的版本 確認設置其他參數與終端是否一致

  • 4、 appium會推送一個包 ‘AppiumBootstrap.jar’
    AppiumBootstrap.jar:實現 appium server 與手機終端進行數據交互

  • 5、下一個 http 請求

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82133.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82133.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82133.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UDP/TCP協議全解

目錄 一. UDP協議 1.UDP協議概念 2.UDP數據報格式 3.UDP協議差錯控制 二. TCP協議 1.TCP協議概念 2.三次握手與四次揮手 3.TCP報文段格式(重點) 4.流量控制 5.擁塞控制 一. UDP協議 1.UDP協議概念 當應用層的進程1要向進程2傳輸報文&#xff…

AWS之數據分析

目錄 數據分析產品對比 1. Amazon Athena 3. AWS Lake Formation 4. AWS Glue 5. Amazon OpenSearch Service 6. Amazon Kinesis Data Analytics 7. Amazon Redshift 8.Amazon Redshift Spectrum 搜索服務對比 核心功能與定位對比 適用場景 關鍵差異總結 注意事項 …

第13講、Odoo 18 配置文件(odoo.conf)詳細解讀

1. 概述 Odoo 配置文件(odoo.conf)是管理 Odoo 服務器行為的核心工具,涵蓋了網絡、安全、數據庫、性能等多方面的關鍵參數。本文檔系統梳理 Odoo 18 配置文件的主要參數,結合實際應用場景,提供權威的配置建議與最佳實…

Python詳細實現Dash儀表盤:從零構建數據可視化界面

目錄 Python詳細實現Dash儀表盤:從零構建數據可視化界面一、引言:為什么選擇 Dash?二、Dash 的核心組成與工作流程三、項目目標使用數據: 四、數學模型與聚合公式五、儀表盤結構設計頁面設計結構如下: 六、完整代碼實現…

ubuntu磁盤掛載

在 Ubuntu 系統中,掛載額外的磁盤或分區是一項常見操作,無論是為了擴展存儲空間還是組織數據。本文將詳細介紹如何使用mount命令掛載文件系統,并處理可能遇到的問題。 1、掛載文件系統的基本步驟 1.1、 查找磁盤設備名稱 首先需要確定要掛載…

[9-2] USART串口外設 江協科技學習筆記(9個知識點)

1 2 3 智能卡、IrDA和LIN是三種不同的通信技術,它們在電子和汽車領域中有著廣泛的應用: ? 智能卡(Smart Card): ? 是什么:智能卡是一種帶有嵌入式微處理器和存儲器的塑料卡片,可以存儲和處理數…

【js逆向_AES】全國二手房指數數據爬取

目標:請求參數signcode,請求結果data。 網址:aHR0cDovL3d3dy5jY2hpbmRleC5jb20vSG9tZS9pbmRleA 查看載荷 查看響應數據 點擊xhr,發現所有請求參數都是一個signCode,還是加密后的結果,對應結果中數據data也…

模塊化設計,static和extern(面試題常見)

文章目錄 一、函數的聲明和定義1.1 單個文件1.2 多個文件1.3 static和extern1.3.1 static修飾局部變量1.3.2 static修飾全局變量1.3.3 static修飾函數 總結 一、函數的聲明和定義 1.1 單個文件 一般我們在使用函數的時候,直接將函數寫出來就使用了 題目:寫一個函數…

PySide6 GUI 學習筆記——常用類及控件使用方法(地址類QUrl)

文章目錄 地址類QUrl主要功能URL 格式介紹常見 scheme(協議)類型QUrl 類常用方法常用方法示例典型應用場景 地址類QUrl QUrl 是 PySide6.QtCore 模塊中的一個類,用于處理和操作 URL(統一資源定位符)。它可以解析、構建…

GEE:獲取研究區的DEM數據

最近有粉絲追更 GEE 系列,說上次看完 DEM 代碼解析后,自己試著改了一版。今天咱們就來拆解他的優化版代碼 ——基于 SRTM 數據獲取研究區 DEM 并導出,順便聊聊怎么把 GEE 代碼寫得更專業! 先下結論:代碼邏輯完整,3 處細節值得新手抄作業! 這版代碼在數據加載→裁剪→可…

汽車安全 2030 預測 (功能安全FuSa、預期功能安全SOTIF、網絡安全CyberSecurity):成本、效益與行業影響

汽車安全 2030 預測 (功能安全FuSa、預期功能安全SOTIF、網絡安全CyberSecurity):成本、效益與行業影響 到 2030 年,汽車行業將迎來一場安全技術的深度變革,其中 “三重安全防護”(功能安全 FuSa、預期功能安全 SOTIF、網絡安全&…

深入理解設計模式之狀態模式

深入理解設計模式之:狀態模式(State Pattern) 一、什么是狀態模式? 狀態模式(State Pattern)是一種行為型設計模式。它允許一個對象在其內部狀態發生改變時,改變其行為(即表現出不…

Redis的大Key問題如何解決?

大家好,我是鋒哥。今天分享關于【Redis的大Key問題如何解決?】面試題。希望對大家有幫助; Redis的大Key問題如何解決? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 Redis中的“大Key”問題是指某個鍵的值占用了過多…

【STM32開發板】接口部分

一、USB接口 可以看到USBP和USBN與PA12,PA11引腳相接,根據協議,需要添加上拉電阻 二、ADC和DAC 根據原理圖找到可以作為ADC和DAC的引腳 ADC和DAC屬于模擬部分的,所以要接模擬地 三、指示燈電路 找幾個通用的引腳,因為單片機的灌電流比拉電流…

[Hackers and Painters] 讀書筆記 | 設計模式思想 | LISP

目錄 黑客與藝術的關系 “如果你有兩個選擇,就選擇較難的那個“ 金錢不等于財富。創造有價值的東西就是創造財富 項目公式 探討關于優秀程序員的話題 摘抄 保羅格雷厄姆其人其事 人物經歷 圖書介紹 個人作品編輯 譯者序 為什么書呆子不受歡迎 黑客與畫…

Linux基本指令/下

目錄 1.echo、cat與printf 2. > 操作符 與 >> 操作符 3. < 操作符 4.消息傳送 linux文件深入 5.文件類型 6.mv命令 7.時間相關指令 8.查找命令 9.grep命令 10.zip/unzip/tar命令 11.scp命令 12.bc命令 13.uname 指令 14.快捷鍵大全 15.關機/重啟/睡…

Apptrace:APP安全加速解決方案

2021 年&#xff0c;某知名電商平臺在 “618” 大促期間遭遇 DDoS 攻擊&#xff0c;支付系統癱瘓近 2 小時&#xff1b;2022 年&#xff0c;一款熱門手游在新版本上線時因 CC 攻擊導致服務器崩潰。觀察發現&#xff0c;電商大促、暑期流量高峰和年末結算期等關鍵商業周期&#…

NodeJS全棧開發面試題講解——P1Node.js 基礎與核心機制

? 1.1 Node.js 的事件循環原理&#xff1f;如何處理異步操作&#xff1f; 面試官您好&#xff0c;我理解事件循環是 Node.js 的異步非阻塞編程核心。 Node.js 構建在 V8 引擎與 libuv 庫之上。雖然 Node.js 是單線程模型&#xff0c;但它通過事件循環&#xff08;event loop&a…

【深度學習】sglang 的部署參數詳解

SGLang 的部署參數詳解 SGLang(Structured Generation Language)是一個高性能的大語言模型推理框架,專為結構化生成和多模態應用設計。本文將全面介紹SGLang的部署參數,幫助你充分發揮其性能潛力。 ?? SGLang 項目概覽 SGLang是由UC Berkeley開發的新一代LLM推理引擎,…

MATLAB實戰:機器學習分類回歸示例

以下是一個使用MATLAB的Statistics and Machine Learning Toolbox實現分類和回歸任務的完整示例代碼。代碼包含鳶尾花分類、手寫數字分類和汽車數據回歸任務&#xff0c;并評估模型性能。 %% 加載內置數據集 % 鳶尾花數據集&#xff08;分類&#xff09; load fisheriris; X_i…