[python]Appium+python +pytest 實現APP自動化,基於安卓


1.安卓環境搭建

&關於app自動化,個人覺得安裝過程比較復雜,腳本難度實現和web自動化差不多封裝關鍵字即可,因此,下面會寫安裝、啟動APP以及過程中遇到的一些坑(這一篇偏向解釋給個人)

&目前appium環境搭建我還是比較喜歡根據蟲師寫的,搭建app自動化,之前搭過幾次基本沒啥問題而且也給出了下載鏈接 https://www.cnblogs.com/fnng/p/4540731.html

1.1https://nodejs.org/ 下載windows msi文件安裝下一步到最后即可(node.js 6.4之前的,不然和下面appium版本沖突)

1.2http://pan.baidu.com/s/1jGvAISu 下載appium 目前以AppiumForWindows_1_4_0_0.zip版本搭建,下載后解決下一步到最后即可

1.3下載sdk   http://dl.google.com/android/android-sdk_r23.0.2-windows.zip   解壓后配置環境變量

ANDROID_HOME 

%:\android\android-sdk-windows

path

%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

1.4下載platform-tools

http://www.androiddevtools.cn/

1.5 appium放到環境變量里

C:\Program Files (x86)\Appium\node_modules\.bin放入path

 

2.0安裝--注意點

&需要注意,如果appium安裝的是1.4.0,那么node.js最好小於6.4.0不然會版本沖突

& 安裝  pip  install appium-python-client

 

3.真機運行

&手機連接電腦--打開 開發者模式--usb調試-

在cmd下查看手機id,我的查詢到是 WJX7N17A17001123

adb devices

 

&命令啟動Appium,CMD下輸入下面的命令

ip,端口可定義

-U后面寫手機的id

 appium -a 127.0.0.1 -p 4723  –U  WJX7N17A17001123 --no-reset 

 

4.測試腳本,打開app

&需要獲取先獲取被測APP的appPackage和appActivity兩個參數

先把apk放在電腦上

cmd-執行自己的apk目錄

aapt dump badging E:\apk\com.eg.android.AlipayGphone.apk 
注意~
sdk下載,可下載最新的,真機運行也需要,不然可能會報錯 找不到build-tools

下載sdk源,有可能報錯,自定義一個新的sdk庫更新--mirrors.neusoft.edu.cn 端口80

腳本調試
# coding:utf-8
from appium import webdriver
import os
import time


def setUpa():

desired_caps['appActivity']='com.cardinfolink.yunshouyin.activity.SplashActivity'
 

        desired_caps = {}
        desired_caps['platformName'] = 'Android'  # 設備系統
        # desired_caps['platformVersion'] = '7.0'  # 設備系統版本
        desired_caps['deviceName'] = 'WJX7N17A17001123'  # 設備名稱

        desired_caps['appPackage']='com.eg.android.AlipayGphone'  #上面提到獲取的參數

        desired_caps['appActivity']='com.eg.android.AlipayGphone.AlipayLogin'  #上面說到獲取的參數

        driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
        time.sleep(2)
        driver.find_element_by_id('com.alipay.android.phone.openplatform:id/saoyisao_iv').click()  #操作和web自動化方法幾乎一致
        time.sleep(2)
        driver.find_element_by_xpath("//android.widget.ImageView[@resource-id='com.alipay.android.phone.openplatform:id/saomafu_iv']").click()

        driver.quit()

 這樣一個demo就寫完了~ 下面就靠自己設計自動化框架封裝的實現 拉~   這個暫時不說了

 

5.0模擬器運行

基於上面,模擬器需要的版本以下載,現在需要創建一個模擬器配置參考下蟲師的即可

 

 

打開模擬器,adb devices 查看是否連接  連接了直接運行腳本需要改下deviceName即可

6.0腳本參數化,簡單思路

&參考web自動化的參數化封裝關鍵字即可
注意點,
Appium啟動服務和關閉服務可以做成bat處理,然后python調用即可

#寫下來似乎和pytest沒啥關系,其實參考下pytest實現web自動化,都是一樣的操作:https://www.cnblogs.com/Jack-cx/p/9357680.html
#我覺得如果公司主業務不是移動的,不建議做持續集成,必要性不大,甚至不要做app的ui自動化,以接口自動化/性能為主


 
        
 
 
        


 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM