原文地址:http://www.cnblogs.com/wyx123/articles/4481704.html
#废话不多说了,直接上代码~
import os
#相想使用unittest框架,首先要引入unittest 包,这个不多解释。
import unittest
from appium import webdriver
from time import sleep
# Returns abs path relative to this file and not cwd
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
)
#类继承unittest.TestCase 类,从TestCase类继承是告诉unittest模块的方式,这是一个测试案例。
class ContactsAndroidTests(unittest.TestCase):
#setUp 用于设置初始化的部分,在测试用例执行前,这个方法中的函数将先被调用。
def setUp(self):
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.3'
desired_caps['deviceName'] = '192.168.56.101:5555'
'''desired_caps['app'] = PATH(
'../../../sample-code/apps/ContactManager/ContactManager.apk'
)'''
desired_caps['appPackage'] = 'com.android.calculator2'
desired_caps['appActivity'] = '.Calculator'
self.driver = webdriver.Remote('http://192.168.10.95:4723/wd/hub', desired_caps)
#earDown 方法在每个测试方法执行后调用,这个地方做所有清理工作,如退出
def tearDown(self):
self.driver.close_app()
self.driver.quit()
#放置的就是我们的测试脚本了,这部分我们并不陌生;因为我们执行的脚本就在这里。
def test_add_contacts(self):
'''el = self.driver.find_element_by_name("Add Contact")
el.click()
textfields = self.driver.find_elements_by_class_name("android.widget.EditText")
textfields[0].send_keys("Appium User")
textfields[2].send_keys("someone@appium.io")
self.assertEqual('Appium User', textfields[0].text)
self.assertEqual('someone@appium.io', textfields[2].text)
self.driver.find_element_by_name("Save").click()
# for some reason "save" breaks things
alert = self.driver.switch_to_alert()
# no way to handle alerts in Android
self.driver.find_element_by_android_uiautomator('new UiSelector().clickable(true)').click()
self.driver.keyevent(3)'''
self.driver.find_element_by_id('com.android.calculator2:id/digit9').click()
#unitest.main()函数用来测试 类中以test开头的测试用例
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(ContactsAndroidTests)
unittest.TextTestRunner(verbosity=2).run(suite)
import unittest
相想使用 unittest 框架,首先要引入 unittest 包,这个不多解释。
成功后的结果截图~,参照下图: