Appium 是一個移動端的自動化框架,可用於測試原生應用,移動網頁應用和混合型應 用,且是跨平台的。可用於 ios 和 Android 操作系統。
下載安裝配置也就是基本的(應該都會)
測試是否配置好 ,在cmd下輸入(下同)
java -version
這個直接在Android Studio裡面就有
測試是否配置好
adb --version
node.js官網下載:https://nodejs.org/en/
測試,進入node.js的安裝路徑,輸入
node --version
除了以上 jdk 和 Android-sdk 環境,我們使用 Appium 和 python 來進行自動化測試,還 需要安裝兩個東西,一個是Appium 的客戶端,一個是 Appium-python 庫。這兩個需要安裝的東西在加上手機就可以進行自動化測試,它們之間的關系是:python 代碼>Appium-python 庫>Appium->手機。
appium-desktop 下載地址:https://github.com/appium/appium-desktop/releases
(這個軟件有點大,我上傳了一個到百度網盤裡面
鏈接:https://pan.baidu.com/s/1WlaYoifeRGIF1Yc02deScQ
提取碼:wp4l )
下載下來之後右鍵管理員身份打開,打開之後選擇為使用這台電腦的任何人安裝(所有用戶),安裝之後的默認路徑是C:\Program Files\Appium
記得配置環境變量,如下
默認Host和Port,在python中寫好代碼要運行之前就點擊Start Server v1.18.0
測試是否配置好
python
官網:https://www.jetbrains.com/pycharm/download/#section=windows
下載一個社區版就可以了哈哈哈
打開cmd,輸入
pip install Appium-Python-Client
打開pycharm,新建一個py文件,輸入代碼
from appium import webdriver
import time
desired_caps=dict()
desired_caps['platformName']='Android'#平台的名字,不區分大小寫,“Android”;“ios”
desired_caps['platformVersion']='5.0'#平台的版本,可以不寫後續版本號
desired_caps['deviceName']='emulator-5554'#設備的名字,不能為空
desired_caps['appPackage']='com.google.android.apps.messaging' #要打開的應用程序包名
desired_caps['appActivity']='.ui.ConversationListActivity'#要打開的應用程序的界面名
desired_caps['udid']='emulator-5554'#連接設備的唯一標識
driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#連接 appium 服務器
driver.start_activity("com.google.android.apps.messaging", ".ui.ConversationListActivity") #包名(前面是包名,後面是界面名)
driver.find_element_by_id("com.google.android.apps.messaging:id/start_new_conversation_button").click() #點擊事件
time.sleep(3)
driver.quit()
注意:(運行前提是你的Android Studio中的模擬器開啟了、appium服務器也開啟了)
第六行設備名字查詢:cmd 之後輸入
adb devices
第7行、第8行:要打開的應用程序包名、要打開的應用程序的界面名
找到你想要測試的程序,事先在模擬器中打開這個程序
cmd下輸入
adb shell dumpsys window | findstr mCurrentFocus
回車之後就可以看到你想測試的程序的包名和界面名(界面名可以省略包名,但是.點不可以省略)
如何查找點擊事件的特定id???(第13行)
cmd打開uiautomatorviewer
如果沒有添加到環境變量的話就去sdk目錄下找到uiautomatorviewer.bat
在Android Studio中第一行找到file——>Settings
點擊模擬器,在uiautomatorviewer找到resource-id,這個id是每個點擊事件特有的。
點擊1,在點擊你想要操作的事件2,就可以看到id了
運行python代碼之後模擬器就會自動開啟這個程序啦!
這個其實是通過索引來的
見代碼
from appium import webdriver
import time
desired_caps=dict()
desired_caps['platformName']='Android'#平台的名字,不區分大小寫,“Android”;“ios”
desired_caps['platformVersion']='5.0'#平台的版本,可以不寫後續版本號
desired_caps['deviceName']='emulator-5554'#設備的名字,不能為空
# desired_caps['appPackage']='com.google.android.apps.messaging' #要打開的應用程序包名
# desired_caps['appActivity']='.ui.ConversationListActivity'#要打開的應用程序的界面名
desired_caps['udid']='emulator-5554'#連接設備的唯一標識
driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#連接 appium 服務器
# driver.start_activity("com.google.android.apps.messaging", ".ui.ConversationListActivity") #包名(前面是包名,後面是界面名)
# driver.find_element_by_id("com.google.android.apps.messaging:id/start_new_conversation_button").click() #點擊事件
# time.sleep(3)
# driver.quit()
#如何定位一組元素,比如說我要打開設置的第三個選項
driver.start_activity("com.android.settings",".Settings") #包名(前面是包名,後面是界面名)
A=driver.find_elements_by_class_name("android.widget.LinearLayout") #類名(記住類名要一樣,自己試試)
A[6].click()
time.sleep(5)
driver.quit()
裡面的class_name也是通過uiautomatorviewer去看的,比如我我要打開Connected devices這個選項,它的索引為6(第21行代碼),就會自動打開了
https://blog.csdn.net/hanhanwanghaha一個超級無敵可愛的人鴨 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
如有轉載,請注明出處(如不注明,盜者必究)
通過class_name(類名)定位一組元素
find_elements_by_class_name("class_name")
通過id定位一組元素
driver.find_elements_by_id("id_name")
通過xpath定位一組元素
driver.find_elements_by_xpath("xpath_name")
其實這個也就是一組的方式中的elements少個s
通過class_name(類名)定位一個元素
find_element_by_class_name("class_name")
通過id定位一個元素
driver.find_element_by_id("id_name")
通過xpath定位一個元素
driver.find_element_by_xpath("xpath_name")
這是我移動端的自動化測試,我記得以前還發了一個PC端的自動化測試 點擊此處
https://blog.csdn.net/hanhanwanghaha歡迎關注這個超級無敵可愛的人鴨,有什麼問題留言私信皆可,看見必回!
創作不易,如有轉載,請注明出處