1. 程式人生 > >APP自動化:Appium極簡上手

APP自動化:Appium極簡上手

Selenium可以操控Web瀏覽器,手機APP平臺也有類似的自動化測試工具:Appium
全文分基礎介紹、環境搭建和案例演示三部分介紹Appium,以幫助Learner快速的上手。

基礎介紹

Appium是一個開源的自動化測試框架,用於原生,混合和移動Web應用程式。 它使用WebDriver協議驅動iOS,Android和Windows應用程式。關於它的運作流程,用圖來介紹會更加生動形象一些:

9709135-63f0887917c499ec.png

Appium執行流程、原理

在上圖中,左邊這部分是Appium-Client,通俗點來說,是用於間接驅動最右邊的裝置執行預定的自動化測試流程,支援使用多種主流的程式語言進行編寫,這也是測試開發人員需要關注的核心部分;中間的Appium-Server

是銜接左邊客戶端以及右邊APP裝置端的重要橋樑,一般僅需要配置好環境及啟動執行;右邊這塊,當然就是實際執行自動化測試的終端,如IOS真機、Android真機,或者是模擬器。

環境搭建

  • NodeJS

Appium是使用nodejs實現的,因此Node是直譯器,首先要確認安裝好

上述的兩種方式都可以搭建Appium-Server環境,後面演示會基於Appium-Desktop。(PS:下載太慢了?分享個百度網盤)

上述方式可以直接和間接搭建安裝Android環境,因為後面要用到adb這個工具,所以需要配置好ANDROID_HOME這個環境變數。(PS:下載太慢了?分享個百度網盤)

  • Appium-Python-Client

後面會用到Python來編寫Appium客戶端:pip install Appium-Python-Client

okay,準備好以上幾個環境後,啟動Appium測試一下:

9709135-0ff75f84afa9ff3a.png

Appium Desktop Server

9709135-2b50d0ec6c1be7e8.png

Appium Desktop Server

案例演示

下面演示在安卓真機上的自動登入Keep(APP)。

  1. 獲取裝置名稱。操作流程:開啟手機的開發和除錯模式,連線電腦授權認證,Window + R輸入並執行cmd,用adb devices -l檢視:

9709135-f955394c7bd7c216.png

獲取裝置號

  1. 啟動Appium Server進行除錯:

9709135-2fc2361c14ed0855.png

Inspector Session

9709135-bda3331f6af2bd06.png

Desired Capabilities

從上圖可以看到,啟動App Session需要有以下幾個引數(點選瞭解更詳細的Appium Desired Capabilities):

  • platformName,如AndroidiOS
  • deviceName,參考前面是如何獲取的
  • appPackageappActivity,獲取參考這裡

綜上所述,這裡對應Keep的資訊如下:

{
  "platformName": "Android",
  "deviceName": "WAS_AL00",
  "appPackage": "com.gotokeep.keep",
  "appActivity": "com.gotokeep.keep.splash.SplashActivity"
}

點選Start Session,之後可以看到手機端啟動了Keep,並且在Appium Server端中同步展示:

9709135-a03ee9243fcdec58.png

Start Session

9709135-c5b3a137fb490646.png

Keep

上述的操作通常只是用來方便獲取控制元件id及定位的,下面基於Python編寫完整的Appium-Client以實現自動登入操作:

from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

server = 'http://localhost:4723/wd/hub'  # Appium Server, 埠預設為4723
desired_capabilities = {
    'platformName': 'Android',
    'deviceName': 'WAS_AL00',  # 需替換成你的deviceName
    'appPackage': 'com.gotokeep.keep',
    'appActivity': 'com.gotokeep.keep.splash.SplashActivity'
}

driver = webdriver.Remote(server, desired_capabilities)
wait = WebDriverWait(driver, 10)  # 最大查詢等待超時時間:10s


def get_permission():
    """允許APP獲取的某些許可權"""

    try:
        ask = wait.until(EC.presence_of_element_located((By.ID, 'com.android.packageinstaller:id/do_not_ask_checkbox')))
        ask.click()
        allow = wait.until(
            EC.presence_of_element_located((By.ID, 'com.android.packageinstaller:id/permission_allow_button')))
        allow.click()
    except:
        pass


# 允許兩項授權
get_permission()
get_permission()

# 點選“立即使用”
welcome = wait.until(EC.presence_of_element_located((By.ID, 'com.gotokeep.keep:id/btn_bottom_in_video_welcome')))
welcome.click()

# 切換“密碼登入”(同樣可以使用第三方進行授權登入)
driver.tap([(900, 110)])

# 輸入“手機號”
phone = driver.find_element_by_accessibility_id('Phone Number In Login')
phone.send_keys('13988888888')  # 替換成實際的賬號

# 輸入“密碼”
password = driver.find_element_by_accessibility_id('Password In Login')
password.send_keys('123456')  # 替換成實際的密碼

# 點選“登入”
login = driver.find_element_by_id('com.gotokeep.keep:id/btn_action')
login.click()

最後,附上執行效果圖:

9709135-7f7c64fbe2157eb8.gif

效果圖

示例原始碼
歡迎關注我的個人公眾號:超級碼里奧
如果這對您有幫助,歡迎點贊和分享,轉載請註明出處

相關推薦

APP自動化Appium上手

像Selenium可以操控Web瀏覽器,手機APP平臺也有類似的自動化測試工具:Appium; 全文分基礎介紹、環境搭建和案例演示三部分介紹Appium,以幫助Learner快速的上手。 基礎介紹 Appium是一個開源的自動化測試框架,用於原生,混合和移動Web應用

MemCached學習筆記之一 入門教程

權宣告:本文為博主原創文章,轉載註明出處。歡迎指點評論,技術交流,個人郵箱[email protected] https://blog.csdn.net/kangvcar/article/details/78591899 MemCache 概述 MemCache雖然被稱為”分散式快

從零開始仿寫一個抖音App——基於FFmpeg的視訊播放器

本文發於掘金——何時夕,搬運轉載請註明出處,否則將追究版權責任。交流qq群:859640274 GitHub地址 好久不見,最近加班比較多所以第二篇音視訊方面的文章 delay 了一週,大家多包涵哈。本文預計閱讀時間二十分鐘。 本文分為以下章節,讀者可以按需閱讀 1.FFmpeg原始碼

App自動化測試Appium+Python最新資料

課程目錄:" D5 I4 h8 P. l第一章:App自動化測試概述, y, D6 G& C1 J  ~& y0 Y; }第二章:Android系統基礎3 P7 V: p( t5 o5 ]. P& e第三章:測試工具簡介第四章:Appium基礎8 ~4 `; o7

Spring Boot (七) Mybatis配置

Spring Boot (七): Mybatis極簡配置 1. 前言 ORM 框架的目的是簡化程式設計中的資料庫操作,經過這麼多年的發展,基本上活到現在的就剩下兩家了,一個是宣稱可以不用寫 SQL 的 Hibernate ,一個是對 SQL 非常友好的 Mybaties ,,兩者各有特點,在企業級系統開發

App 自動化Appium 憑什麼使用 UiAutomator2?

![image](https://upload-images.jianshu.io/upload_images/1466987-7448def5b0898c8b?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## 1\. UiAutomator2 是

Appium移動自動化測試-----AppiumDesktop錄製指令碼生成指令碼

AppiumDesktop啟動頁面: 啟動AppiumDesktop以後點選該頁面右上角的Start New Session按鈕,就會啟動一個新的會話視窗(如下圖),在這個視窗我們需要配置一些Desired Capabilities資訊: platformName:'Android'&nb

app自動化測試環境配置adb環境配置、monkey環境配置、appium環境配置大全

1. 安裝jdk 安裝參考連結:https://www.cnblogs.com/erweimalaoshi/p/13204509.html 2. 安裝配置Andriod sdk   安裝Andriod sdk前首先需要安裝配置好jdk環境。   然後安裝Android sdk   安裝完成

(轉)APP測試教福利Appium 國內下載地址(百度雲盤,已更新至 1.3.4.1)

monkey 語言 1.3 更新 follow zha install ast IT 鏈接是Appium相關安裝包下載地址(exe&dmg格式),如需自取:) 最新更新的是: appium-1.3.4.dmg& AppiumForWindows-1.3.4.

app自動化工具UI Automator viewer工具的相關使用說明

當前 res ide andro ram 有用 oot png 區別 uiautomatorviewer是android SDK自帶的工具,通過截屏並分析XML布局文件的方式,為用戶提供控件信息查看服務。 整個界面分四個區域: (1)工作欄區(上) 共有4個按鈕。從左

Python + Robotframework + AppiumAPP自動化測試小試牛刀(Android)

transform all 分享 直接 round letter 執行 image col Robotframework如何好?這裏先不說了~ Python更不用說了~ Appium前面的文章有介紹~ 今天直接來Python+Robotframework+Appium

python+appium app自動化的方法實例運用

file lee 數據 打印 debug odi pwa 保存 eve # -*- coding: utf-8 -*-import osimport sysimport timeimport unittest from appium import webdriver# fr

appium+python的APP自動化(2)

.exe path 輸入 地址 cat 打開 installer tor sof 上節說到安卓上的測試環境都安裝好了,這個時候要安裝python了 1python的安裝 https://www.python.org/15官網下載python2.7(3.0以上也行,個人愛好)

2星|《主義者的崛起》數年前的日本時事評論文集

公眾號 一起 餐廳 新的 中一 ec2 處理 事件 興趣 極簡主義者的崛起 作者是暢銷書作家,本書中作者整理了他以前多本書中發明的單詞或概念,並對這些單詞或概念加以闡釋。 主要內容接近於時事評論,看到聽到一個現象,發表一些評論,做一些推測。文中經常用到“

自動化測試 - Appium + Python史上最全最環境搭建步驟

一,為什麼是Appium借一張圖:   1.1 Appium優點 l  開源 l  跨架構:NativeApp、Hybird App、Web App l  跨裝置:Android、iOS、Firefox OS l  不依賴原始碼 l 

Python + Robotframework + AppiumAPP自動化測試實踐(二)

廢話不多說,直接來實踐(二),本次基於Android手機Settings模組下的search功能進行的自動化測試,程式碼如下 :   1 *** Settings *** 2 Library AppiumLibrary 3 4 *** Variables

版本五子棋初

#include <iostream> #include <conio.h> void main() { const int w = 20; const int h = 20; int map[w*h]={};//0空子 1黑子 2白子 bool bla

版本貪吃蛇

#include <iostream> #include <windows.h> void main() { const int w = 20; const int h = 20; const int s = w * h; char map[s] = { }; i

2.5星|《企業史》資料彙編,一大半內容是相關圖書簡介

確實是非常簡單的改革開放40年以來的企業史,大部分知名企業只是提個名字,極少數做了簡單的介紹。然後就是相關企業的書的簡單介紹。目測介紹書的篇幅超過了一半。 資訊來源像是以吳曉波的幾本商業史為主,書中內容看著都眼熟。跟吳曉波的商業史的缺陷也一樣:內容都是公開資料報道過的,沒有自己主動採訪研究的內容。 書

基於appiumapp自動化測試框架

基於appium框架的app自動化測試 App自動化測試主要難點在於環境的搭建,appium完全是基於selenium進行的擴充套件,所以app測試框架也是基於web測試框架開發的 一、裝置連線 (即構建基礎的測試環境,保證可以驅動裝置進行操作) 0.準備測試環境 1)安裝jdk配置java_home環