Appium+Python移动端(Android)自动化测试环境搭建原来没有那么难!+ 带你实战去
Appium 是一個移動端的自動化框架,可用于測試原生應用,移動網頁應用和混合型應 用,且是跨平臺的。可用于 ios 和 Android 操作系統。
Appium+Python
- 一、前提
- 1.1 JDK安裝及其配置環境變量
- 1.2 Android-SDK 安裝
- 1.3 Node.js 安裝
- 1.4 Appium 客戶端安裝
- 1.5 python安裝及其配置環境變量
- 1.6 pycharm安裝
- 1.7 安裝python庫Appium-Python-Client
- 二、實戰
- 2.1點擊某個事件
- 2.2點擊某組元素的某個事件
- 2.3一組定位方式補充
- 2.4一個定位方式補充
一、前提
1.1 JDK安裝及其配置環境變量
下載安裝配置也就是基本的(應該都會)
測試是否配置好 ,在cmd下輸入(下同)
java -version1.2 Android-SDK 安裝
這個直接在Android Studio里面就有
測試是否配置好
adb --version1.3 Node.js 安裝
node.js官網下載:https://nodejs.org/en/
測試,進入node.js的安裝路徑,輸入
1.4 Appium 客戶端安裝
除了以上 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
1.5 python安裝及其配置環境變量
測試是否配置好
python1.6 pycharm安裝
官網:https://www.jetbrains.com/pycharm/download/#section=windows
下載一個社區版就可以了哈哈哈
1.7 安裝python庫Appium-Python-Client
打開cmd,輸入
pip install Appium-Python-Client二、實戰
2.1點擊某個事件
打開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 之后輸入
第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代碼之后模擬器就會自動開啟這個程序啦!
2.2點擊某組元素的某個事件
這個其實是通過索引來的
見代碼
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一個超級無敵可愛的人鴨 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
如有轉載,請注明出處(如不注明,盜者必究)
2.3一組定位方式補充
通過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")2.4一個定位方式補充
其實這個也就是一組的方式中的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歡迎關注這個超級無敵可愛的人鴨,有什么問題留言私信皆可,看見必回!
創作不易,如有轉載,請注明出處
總結
以上是生活随笔為你收集整理的Appium+Python移动端(Android)自动化测试环境搭建原来没有那么难!+ 带你实战去的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 拷贝文件夹的实现
- 下一篇: widows下nignx的使用