日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Android手機(jī)自動化測試真機(jī)運行

 小豬窩969 2015-06-25

   手機(jī)自動化測試用例雖然可以在模擬器上運行,可是模擬器畢竟和真機(jī)還是有區(qū)別的。在搞定了模擬器上運行測試用例后,我又花了兩天的時間,研究了一下真機(jī)運行測試用例。期間也遇到了不少問題,不過最終還是搞定了,現(xiàn)在先將測試用例真機(jī)運行的方法說一下,然后再羅列我遇到的問題。

真機(jī)運行測試用例的方法

 

一,    打開手機(jī)的USB調(diào)試模式

不同的手機(jī)有不同的方法打開usb調(diào)試模式,可是去網(wǎng)上查一下你手機(jī)的調(diào)試模式打開辦法(http://wenku.baidu.com/view/3077f06c25c52cc58bd6be15.html?re=view)。還有一個可以去網(wǎng)上下載一個“USB調(diào)試快捷開關(guān)”的應(yīng)用,將手機(jī)的USB調(diào)試模式打開。

 

二,    連接手機(jī)到電腦

   將手機(jī)用數(shù)據(jù)線連接到電腦,并授權(quán)USB調(diào)試模式。查看連接的效果,在cmd下運行命令:adb devices -l 查看UDID,如下圖所示:

Android手機(jī)自動化測試真機(jī)運行

如果有輸出,就表示連接成功。

 

三,    啟動Appium服務(wù)

   根據(jù)查到的UDID啟動appium服務(wù),運行命令:

#>appium -a 127.0.0.1 -p 4723  –U  4ca1558c  --no-reset

-U 參數(shù)后面跟的一串字符就是手機(jī)的UDID,這個是通過第二步查到的。

Android手機(jī)自動化測試真機(jī)運行

 

當(dāng)程序輸出如上圖信息的時候,表示appium啟動成功,此時便可以運行測試腳本了。

 

四,    測試腳本的編寫及運行

   真機(jī)運行的測試腳本與模擬器上幾乎是相同的,就是有些兒配置不太一樣。具體腳本詳解如下:

#-*- 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.4.2'

        desired_caps['deviceName']='MIUI-KXCCNBF22.0'#這是測試機(jī)的型號,可以查看手機(jī)的關(guān)于本機(jī)選項獲得

       

        desired_caps['app'] = PATH('D:\\AndroidAutomation\\AndroidAutoTest\\app\\zhongchou.apk')#被測試的App在電腦上的位置

 

#如果知道被測試對象的apppageappActivity可以加上下面這兩個參數(shù),如果不知道,可以注釋掉,不影響用例執(zhí)行

        #desired_caps['appPackage']='com.subject.zhongchou'

        #desired_caps['appActivity']='.ZhongChou'

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

       

    def tearDown(self):

        self.driver.quit()

   

    def test_login(self):

        time.sleep(10)

        #點擊注冊登錄按鈕        button=self.driver.find_element_by_id("com.subject.zhongchou:id/register_button")

        button.click()

        time.sleep(5)

        #登錄

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

        name.click()

        name.send_keys('183XXXXXX05')

       

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

        psd.click()

        psd.send_keys('XXXXXXXX’)

       

        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)

 

另開一個cmd窗口,運行測試腳本(python XXXX.py)即可。此時服務(wù)端就會有輸出,程序在手機(jī)上運行。

注:在測試用例運行過程中,要在手機(jī)上安裝Appium Settings,按提示允許安裝就可以了。

 

研究真機(jī)運行的時候遇到的問題

1,電腦連接到手機(jī)后,運行adb devices –l無信息輸出?

  電腦連接手機(jī)后,一般情況下會提示安裝驅(qū)動程序,如果手機(jī)較新的話可能不會提示,但是運行adb devices –l后無任何輸出。此時只需要安裝91手機(jī)助手或是其他手機(jī)管理工具,安裝上相應(yīng)的驅(qū)動程序,再次連接就可以了。

 

2,運行程序后提示:WebDriverException: Message: u"A new session could not be created. (Original error: Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity)"

    當(dāng)我從網(wǎng)上學(xué)習(xí)了腳本的編寫方法后,模擬著寫了一個我自己的測試用例,可是連接到真機(jī)后,運行腳本時,在執(zhí)行過程中出現(xiàn)了上面的錯誤提示,可是程序無法運行。

   在網(wǎng)上查看了一下,找到了問題所在:是程序的'appPackage'和‘appActivity’不正確,查找了解決辦法,有說要反編譯被測試的app,然后查找里面的appactivity??墒欠淳幾g后才發(fā)現(xiàn),里面的東西好多,找不到開始的時候appactivity是哪兒個?只好再找其他的辦法了。

   最后在一個論壇的回復(fù)中找到了解決辦法:將setup函數(shù)中的兩行代碼注釋掉就可以了。

desired_caps['appPackage']='com.subject.zhongchou'

desired_caps['appActivity']='.ZhongChou'

 

3,在程序執(zhí)行這程中,用Send_keys()函數(shù)對輸入框輸入值的時候,無法輸入?

   當(dāng)我執(zhí)行測試用例的時候,發(fā)現(xiàn)用戶名和密碼無法用send_keys()函數(shù)輸入到輸入框中。因為一輸入就會打開軟鍵盤,而軟鍵盤上面的布局是九宮格的,點擊一直出錯。

   在網(wǎng)上查了好多辦法,人家都是一用的這個函數(shù)啊,為什么到我這就不行了呢?我想到了先切換到數(shù)字或是英語輸入模式,然后再輸入,折騰起來很麻煩,還沒有成功。最后才發(fā)現(xiàn),是我自己好傻,安裝了搜狗輸入法的原因,把這個輸入法卸掉后就成功了!

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多