一.appium簡介
工作原理:
a.執(zhí)行腳本時必尼,client-java將腳本翻譯為webdriver協(xié)議,與appium server通過json進(jìn)行交互
b.appium server通過webdriver協(xié)議將翻譯腳本翻譯為UI Automator命令岗宣,通過bootstrap執(zhí)行
c.bootstra把執(zhí)行結(jié)果轉(zhuǎn)發(fā)回appium server
二.搭建appium+python自動化環(huán)境
以下安裝可以參考這個網(wǎng)址:Appium移動自動化測試
1).安裝java環(huán)境(記得把jdk和jer路徑放到環(huán)境變量中)弟蚀,安裝教程地址:java環(huán)境配置脚曾,可在cmd下輸入java查看是否配置完成
2).安裝android adt或者sdk
3).安裝sdk manager
4)安裝sdk platform-tools
5)安裝android模擬器(如果是真機(jī)測試唐全,這邊可以忽略)
6)安裝adb環(huán)境闽瓢,下載鏈接:adbdriver.zip接癌,配置教程:adb配置教程,可在cmd下輸入adb查看是否配置完成
7)下載appium—desktop并安裝扣讼。下載地址https://github.com/appium/appium-desktop/releases/缺猛,下載最新版
三.獲取文件的app的package、activity方式
1)在cmd環(huán)境下届谈,cd到sdk\builds-tools\ 目錄下
2)在剛剛的目錄下執(zhí)行aapt dump badging E:\apk\es3.apk(包在電腦上的路徑)枯夜,就可以查看到app的package和activity
四.獲取頁面的元素
1)把手機(jī)連接電腦(cmd命令行里輸入:adb ?devices弯汰,可以看到當(dāng)前連接的手機(jī))
2)打開android sdk里面的uiautomator艰山,點(diǎn)擊頁面上方的手機(jī)屏幕的按鈕,uitomator上出現(xiàn)的手機(jī)上此時的頁面
3)可以在automator頁面的右邊咏闪,查看到需要定位頁面的元素
五.用python代碼編寫執(zhí)行
1)find_element_by_id("XXX")
2)find_element_by_class_name("XXXX")
3)find_element_by_accessibility_id("XXX") ? 查詢界面元素的content-desc屬性 ?在當(dāng)期那頁面唯一
4)find_element_by_xpath("XXXX")(xpath的原理:就是先找到一個唯一的id曙搬,再在此元素下面查找其他的元素)
xpath=“//*[@resource-id=' ?']//”
5)還有一種是通過autma投入 api,來控制設(shè)備
#1 使用resourceld方式
driver.find_element_by_android_uiautomator('new UiSelector().resoureId(“%s”)')
#2 使用text方式
driver.find_element_by_android_uitomator('new UiSelector().text("%s")')
# 3使用description方式
driver.find_element_by_android_uitomator('new UiSeletor().description("%s")')
# 4使用class方式
driver.find_element_by_android_uitomator('new UiSelector().className("%s")')
#5.使用index方式
driver.find_element_by_android_uitomator('new UiSelector().index("%s")')
六.操作手勢
1)常用的方式
click() ?點(diǎn)擊
send_keys() ?輸入數(shù)據(jù)
swipe(self, start_x, start_y, end_x, end_y, duration=None) ?滑動
2)TouchAction庫(單觸點(diǎn)操作)
(定義了短按press鸽嫂、釋放release纵装、移動到moveTo、點(diǎn)擊tap据某、等待wait橡娄、長按longpress、執(zhí)行perform)
使用方式
from appium.webdriver.common.touch_action import TouchAction
driver.perfrom(TouchAction().tap(el))
或者TouchAction().tap(el).perfrom
3)MultiAction庫(多觸點(diǎn)操作)
from appium.webdriver.common.multi_action import MultiAction
action0=TouchAction().tap(el1)
action1=TouchAction().tap(el2)
MultiTouch().add(action0).add(action1).perform
七.python的安裝
1)win下載地址:https://www.python.org/downloads/windows/(一般下載3.6版本的)
2)安裝好了癣籽,記得配置環(huán)境(如果是3.5以上的版本這邊勾選就就會自動添加到環(huán)境變量中)
3)判斷python是否已安裝
在cmd環(huán)境中輸入python:出現(xiàn)如下情況證明已安裝成功
八.pycharm的使用
1)下載:下載社區(qū)版的即可(下載地址:https://www.jetbrains.com/pycharm/download/#section=windows)
2)安裝:可參考https://blog.csdn.net/ziyouhahaze/article/details/78230811
3)使用
a.新建一個工程
選擇file——new project挽唉,填寫保存路徑,并命名
b.創(chuàng)建一個項目
c.創(chuàng)建一個文件
左側(cè)導(dǎo)航欄選擇 Pure Python 筷狼,右側(cè)的 Location 選擇項目的路徑瓶籽, Interpreter 通過下拉欄選擇 Python版本 ,這里直接使用 Python 的安裝路徑即可埂材。
選擇完成之后塑顺,點(diǎn)擊 Create 按鈕,進(jìn)入界面俏险。這時就可以創(chuàng)建文件了严拒,步驟如下圖所示:?
d.創(chuàng)建一個文件
Crossin-practices → New → Python File?
九.appium—desktop的使用
下載后直接打開,出現(xiàn)下面頁面
這邊appium和UItomator的使用上有沖突(1.6.2之后的版本這個問題已修復(fù))竖独,在使用apium—desktop時就無法正常使用automator裤唠,直接點(diǎn)擊start server的按鈕,即打開appium
十.自動化腳本的基本知識講解
1)基本配置
其中:platforName:設(shè)備的名稱
? ? ? ? ? ?platforVersion:手機(jī)的版本
? ? ? ? ? ?devicesName:手機(jī)的設(shè)備號(cmd中adb devices獲仍蕖)
? ? ? ? ? ?appPackage:包名
? ? ? ? ? ? appActivity:安卓應(yīng)用的操作界面
? ? ? ? ? ? ?unicodeKeyboard:安裝一個中文的輸入法
2)獲取頁面元素并操作
十一.學(xué)習(xí)的參考資料