Android手機自動化測試執行個體詳解

來源:互聯網
上載者:User

標籤:

手機自動化架構也比較多,針對ios,android兩個不同的平台,最後我挑選了appium,它是利用webdriver來進行驅動測試的,這個架構我比較熟悉,而且它支援兩個平台。於是我就針對這兩個不同的平台進行了分別的搭建與測試,IOS平台的環境搭建沒有問題,具體搭建方法見:

http://blog.sina.com.cn/s/blog_68f262210102v0ta.html,而測試案例,由於現在我沒有辦法將ipa檔案轉化成app檔案,所以測試案例還沒有搞定。問題解決後,會發相應的文章的。

本篇介紹一下Windows環境下android自動化測試的具體執行個體,環境安裝見:

http://blog.sina.com.cn/s/blog_68f262210102v4aj.html,現在說一下測試案例:

測試對象:網信金融旗下的眾籌網的手機應用

運行對象:android模擬器(真機運行見下篇)

測試案例:簡單的登入

用例語言:webdriver+python

測試步驟:

1,啟動appium

在Windows下,找到appium應用程式,雙擊開啟,然後右上方的appium啟動按鈕,看到輸出日誌,表明啟動成功。



 

2,啟動android模擬器

模擬器如何建立,參見:

http://blog.sina.com.cn/s/blog_68f262210102v4a7.html,本人建立的模擬器為:antester,啟動方法:在cmd下輸入:emulator @antester,過一會兒就會彈出android模擬器:



 

3,編寫測試案例

   使用你習慣的編輯軟體來寫你的測試案例,我用語言是python,下面介紹一下具體的測試案例。

 

#-*- coding: UTF-8 -*-

#匯入常用的包

import os

import time

import unittest

from selenium import webdriver

from lib2to3.pgen2.driver import Driver

from lib2to3.tests.support import driver

 

#設定路徑資訊

PATH=lambda p:os.path.abspath(

os.path.join(os.path.dirname(__file__),p)                            

)

global driver

 

class LoginAndroidTests(unittest.TestCase):

def setUp(self):

    #初始化測試平台

        desired_caps={}

        desired_caps[‘device‘] = ‘android‘

        desired_caps[‘platformName‘]=‘Android‘ #測試平台

        desired_caps[‘browserName‘]=‘‘

        desired_caps[‘version‘]=‘4.2.2‘#系統版本

        desired_caps[‘deviceName‘]=‘antester‘#模擬器名稱

        desired_caps[‘app-package‘]=‘com.subject.zhongchou‘#要測試的app

        desired_caps[‘app-activity‘]=‘.ZhongChou‘#當前活動應用

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

       

    def tearDown(self):

        self.driver.quit()

   

    def test_login(self):

        time.sleep(30)

        #點擊“註冊登入”按鈕

        button=self.driver.find_element_by_id("com.subject.zhongchou:id/register_button")

        button.click()

        time.sleep(10)

        #登入

        name =self.driver.find_element_by_id(‘com.subject.zhongchou:id/loginnumber_phone‘)

        name.click()

        name.send_keys(‘183XXXXX905‘) #輸入使用者名稱

        psd =self.driver.find_element_by_id(‘com.subject.zhongchou:id/loginnumber_password‘)

        psd.click()

        psd.send_keys(‘XXXXXXX‘) #輸入密碼

        blogin=self.driver.find_element_by_id(‘com.subject.zhongchou:id/go_numberlogin‘) #單擊登入按鈕

        blogin.click()

        time.sleep(10)

        #此處要檢測是否登入成功,我懶省事,略了!

if __name__ == ‘__main__‘:

    suite = unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests)

    unittest.TextTestRunner(verbosity=2).run(suite)

 

上面是一個完整的測試案例,關係到元素的定位,內容的輸入等操作。其實還可以最佳化一下,把測試資料獨立出來放到一個xml檔案中,而且通用的操作,可以放到一個類中封閉成通用方法,此代碼只為了說明測試案例結構用的。

元素的定位

     元素的定位是自動化測試的頭等大事,在頁面自動化測試的時候,Selenium IDE提供了很好的定位,錄製等方法。可是在手機自動化測試的時候,沒有很好的工具 ,一般用的是appium inspector, uiautomatorviewer和hierarchyviewer等工具,具體使用方法自己去網上查一下。可是沒有很好的錄製方法,雖然appium inspector在mac上可以對IOS的App進行錄製,但是不太好用。

      Appium有一個很好的交流網站:http://www.testerhome.com/topics,大家可以時常去瀏覽一下,相信能學到很多知識的。快速,準確的定位是要靠經驗的,這個文章http://testerhome.com/topics/167,講了一些兒定位方法,希望對大家有所啟發。

 

  

Android手機自動化測試執行個體詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.