项目源码:https://github.com/yicaifenchen8/autotest.git
1.驱动配置
class Driver(object):
# 防止多个用例执行时-重启app
@staticmethod
def getInstance():
if (hasattr(Driver, 'instance')): #返回单一实例
return Driver.instance
# os.system('adb uninstall io.appium.settings')
# os.system('adb uninstall io.appium.unlock')
desired_caps = {}
desired_caps['platformName'] = 'Android'
# desired_caps['platformVersion'] = '7.0'
desired_caps['deviceName'] = 'samsung'
desired_caps['app'] = r'D:\proj\testDP\app\build\outputs\apk\debug\app-debug.apk'
desired_caps['appPackage'] = 'cn.ycf.testdp'
desired_caps['appActivity'] = 'cn.ycf.testdp.TestDPActivity'
desired_caps['noReset'] = True # 不清除数据,不会重新安装
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.quit = lambda : {} #不关闭app
Driver.instance = driver
return driver
2.测试用例
class MyTestCase(unittest.TestCase):
def setUp(self):
print('setUp')
self.driver = Driver.getInstance()
def test_click(self):
print('test_click')
time.sleep(1)
# R.login
# self.driver.find_element_by_xpath("//android.widget.ListView/android.widget.TextView[contains(@text,'测试')]").click()
# self.driver.find_element_by_id('cn.ycf.testdp:id/msg').click()
def tearDown(self):
self.driver.quit()
print('tearDown')
if __name__ == '__main__':
unittest.main()
3.运行测试用例
# 获取所有测试用例
def get_allcase():
discover = unittest.defaultTestLoader.discover('./test_case', pattern="test*.py")
suite = unittest.TestSuite()
suite.addTest(discover)
return suite
if __name__ == '__main__':
# 运行测试用例
runner = unittest.TextTestRunner()
runner.run(get_allcase())
项目源码:https://github.com/yicaifenchen8/autotest.git