1.查看Android的應用包名和activity的方法
(網上有很多種方法,這里應用的是查看日志的方法)
CMD中輸入>adb logcat -c
>adb logcat ActivityManager:i *:s
然后操作模擬器中要測試的應用,查看日志,結果如下,cmp=應用包名/Activity
參考文件:http://blog.csdn.net/jlminghui/article/details/40622103
2.定位元素
Android SDK的一些工具可以幫助定位,在Android SDK安裝目錄的tools下
1.monitor.bat:找到Android控件的content-description,方便定位
2.uiautomatorviewer.bat:查看控件的屬性,也可查看被測app的appPackage
說明:這兩個工具都只支持API level16以上的系統,如果低於這個版本,這兩個工具是不能使用的
下圖是如果有多台機器的情況下怎么選擇要獲取的機器:
(uiautomator的使用方法:http://blog.csdn.net/chenbang110/article/details/23371731)
其他方法:使用appium的inspector來定位元素,具體使用方法鏈接可以參見我的另一篇隨筆http://www.cnblogs.com/meitian/p/4837938.html
3.開啟appium,launch(右側的小三角)
4.編寫測試用例,執行用例腳本,完成一個appium實例
(在執行測試腳本前,一定要保證開啟了appium和模擬器)
代碼:
from appium import webdriver
import time
import time
#以下為啟動session時的desired capabilities的設置
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '18'
desired_caps['deviceName'] = 'emulator-5554'
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '18'
desired_caps['deviceName'] = 'emulator-5554'
#desired_caps['app']='D:\software\Android\APPS\com.tencent.mm_621.apk',這個是要安裝的app的安裝包地址,不是必須的,有#這個項的話會先通過這個地址安裝app,我沒有用這個,直接用的Package名和activity名
desired_caps['appPackage'] = 'com.android.calculator2'
desired_caps['appActivity'] = '.Calculator'
#以下為啟動driver,以及定位元素和操作元素的一些用例操作
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(5)
driver.find_element_by_id("com.android.calculator2:id/digit1").click()
time.sleep(2)
driver.find_element_by_id("com.android.calculator2:id/plus").click()
time.sleep(2)
driver.find_element_by_id("com.android.calculator2:id/digit2").click()
time.sleep(2)
driver.find_element_by_id("com.android.calculator2:id/equal").click()
time.sleep(2)
test = driver.find_element_by_class_name("android.widget.EditText").text
print(test)
assert test == 3
driver.quit()
desired_caps['appActivity'] = '.Calculator'
#以下為啟動driver,以及定位元素和操作元素的一些用例操作
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(5)
driver.find_element_by_id("com.android.calculator2:id/digit1").click()
time.sleep(2)
driver.find_element_by_id("com.android.calculator2:id/plus").click()
time.sleep(2)
driver.find_element_by_id("com.android.calculator2:id/digit2").click()
time.sleep(2)
driver.find_element_by_id("com.android.calculator2:id/equal").click()
time.sleep(2)
test = driver.find_element_by_class_name("android.widget.EditText").text
print(test)
assert test == 3
driver.quit()
desired capabilities的設置時的一些項說明:
其他注意點:
1.如果有多台模擬器,appium的Android settings中的launch device里選擇的launch VAD會影響到啟動的模擬器,我代碼里設置的是啟動platformVersion為4.3.1的模擬器,但是appium那里設置的是4.0.4,執行時會一直去找4.0.4,沒有找到最后就報錯了
2.低版本的Android要用selendroid
3.公司需要配置代理才可以聯網,這里如果不更改啟動的代理是沒有辦法執行用例成功的,有個簡便做法,先開啟fiddle,再去執行用例
