通过上一篇文章,Appium环境已经搭建好了,下面我们通过Python脚本来测试原生的计算器程序
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
需要安装Android模拟器,这里使用sdk自带的模拟器
双击SDK目录下的 SDK Manager.exe,进行下载 API19
下载好之后 双击SDK目录下的 AVD Manager.exe 创建下载好的模拟器,点击Create 按钮
创建好之后,Start就好了
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
需要安装Appium Client
cmd打开window控制台:pip install Appium-Python-Client
启动Appium,点击左上角安卓机器人,设置相关信息,如下:
点击右上角黑色三角形图标,启动Appium.
-->打开cmd 输入 adb devices -l 得到模拟器的 deviceName
--> 打开cmd 输入 adb logcat -v time -s ActivityManager 获得被测程序 appPackage appActivity
1 # encoding:utf-8 2 import unittest 3 from appium import webdriver 4 import time 5 6 """ 7 这是一个计算器的单元测试脚本 8 """ 9 10 class MyTestCase(unittest.TestCase): 11 #脚本初始化,获取操作实例 12 def setUp(self): 13 desired_caps = {} 14 desired_caps['platformName'] = 'Android' #指定Android平台 15 desired_caps['platformVersion'] = '4.4' 16 desired_caps['deviceName'] = 'emulator-5554' #上面已有讲解 17 desired_caps['appPackage'] = 'com.android.calculator2' #被测程序包名 18 desired_caps['appActivity'] = '.Calculator' 19 desired_caps['unicodeKeyboard'] = 'True' #指定键盘编码 20 desired_caps['resetKeyboard'] = 'True' 21 self.driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps) 22 23 24 def test_something(self): 25 """ 26 1+2=3 的单元测试 27 :return: 28 """ 29 number1 = self.driver.find_element_by_id("digit1").click() #定位按钮1并点击 30 number_add = self.driver.find_element_by_id("plus").click() #定位按钮 + 并点击 31 number2 = self.driver.find_element_by_id("digit2").click() #定位按钮2并点击 32 number_equal = self.driver.find_element_by_id("equal").click() #定位按钮等于号(=)并点击 33 try: 34 result = self.driver.find_element_by_class_name("android.widget.EditText").text 35 self.assertEqual(result,u"3") 36 except Exception: 37 print "Experiment Result Error" 38 self.fail() 39 40 def tearDown(self): 41 self.driver.quit() 42 43 if __name__ == '__main__': 44 unittest.main()