中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Appium原理與安裝 | 白月黑羽教Python

本教程講解如何使用Appium進行手機應用的自動化。

學習本課程前,強烈推薦先學習 Selenium Web 自動化課程

Appium 用途和特點

點擊這里,邊看視頻講解,邊學習以下內(nèi)容

Appium 是一個移動 App (手機應用)自動化工具。

手機APP 自動化有什么用?

  • 自動化完成一些重復性的任務

    比如微信客服機器人

  • 爬蟲

    就是通過手機自動化爬取信息。

    為什么不通過網(wǎng)頁、HTTP 爬取呢?有的系統(tǒng)沒有網(wǎng)頁,也不方便通過HTTP爬取

  • 自動化測試

    很多企業(yè)里面有這樣的需求


Appium 自動化方案的特點:

  • 開源免費

  • 支持多個平臺

    iOS (蘋果)、安卓 App 的自動化都支持。

  • 支持多種類型的自動化

    支持 蘋果、安卓 應用 原生界面 的自動化

    支持 應用 內(nèi)嵌 WebView 的自動化

    支持 手機瀏覽器 中的 web網(wǎng)站自動化

    支持 flutter 應用的自動化

  • 支持多種編程語言

    像 Selenium 一樣, 可以用多種編程語言 調(diào)用它 開發(fā)自動化程序。

自動化原理

我們先來看一下Appium自動化的原理圖

這圖是不是很眼熟?

對啦,和Selenium 原理圖很像。因為 Appium自動化架構就是借鑒的Selenium。

大家看看這幅圖, 包含了 3個主體部分 : 自動化程序、Appium Server、移動設備

  • 自動化程序

    自動化程序是由我們來開發(fā)的,實現(xiàn)具體的 手機自動化 功能。

    要發(fā)出具體的指令控制手機,也需要使用 客戶端庫。

    和Selenium一樣,Appium 組織 也提供了多種編程語言的客戶端庫,包括 java,python,js, ruby等,方便不同編程語言的開發(fā)者使用。

    我們需要安裝好客戶端庫,調(diào)用這些庫,就可以發(fā)出自動化指令給手機。

  • Appium Server

Appium Server 是 Appium 組織開發(fā)的程序,它負責管理手機自動化環(huán)境,并且轉(zhuǎn)發(fā) 自動化程序的控制指令 給 手機,并且轉(zhuǎn)發(fā) 手機給 自動化程序的響應消息。

  • 手機設備

    我們這里說的手機設備,其實不僅僅是手機,包括所有 蘋果、安卓的移動設備,比如:手機、平板、智能手表等。

    為了直觀方便的講解,這里我們簡稱: 手機

    當然手機上也包含了 我們要自動化控制的 手機應用APP。

    手機設備為什么能 接收并且處理自動化指令呢?

    因為,Appium Server 會在手機上 安裝一個 自動化代理程序, 代理程序會等待自動化指令,并且執(zhí)行自動化指令

比如:要模擬用戶點擊界面按鈕,Appium 自動化系統(tǒng)的流程是這樣的:

  • 自動化程序 調(diào)用客戶端庫相應的函數(shù), 發(fā)送 點擊元素 的指令(封裝在HTTP消息里)給 Appium Server

  • Appium Server 再轉(zhuǎn)發(fā)這個指令給 手機上的自動化代理

  • 手機上的自動化代理 接收到 指令后,調(diào)用手機平臺的自動化庫,執(zhí)行點擊操作,返回點擊成功的結(jié)果給 Appium Server

  • Appium Server 轉(zhuǎn)發(fā)給 自動化程序

  • 自動化程序了解到本操作成功后,繼續(xù)后面的自動化流程

其中,自動化代理控制,使用的什么庫來實現(xiàn)自動化的呢?

如果測試的是蘋果手機, 用的是蘋果的 XCUITest 框架 (IOS9.3版本以后)

如果測試的是安卓手機,用的是安卓的 UIAutomator 框架 (Android4.2以后)

這些自動化框架提供了在手機設備上運行的庫,可以讓程序調(diào)用這些庫,像人一樣自動化操控設備和APP,比如:點擊、滑動,模擬各種按鍵消息等。

自動化環(huán)境搭建

點擊這里,邊看視頻講解,邊學習以下內(nèi)容

本教程主要講解 安卓APP的自動化。

環(huán)境搭建需要下載安裝不少軟件,而且還有不少是國外網(wǎng)站下載的。

為了方便各位朋友,白月黑羽把這些軟件 最新的安裝包 都放在如下的百度網(wǎng)盤鏈接中了,請大家自行下載。

鏈接:https://pan.baidu.com/s/19C9fGmoXne8DgfXhrTB2TQ

提取碼:kgwb

安裝client編程庫

根據(jù)原理圖, 我們知道自動化程序需要調(diào)用客戶端庫和 Appium Server 進行通信。

因為我們介紹Python語言開發(fā),所以當然是用pip安裝,如下

pip install appium-python-client

安裝Appium Server

Appium Server 是用 nodejs 運行的,基于js開發(fā)出來的。

Appium組織為了方便大家安裝使用,制作了一個可執(zhí)行程序 Appium Desktop,把 nodejs 運行環(huán)境、Appium Server 和一些工具 打包在里面了,只需要簡單的下載安裝就可以了。

可以從 上面給出的百度網(wǎng)盤連接 下載安裝: Appium-windows-1.15.1.exe


附加信息: Appium Desktop官方下載,點擊這里打開下載頁面

安裝JDK

本教程主要講解 安卓APP的自動化,必須要安裝安卓SDK(后面會講到),而安卓SDK需要 JDK 環(huán)境。

可以從 上面給出的百度網(wǎng)盤連接 下載安裝: jdk-8u211-windows-x64.exe


安裝好之后,還需要添加一個環(huán)境變量 JAVA_HOME ,指定 值 為 jdk安裝目錄,比如

JAVA_HOME   d:\tools\java\jdk1.8.0_211

具體操作參考視頻講解。

安裝 Android SDK

對于安卓APP的自動化,Appium Server 是需要 Android SDK的。

因為要用到里面的一些工具,比如 要執(zhí)行命令設置手機、傳送文件、安裝應用、查看手機界面等。

可以從 上面給出的百度網(wǎng)盤連接 下載最新的 Android SDK文件包: androidsdk.zip ,并且解壓,即可。


解壓完成后,需要 配置一下 添加一個 環(huán)境變量 ANDROID_HOME ,設置值為sdk包解壓目錄,比如 d:\tools\androidsdk


另外,還推薦大家配置環(huán)境變量 PATH ,加入 adb所在目錄, d:\tools\androidsdk\platform-tools\

注意:是 添加 該目錄到環(huán)境變量PATH中, ?。?!不是替換?。?! ,否則會導致系統(tǒng)命令都找不到的嚴重后果,初學者 請對照視頻講解操作。

連接手機

上述的軟件環(huán)境都準備好以后,要自動化手機APP,需要:

  • 在你運行程序的電腦上 用 USB線 連接上 你的安卓手機

  • 進入 手機設置 -> 關于手機 ,不斷點擊 版本號 菜單(7次以上),

  • 退出到上級菜單,在開發(fā)者模式中,啟動USB調(diào)試

如果手機連接USB線后,手機界面彈出 類似 如下提示。

選擇 允許USB調(diào)試。


注意:

有的手機系統(tǒng),可能需要一些額外的選項需要設置好。

比如,有的手機,開發(fā)者選項里 需要打開 允許通過USB安裝應用 等。

總之,給USB開發(fā)調(diào)試 盡可能方便的控制手機。


連接好以后,打開命令行窗口, 執(zhí)行 adb devices -l 命令來列出連接在電腦上的安卓設備。

如果輸出 類似如下的內(nèi)容:

List of devices attached4d0035dc767a50bb        device product:t03gxx model:GT_N7100 device:t03g

表示電腦上可以查看到 連接的設備,就可以運行自動化程序了。

一個例子

點擊這里,邊看視頻講解,邊學習以下內(nèi)容

下面是一段使用 Appium 自動化的打開 B站 應用,搜索 白月黑羽 發(fā)布的教程視頻,并且打印視頻標題的示例。

from appium import webdriverfrom appium.webdriver.extensions.android.nativekey import AndroidKeydesired_caps = {  'platformName': 'Android', # 被測手機是安卓  'platformVersion': '8', # 手機安卓版本  'deviceName': 'xxx', # 設備名,安卓手機可以隨意填寫  'appPackage': 'tv.danmaku.bili', # 啟動APP Package名稱  'appActivity': '.ui.splash.SplashActivity', # 啟動Activity名稱  'unicodeKeyboard': True, # 使用自帶輸入法,輸入中文時填True  'resetKeyboard': True, # 執(zhí)行完程序恢復原來輸入法  'noReset': True,       # 不要重置App  'newCommandTimeout': 6000,  'automationName' : 'UiAutomator2'  # 'app': r'd:\apk\bili.apk',}# 連接Appium Server,初始化自動化環(huán)境driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)# 設置缺省等待時間driver.implicitly_wait(5)# 如果有`青少年保護`界面,點擊`我知道了`iknow = driver.find_elements_by_id("text3")if iknow:    iknow.click()# 根據(jù)id定位搜索位置框,點擊driver.find_element_by_id("expand_search").click()# 根據(jù)id定位搜索輸入框,點擊sbox = driver.find_element_by_id('search_src_text')sbox.send_keys('白月黑羽')# 輸入回車鍵,確定搜索driver.press_keycode(AndroidKey.ENTER)# 選擇(定位)所有視頻標題eles = driver.find_elements_by_id("title")for ele in eles:    # 打印標題    print(ele.text)input('**** Press to quit..')driver.quit()

運行代碼前,要先 運行 Appium Desktop

點擊這里,觀看視頻里面對上述代碼的講解

上面的代碼只是抓取一頁視頻標題,要自動化滾動抓取所有的視頻標題,實戰(zhàn)班學員 ,請聯(lián)系老師獲取參考代碼。

游客 也可以 分享課程 領取參考代碼,點擊這里查看

查找 應用 Package 和 Activity

點擊這里,邊看視頻講解,邊學習以下內(nèi)容

沒有apk

如果你應用已經(jīng)安裝在手機上了,可以直接打開手機上該應用,進入到你要操作的界面

然后執(zhí)行

adb shell dumpsys activity recents | find "intent={"

會顯示如下,最近的 幾個 activity 信息,

intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=tv.danmaku.bili/.ui.splash.SplashActivity}intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000300cmp=com.huawei.android.launcher/.unihome.UniHomeLauncher}intent={flg=0x10804000 cmp=com.android.systemui/.recents.RecentsActivity bnds=[48,1378][10322746]}intent={flg=0x10000000 cmp=com.tencent.mm/.ui.LauncherUI}

其中第一行就是當前的應用,我們特別關注最后

cmp=tv.danmaku.bili/.ui.splash.SplashActivity

應用的package名稱就是 tv.danmaku.bili

應用的啟動Activity就是 .ui.splash.SplashActivity

有apk

如果你已經(jīng)獲取到了 apk,在命令行窗口執(zhí)行

d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging d:\tools\apk\bili.apk | find "package: name="

輸出信息中,就有應用的package名稱

package: name='tv.danmaku.bili' versionCode='5531000' versionName='5.53.1' platformBuildVersionName='5.53.1' compileSdkVersion='28' compileSdkVersionCodename='9'

在命令行窗口執(zhí)行

d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging d:\tools\apk\bili.apk | find "launchable-activity"

輸出信息中,就有應用的啟動Activity

launchable-activity: name='tv.danmaku.bili.ui.splash.SplashActivity'  label='' icon=''
自學我們的教程時,應該找個同桌 一起學習,互相交流督促。

如果自學速度慢、難點搞不定,歡迎來報 實戰(zhàn)班 學習。
白月黑羽 1對1連線 講解答疑,大量練習實戰(zhàn),學習效果是自學沒法比的。還有商業(yè)項目實戰(zhàn),可以寫入簡歷。

點擊這里查看實戰(zhàn)班介紹 咨詢微信:18502556834

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
面試|Appium移動端自動化測試,搭建模擬器
Appium+python自動化21-DesiredCapabilities詳解
appium python的APP自動化(1)
「docker實戰(zhàn)篇」python的docker爬蟲技術
Windows10終于支持Android子系統(tǒng),雙擊apk即可安裝安卓app
Android自動化壓力測試圖解教程——Monkey工具
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服