小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python Appium開啟Android測試之路

 蝸牛知夜 2017-12-11

  1、獲取 Android app的Activity

  打開終端cmd,先cd進入到剛才下載的“新浪.apk”目錄下,然后使用aapt dump badging xxx.apk命令獲取包內(nèi)信息。注意,啟動類名稱一個字母都不能錯。

  aapt dump badging 新浪.apk cat>d:/log.txt  這樣可以將信息指定到某一文件下然后 查看

  2、啟動微博

  #-*-coding:utf-8-*-

  #Time:2017/7/20 18:06

  #Author:YangYangJun

  import time

  from appium import webdriver

  desired_caps = {}

  desired_caps['platformName'] = 'Android'

  desired_caps['platformVersion'] = '6.0'

  desired_caps['deviceName'] = 'N79SIV5PVCSODAQC'

  desired_caps['appPackage'] = 'com.sina.weibo'

  desired_caps['appActivity'] = 'com.sina.weibo.SplashActivity'

  driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

  driver.implicitly_wait(5)

  time.sleep(3)

  driver.quit()

  3、元素定位

  3.1、appium的webdriver提供了11種元素定位的方法,在selenium的基礎上擴展了三個,可以在pycharm里面輸入driver.find_element_by然后會自動匹配出來

  多的三個:

  driver.find_element_by_accessibility_id()

  driver.find_element_by_android_uiautomator()

  driver.find_element_by_ios_uiautomation()

 ?。ǖ谌齻€是ios的專用的)

  3.2、下面一一舉例進行介紹

  3.2.1、元素定位本篇主要介紹如何使用uiautomatorviewer,通過定位到頁面上的元素,然后進行相應的點擊等操作.

  uiautomatorviewer是android-sdk自帶的一個元素定位工具,非常簡單好用,使用uiautomatorviewer,你可以檢查一個應用的UI來查看應用的布局和組件以及相關的屬性。

  啟動uiautomatorviewer.bat

  打開目錄D:\SProgram\Sdk\tools

  雙擊啟動,啟動之后出現(xiàn)如下界面

  如果不喜歡雙擊啟動的話,也可以在cmd里面通過指令啟動

  先cd到tools目錄下,然后輸入uiautomatorviewer.bat回車后啟動服務

  3.2.1、find_element_by_accessibility_id

  driver.find_element_by_accessibility_id(u'我的').click()


  3.2.2、通過id定位元素

  resrouce-id屬性是id:

  driver.find_element_by_id('username')

  3.2.3、通過name定位元素

  text屬性是name

  driver.find_element_by_name('password')


  4、結合公司剛開發(fā)出來的app,進行項目實訓

  #-*-coding:utf-8-*-

  #Time:2017/7/21 16:32

  #Author:YangYangJun

  import time

  import unittest

  from appium import webdriver

  import sys

  reload(sys)

  sys.setdefaultencoding('utf8')

  class Login(unittest.TestCase):

  def setUp(self):

  self.desired_caps = {}

  self.desired_caps['platformName'] = 'Android'

  self.desired_caps['platformVersion'] = '6.0'

  self.desired_caps['deviceName'] = 'N79SIV5PVCSODAQC'

  self.desired_caps['appPackage'] = 'com.xxxx.mrg'

  self.desired_caps['appActivity'] = 'com.uzmap.pkg.EntranceActivity'

  #隱藏鍵盤

  self.desired_caps['unicodeKeyboard'] = True

  self.desired_caps['resetKeyboard'] = True

  self.driver = webdriver.Remote('http://localhost:4723/wd/hub', self.desired_caps)

  #self.driver.implicitly_wait(15)

  #測試異常登錄-用戶不存在

  def test_aNoUserLogin(self):

  driver  = self.driver

  time.sleep(5)

  driver.find_element_by_accessibility_id(u'我的').click()

  time.sleep(5)

  driver.find_element_by_accessibility_id(u'登錄/注冊').click()

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('username')').clear()

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('username')').send_keys('xzbuyer1')

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('password')').clear()

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('password')').send_keys('111111')

  time.sleep(2)

  driver.find_element_by_accessibility_id(u'登錄').click()

  time.sleep(18)

  get_alertMessage = driver.find_elements_by_android_uiautomator('new Uiselector().resourceId('android:id/message')').get_attribute('name')

  time.sleep(2)

  if get_alertMessage == u'用戶不存在':

  print u'用戶不存在,用例執(zhí)行成功!'

  else:

  print u'用例執(zhí)行失?。?

  def test_bNoPassLogin(self):

  driver  = self.driver

  time.sleep(5)

  driver.find_element_by_accessibility_id(u'我的').click()

  time.sleep(5)

  driver.find_element_by_accessibility_id(u'登錄/注冊').click()

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('username')').clear()

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('username')').send_keys('xzbuyer')

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('password')').clear()

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('password')').send_keys('1111112')

  time.sleep(2)

  driver.find_element_by_accessibility_id(u'登錄').click()

  time.sleep(18)

  get_alertMessage = driver.find_elements_by_android_uiautomator('new Uiselector().resourceId('android:id/message')').get_attribute('name')

  time.sleep(2)

  print get_alertMessage[0:5]

  # if get_alertMessage == u'用戶不存在':

  #     print u'用戶不存在,用例執(zhí)行成功!'

  # else:

  #     print u'用例執(zhí)行失??!'

  #

  # 測試正常登錄

  def test_cLogin(self):

  driver = self.driver

  time.sleep(5)

  driver.find_element_by_accessibility_id(u'我的').click()

  time.sleep(5)

  driver.find_element_by_accessibility_id(u'登錄/注冊').click()

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('username')').clear()

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('username')').send_keys('xzbuyer')

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('password')').clear()

  time.sleep(2)

  driver.find_element_by_android_uiautomator('new UiSelector().resourceId('password')').send_keys('111111')

  time.sleep(2)

  driver.find_element_by_accessibility_id(u'登錄').click()

  time.sleep(2)

  # 判斷是否登錄成功

  print driver.find_element_by_accessibility_id(u'西藏醫(yī)藥銷售有限公司').get_attribute('name')

  nickName = driver.find_element_by_accessibility_id(u'西藏醫(yī)藥銷售有限公司').get_attribute('name')

  temp = nickName[0:2]

  print  temp

  if nickName == u'西藏醫(yī)藥銷售有限公司':

  print '登錄成功!'

  else:

  print '登錄失??!'

  def tearDown(self):

  self.driver.close_app()

  self.driver.quit()

  if __name__ == '__main__':

  unittest.main()

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多