1. 程式人生 > 實用技巧 >【移動自動化】【二】Appium

【移動自動化】【二】Appium

實施自動化需要的工具

adb

  1. Android控制工具,獲取獲取Android各種資料和控制,Appium會調起adb命令去執行Android裝置
  2. adb命令參考 https://www.cnblogs.com/totoro-cat/p/9969445.html

Appium Desktop

  1. 內嵌了Appium Server和Inspector工具,可以幫我分析app
  2. 下載地址,建議版本不要太高,其實每個版本相差不是特別大

Appium Server

  1. Appium的核心工具

Appium Clients

  1. 各種語言的封裝庫,用於連線appium server

Appium Desktop

安裝

從官網下載桌面版本直接安裝即可https://github.com/appium/appium-desktop/tags

主要功能

  • UI 分析
  • 錄製用例
  • 元素查詢測試
  • Attach 已有的 session
  • 雲測試

操作步驟

  1. appium預設埠4327
  2. 在啟動appium前,先點選edit configuration, 看你的java環境android_home環境是否配置,如果配置好,則appium會自動識別(怎麼配置可以看上一篇,也可以自己百度,網上很多)
  3. 點選start server
  4. 開啟appium server, 我們可以看到當前環境佔用4723埠,點選inspection分析
  5. 在Desired Capabilities輸入一下的資訊,這些都是必填項的(我這邊模擬器已經提前安裝了app, 你也可以新增app引數,指定app地址)引數參考地址https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

    platformName: 需要測試的裝置android or ios
    deviceName: 這個可以隨意命名
    appPackage:app包名
    appActivity:app啟動activity
  6. 點選start session

Appium server安裝

  1. 安裝nodejs,LTS版本,版本不能太高,我電腦安裝了v12.18.3
root@iZuf6aygpm6zxxzuh3am6vZ:~# node -v
v12.18.3
  1. 安裝Appium,因為特殊原因可能裝不上,所以要換淘寶映象
root@iZuf6aygpm6zxxzuh3am6vZ:~# npm install -g cnpm --registry=https://registry.npm.taobao.org
root@iZuf6aygpm6zxxzuh3am6vZ:~# cnpm install -g [email protected]
root@iZuf6aygpm6zxxzuh3am6vZ:~# appium -v
1.14.0
  1. 需要python2環境,安裝python2
root@iZuf6aygpm6zxxzuh3am6vZ:~# python
Python 2.7.12 (default, Jul 21 2020, 15:19:50) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

4.安裝appium-doctor設定adb java android路徑, 都出現綠色說明都配置好了,直接輸入appium就啟動服務了,

root@iZuf6aygpm6zxxzuh3am6vZ:~# npm install -g [email protected]

簡單的測試指令碼

  1. chi/demo_1.py 前提安裝依賴pip install Appium-Python-Client
from appium import webdriver

caps = {}

caps["platformName"] = "android"
caps["deviceName"] = "emulator-5554"
caps["appPackage"] = "com.shoumi.shoumi"
caps["appActivity"] = ".activity.startActivity"
caps["autoGrantPermissions"] = True


driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)

driver.implicitly_wait(1000)

driver.quit()