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

1.安卓環境搭建

&關於app自動化,我的以爲安裝過程比較複雜,腳本難度實現和web自動化差很少封裝關鍵字便可,所以,下面會寫安裝、啓動APP以及過程當中遇到的一些坑(這一篇偏向解釋給我的)html

&目前appium環境搭建我仍是比較喜歡根據蟲師寫的,搭建app自動化,以前搭過幾回基本沒啥問題並且也給出了下載連接 http://www.javashuo.com/article/p-ohnzgtia-bx.htmlnode

1.1https://nodejs.org/ 下載windows msi文件安裝下一步到最後便可(node.js 6.4以前的,否則和下面appium版本衝突)python

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

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

ANDROID_HOME windows

%:\android\android-sdk-windowsapp

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自動化,以接口自動化/性能爲主
相關文章
相關標籤/搜索