全網最全最細的appium自動化測試環境搭建教程以及appium工作原理

2021-02-13 python全棧自動化測試
一、前言

對於appium自動化測試環境的搭建我相信90%的自學者都是在痛苦中掙扎,在掙扎中放棄,在放棄後又重新開始,只有10%的人,人品比較好,能夠很快並順利的搭建成功。appium 自動化測試是很早之前做的,一直想留下點什麼,可是一直抽不出一塊完整的時間來做這件事兒。現在終於有了。

反觀各種網際網路的招聘,移動測試已經成了主流,如果再不去學習移動自動化測試技術將已經追不上時代的趕腳!好了,廢話不多說,進入正題!

二、Appium簡介

appium是移動端最主流的開源自動化測試框架。開源,免費

跨平臺:完全滿足IOS和Android兩個不同的系統以及H5的自動化測試。

Appium是基於Selenium來實現的

Appium是基於JDK+SDK環境來運行的。

Appium有Server版和Desktop版兩種,2020年前者已經淘汰了。

三、搭建Appium+Python自動化測試環境

1、安裝JDK並配置JDK的環境變量。

(1) JDK的下載

下載地址:

https://www.oracle.com/java/technologies/javase-downloads.html

下載版本選擇主流的jdk1.8的版本:

jdk-8u241-windows-x64.exe

(2) 配置JDK的環境變量:

我的電腦右鍵屬性-->高級系統設置-->高級-->環境變量-->系統變量:

1、新建系統變量:

變量名:JAVA_HOME

變量值:C:\Program Files\Java\jdk1.8.0_211

(這裡是jdk的實際安裝路徑)

2、新建系統變量:

變量名:CLASSPATH

變量值:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;

(前面有一點和冒號不能少)

3、編輯PATH變量,在PATH的最後面添加:

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(PATH中原來的路徑不要去掉哦)

4、驗證是否安裝並配置成功:

在dos中輸入javac和java -version驗證。

(分別出現一堆英文和jdk的版本信息則說明安裝配置成功!)


2、安裝SDK並配置SDK的環境變量。

(1) SDK的下載

下載地址:http://tools.android-studio.org/index.php/sdk/

下載版本選擇:android-sdk_r24.4.1-windows.zip

(2) SDK的安裝

進入D:\android-sdk-windows目錄,雙擊SDK Manager.exe下載對應的包:

      a.以下三個Android工具包必須安裝:只需要下載最新的版本就行了。

b.Extras(附加設備)

c.安卓版本:安裝和模擬器安卓版本一致的SDK。現在android 5開發的場景多一些

夜神模擬器查看Android版本:設置左邊的三橫->關於我們->Android版本

(3) 配置SDK的環境變量

我的電腦右鍵屬性-->高級系統設置-->高級-->環境變量-->系統變量:

1、新建:

變量名:ANDROID_HOME

變量值:D:\android-sdk-windows (SDK的實際安裝路徑)

2、編輯PATH,在最後面添加:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools\29.0.3;(如果原來PATH路徑最後不是;則加一個;再添加上面的內容)

3、驗證是否安裝並配置成功:

在dos中輸入adb驗證。在最上面出現Android Debug Bridge version版本信息,如下圖表示成功!


3、安裝夜神模擬器並在模擬器上安裝被測app

(1) 夜神模擬器的下載

下載地址:https://www.yeshen.com/

版本選擇:最新版

(2) 夜神模擬器的安裝

下一步下一步傻瓜式安裝。

(3) 被測app的安裝

把apk包直接拖拽到夜神模擬中安裝

(4) 設置模擬器/真機的環境

1.啟用設備的開發者選項,啟動調試功能。

夜神模擬器:設置->多次點擊版本號直到出現提示【開發者選項】->返回上一步能看到【開發者選項】->USB調試。

2.輸入命令前:因為SDK下的adb[在SDK安裝目錄的platform-tools目錄下]和模擬器的nox_adb[在夜神安裝目錄的bin目錄下]版本不一致,所以需要把SDK路徑下的abd.exe複製到模擬器的bin路徑下,重命名為nox_adb.exe,原來的nox_adb.exe先備份。


4.安裝和配置Appium

(1) 下載和安裝appium-desktop。

下載地址:(強烈建議使用迅雷下載)

https://github.com/appium/appium-desktop/releases

(2) 打開appium輸入:127.0.0.1和4723登錄,如下圖:

(3) 配置Appium檢查器:

A.Appium右上角有三個選項分別為:

      start inspector session 開始檢查會話(點擊它)

      Get Raw Logs 獲得原生日誌

      Stop Server 停止服務

B.點擊Automatic Server(自動化服務)

在Desired Capabilities選項中輸入如下內容,如圖:

deviceName:設備名稱

      獲取方式:通過adb devices獲取。

      值為:127.0.0.1:62001

platformName:作業系統名稱

      可填寫:Android和IOS

      值為:Android

platformVersion:作業系統版本

      查看天天模擬器的anroid版本獲取。

appPackage:包名

       通過aapt.exe獲取:aapt dump badging apk包的路徑。

       值為:找到package後面的值,一般在第一行。如:tv.danmaku.bili

appActivity:activity程序主入口

      通過aapt.exe獲取:aapt dump badging apk包的路徑,

      找到launchable-activity後面的值,如:

      tv.danmaku.bili.ui.splash.SplashActivity

      第一種可以取全部的值,第二種也可以只取包名以後的內容:

      第一種值為:tv.danmaku.bili.ui.splash.SplashActivity

      第二種值為:.ui.splash.SplashActivity (注意:前面有個點不能省略)

保存後點擊"Start Session"如出現:unkown... 錯誤,是因為模擬器中沒有安裝apk包。如果正常在模擬器裡啟動app則表示appium自動化測試環境搭建成功!


四、Appium運行原理

(1)自動化腳本向AppiumServer發送註冊參數(URL,platformName, platformVersion,deviceName,appPackage,appActivity)(2)AppiumServer將bootstrap.jar包放入手機端中(3)手機端用bootstrap啟動手機埠(4724),並將埠返回給AppiumServer(相當於建立好了通信連接)(4)自動化腳本發送請求(操作或命令或動作)給AppiumServer(5)AppiumServer將 請求解析並發送給bootstrap(6)bootstrap將請求解析發給UIAutomator(7)UIAutomator執行相應的操作並將結果返回給bootstrap(8)bootstrap將響應結果返回給AppiumServer(9)AppiumServer將響應結果返回到腳本綜上所述,個人認為AppiumServer像是一個請求者;bootstrap充當橋梁的角色,負責PC與電腦之間的通信;UIAutomator則是真正的執行者。
五、總結

如果你對此文有任何疑問,如果你覺得此文對你有幫助,如果你對軟體測試、接口測試、自動化測試、面試經驗交流感興趣歡迎加入軟體測試技術群:695458161,群裡免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。

筆者:公眾號:軟測之家

相關焦點

  • Appium自動化測試環境搭建
    >」進行關注,微信公眾號TestMadman前言Appium是一個開源的自動化測試框架,支持跨平臺,支持多種程式語言,可用於原生,混合和移動web應用程式,使用webdriver驅動ios,android應用程式、那麼為了學習app自動化測試首要任務肯定就是搭建測試開發環境, 因此在這裡記一次搭建Appium自動化測試環境的完整過程
  • 一套完整的Appium自動化測試環境搭建過程
    Appium是一個開源的自動化測試框架,支持跨平臺,支持多種程式語言,可用於原生,混合和移動web應用程式,使用webdriver驅動ios,android應用程式、那麼為了學習app自動化測試首要任務肯定就是搭建測試開發環境, 因此在這裡記一次搭建Appium自動化測試環境的完整過程,文章較長,需要花費一定的時間,請耐心閱讀,如果文中有什麼錯誤請指正。
  • 記一次搭建Appium自動化測試環境的完整過程
    應用程式、那麼為了學習app自動化測試首要任務肯定就是搭建測試開發環境, 因此在這裡記一次搭建Appium自動化測試環境的完整過程,文章較長,需要花費一定的時間,請耐心閱讀,如果文中有什麼錯誤請指正  JDK環境可以看我之前安裝Jenkins時的隨筆https://www.cnblogs.com/linuxchao/p/linuxchao-jenkins-setup.html,這裡需要注意一點儘量安裝
  • APP自動化測試系列之Appium介紹及運行原理
    微信公眾號後臺回復「資源」、「測試工具包」領取測試資源,回復「微信群」一起進群打怪。在面試APP自動化時,有的面試官可能會問Appium的運行原理,以下介紹Appium運行原理。Appium是開源的移動端自動化測試框架;Appium可以測試原生的、混合的、以及移動端的web項目;Appium可以測試IOS,Android應用;Appium是跨平臺的,可以用在osx,windows以及linux桌面系統上;Appium支持Ruby、Python、Java、JavaScript、Objective C、php
  • 【收藏乾貨】基於Appium、Python的自動化測試環境部署和實踐
    1 導言1.1 編制目的該文檔為選用Appium作為行動裝置原生(Native)、混合(Hybrid)、移動Web(Mobile Web)應用UI自動化測試的相關自動化測試人員、開發人員等提供參考。2 概述2.1 Appium設計哲學不需要為了自動化而且重新編譯或修改測試app;不應該讓移動端自動化測試限定在某種語言和某個具體的框架;也就是說任何人都可以使用自己最熟悉最順手的語言以及框架來做移動端自動化測試;不要為了移動端的自動化測試而重新發明輪子,重新寫一套驚天動地的api;也就是說webdriver協議裡的api已經夠好了,拿來改進一下就可以了;
  • Android + Appium 環境搭建
    Android + Appium 環境搭建:一、安裝JDK:版本1.8以上1.安裝完成後,在環境變量的Path追加bin文件路徑(可百度)  ;  一定要看到中文,非亂碼中文坑:版本號1.8      不要有空格,中文和特殊字符,全部用英文命名,路徑不要太複雜      jdk和jre目錄並排放(安裝jdk時,將jre目錄安裝目錄,修改為jdk同一目錄下)      安裝好後設置三個環境變量
  • 同時連接多臺手機,使用appium實現app自動化測試
    同時連接多臺手機,使用appium實現app自動化測試使用appium可以實現app自動化測試,我們之前是連接一臺手機去運行,如何同時連接多臺手機呢?很多人可能想到的是多線程(threading)。大致的運行方式是:001號測試用例:A手機,B手機...,002號測試用例:A手機,B手機...
  • Appium自身非必現bug影響自動化測試正常運行?Try-Catch幫您解決
    在進行軟體UI自動化測試的時候,經常會出現非被測軟體bug導致的測試執行失敗,常見原因包括:測試腳本的問題、網絡問題、產品UI的變更等等。還有一種情況是測試工具自身的bug,特別是偶現的bug並且開源的自動化測試工具還沒有修復該bug的時候,我們關心的是如何繞過這個已知bug繼續使用appium進行其他場景的自動化測試,本文通過一個實例進行分析,分兩步闡述一、第一步-----------使用appium測試抖音軟體目標
  • Appium 1.18.1 發布,移動應用自動化測試工具
    Appium 是一個開源、跨平臺的自動化測試工具,最初主要用於測試原生和輕量移動應用,包括 iOS 和 Android ,目前還支持對 Windows 平臺上的應用的自動化測試。
  • ​序|自動化測試概述
    這是Airtest團隊五年以來一直在努力做的事情:通過不斷完善工具鏈來讓用戶以極低的門檻進行自動化測試。無論您是一位初入職場的新人,還是剛開始學習自動化的測試工程師,相信這個教程都可以幫助您理清自動化測試的知識脈絡,掌握自動化測試的學習路徑,以及通過Airtest的實踐教程幫助您完成自動化測試的入門。
  • APP UI自動化測試,思路全總結在這裡了
    開源Appium server支持在Windows、macOS、Linux上運行支持多種主流程式語言,如Python、Java、Javascript、Ruby等支持Android、ios、H5自動化測試(集成了UiAutomator、UiAutomation框架)環境搭建較為複雜由網易開發,只支持python
  • Windows-UI自動化:如何選擇合適的測試框架
    相信只要了解過一點UI自動化測試的朋友,一定不會對Appium感到陌生。作為移動端UI自動化界的元老和王者,appium幾乎是所有UI自動化測試和UI自動化框架嵌套的首選。那麼這位老牌選手在Windows UI自動化測試上表現如何呢?官網文檔說明:http://appium.io/docs/en/drivers/windows/【簡單原理】基於屬性定位進行腳本編寫,通過埠連接WebDriverAgent驅動微軟自身的WinAppDriver,對於本機App進行佔用和操作。
  • Appium+python自動化8-Appium Python API(上)
    在測試過程中打開任意活動。如果活動屬於另一個應用程式,該應用程式的啟動和活動被打開。這是一個安卓的方法    :Args:    - app_package - The package containing the activity to start.
  • appium---uiautomator定位方法
    前言  前面總結了7種定位方法,今天在介紹一種uiautomator方法,其實appium就是基於uiautomator框架實現的,讓我們一起看下uiautomator有哪些定位方法可以使用uiautomator是什麼UIAutomator是android的自動化測試框架,也是Android-Sdk中一個查看頁面組件元素工具uiautomator定位方法前面介紹了常規的定位方法
  • APP UI自動化測試思路總結
    1,Appium開源Appium server支持在Windows、macOS、Linux上運行支持多種主流程式語言,如Python、Java、Javascript、Ruby等支持Android、ios、H5自動化測試(集成了UiAutomator、UiAutomation框架)環境搭建較為複雜
  • Python Appium開啟Android測試之路
    2、啟動微博  #-*-coding:utf-8-*-  #Time:2017/7/20 18:06  #Author:YangYangJun  import time  from appiumdriver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)  driver.implicitly_wait(5)  time.sleep(3)  driver.quit()  3、元素定位  3.1、appium
  • 測試工程師必須要學會的APP UI 自動化都在這裡了!
    、UiAutomation框架)環境搭建較為複雜2、Airtest由網易開發(官方文檔),只支持python語言提供集成Airtest與Poco兩個測試框架的強大的IDE,對新手很友好集成基於圖像識別的UI自動化測試框架airtest,即使不懂代碼也能編寫自動化腳本
  • 使用pytest-xdist實現分布式APP自動化測試
    不知道大家有沒有遇到這樣一種情況,實際工作中,app自動化測試的用例可能是成百上千條的,如果放在一臺機器上跑,消耗的時間非常久,那能不能使用分布式的來跑測試用例呢?一般來說對於web自動化測試,使用多核CPU來做分布式比較合適,但對於app自動化測試來說,使用多臺機器做分布式比較合適。這裡主要介紹後者pytest-xdist是工作方式是一個master對應多個worker,每個worker會按照master的要求來執行各自的測試集。
  • 【曾勇推薦】Web自動化測試(全網最給力自動化教程)
    --學學看看閱讀排行榜1. python+selenium自動化軟體測試(第2章):WebDriver API(38463)2. python+selenium自動化軟體測試(第1章):環境搭建,你也可以直接用Anaconda!
  • Appium 必須掌握的移動端自動化測試框架
    移動應用在企業中的地位越來越重要,為了更好將產品推向市場,企業對移動軟體測試的要求越來越高,為了完成大量的高強度移動端的測試需求,掌握高校的移動自動化測試工具則成為每一個軟體測試工程師必備的要求。這裡為大家詳細介紹一下Appium——一款軟體測試工程師必須掌握的開源測試自動化框架。