最近研究了一下Appium,查看了一些大神的博客,繞過了一些坑,現將從搭建環境到運行真機測試的流程總結如下:
一、搭建環境,這里我參考了蟲師的博客,一步一步來,搭好了Appium的環境,如果需要真機測試,android模擬器及以后的部分不用安裝,鏈接如下:
http://www.cnblogs.com/fnng/p/4540731.html
http://www.cnblogs.com/fnng/p/4552438.html
注:以上的東西做完之后,需要在環境變量中添加(安裝路徑)C:\Program Files (x86)\Appium\node_modules\.bin到path中,再在cmd中運行appium-doctor,檢查環境顯示成功之后,則完成了環境搭建
二、環境搭建好之后,需要連接手機
連接手機時除了用數據線連到電腦上,還要注意選擇手機的開發者模式,之后,在cmd中運行adb devices,如果下發列表中出現設備,則說明連接成功,那一串奇怪的字符就是你的設備號了
三、用Appium啟動服務,啟動服務的作用就是能讓代碼在連接的機器上運行,其實用cmd代碼運行appium,也能啟動,只不過appium這個程序(上方蟲師教程中安裝的Appiumforwindows)可以比較方便的對服務進行調試,所以選擇用它來啟動
啟動前需要對服務進行設置,點擊左上角的安卓小圖標,進行主要的配置:
並且將服務的session配置成可重寫(非必要的配置)
到這里服務就配置好了,點擊右上角的三角進行開啟即可
四、配置下載python中的appium組件
這里很簡單,cmd運行 pip install Appium-Python-Client 等待安裝完成即可
五、Appium測試用例代碼,以百度安裝包為例:
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': '91QECPF5US7G',
'platformVersion': '5.1',
#將要測試app的安裝包放到自己電腦上執行安裝或啟動,
如果不是從安裝開始,則不是必填項,可以由下面紅色的兩句直接啟動
'app':'C:\\Users\\shuchengxiang\\Desktop\\shoujibaidu_25580288.apk',
'appPackage': 'com.baidu.searchbox', #紅色部分如何獲取下面講解
'appActivity': 'MainActivity',
'unicodeKeyboard': True, #此兩行是為了解決字符輸入不正確的問題
'resetKeyboard': True #運行完成后重置軟鍵盤的狀態
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").clear()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").send_keys('appium測試')
driver.find_element_by_id("float_search_or_cancel").click()
driver.find_element_by_id("floating_action_button").click()
driver.quit()
獲取appPackage和appActivity:
1、在之前配置的android SDK文件中找到這個程序,並雙擊打開
在連好手機的情況下點擊這個按鈕,界面上就會顯示出當前手機的頁面(如果是鎖屏狀態則顯示黑屏)
界面加載出來之后,加入我們想定位百度一下的文本框,那么吧光標移動到上面點擊一下即可,下圖框出的部分為我們需要的信息:
通過這個信息我們知道,對於這個包,上方desired_caps字典中appPackage的值應填寫為 com.baidu.search
而代碼中的定位部分的id為com.baidu.searchbox:id/baidu_searchbox,或填寫baidu_searchbox
例:driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()
2、appActivity的獲取:
先讓百度在手機中運行起來,然后在cmd中輸入:adb shell dumpsys activity activities (獲取當前所有的活動),搜索結果如下:
上方將所有進程顯示出來,活動進程很多比較難找,這里知道package名稱,可以在結果中進行查找,得到appActivity的值為MainActivity
關於這里的定位還有其他方法,詳情參看大神的博客:http://blog.csdn.net/shyu1989/article/details/51730214
到這里,上邊代碼需要的所有內容就已經填寫完了,Appium服務啟動成功之后,運行代碼,即可看到效果(手機不要鎖屏哦)