android真機自動化測試


appium執行用例時報錯問題:

 

問題解析:

一般該種情況都是因為來連接了多個設備,驗證辦法:cmd->執行adb devices  看結果是否是多個devices ,如果是這個問題,停掉多余設備,剩余一個設備就可以了。

 

android真機自動化測試

1、appium相關安裝(eclipse下)見http://www.cnblogs.com/wangcp-2014/p/5717589.html參考selenium的安裝

  1.1appium的安裝除了selenium安裝的東西外 還需要再切換到E:\Python\Scripts 目錄下cmd輸入:pip install Appium-Python-Client  安裝appium client

  1.2 eclipse下導入開發框架項目---設置appium---項目->properties->PyDev-Interpreter/Grammar中的click here to configure an interpreter not listed中進行設置,進入之后,Forced Builtins選項,點擊new,輸入appium保存,點擊apply,點擊確定,重啟下eclipse,ok

2、android-sdk下載及安裝

  2.1 android-sdk下載及安裝

  2.2 配置環境變量

       ANDROID_HOME=android-sdk的安裝目錄

       PATH=.; %ANDROID_HOME%\tools; ; %ANDROID_HOME%\platform-tools;。。。

  2.3 通過cmd下輸入adb驗證配置是否正確

  2.4 啟動adb  cmd下輸入adb start-server 啟動adb 返回沒有報錯就是啟動成功了 (報錯時查看端口是否被占用,結束占用該端口的進程就可以了)

  2.5 連接測試手機真機,cmd輸入adb devices 驗證 devices連接成功

   補充:cmd下輸入adb shell  進入android的linux系統

3、appium配置

  

4、運行appium不報錯,進入debug狀態證明配置沒問題了

5、eclipse寫測試用例代碼

# -*- coding: utf-8 -*-
import os
from appium import webdriver
import unittest
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)
)

class MyClass(unittest.TestCase):
    '''
    classdocs
    '''

    def setUp(self):
        '''
        Constructor
        '''
#################
        desired_caps = {}
        desired_caps['deviceName'] = 'device'  
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '4.3'  
        desired_caps['app'] = PATH('D:\\Workspace\\zufangdai_app_appium_test\\yuefuApp\\agent4.0.0_test.apk')
        desired_caps['appPackage'] = 'com.bj58.finance.agent'  
        desired_caps['appActivity'] = 'com.bj58.finance.agent.LuncherActivity' 
        desired_caps['waitappActivity'] = 'com.bj58.finance.agent.activity.LoginActivity'
        desired_caps['unicodeKeyboard'] = 'True'
        desired_caps['resetKeyboard'] = 'True'
        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    def test_login_success(self):
        self.driver.find_element_by_id("com.bj58.finance.agent:id/login_et_username").send_keys("18612180000")
        self.driver.find_element_by_id("com.bj58.finance.agent:id/login_et_password").send_keys("58shenqi58")
        self.driver.find_element_by_id("com.bj58.finance.agent:id/login_btn_login").click()
        sleep(10)
        self.driver.find_elements_by_xpath("//android.widget.Button[@resource-id='com.bj58.finance.agent:id/item_btn']")
        self.driver.find_element_by_id("com.bj58.finance.agent:id/item_btn").click() 
        sleep(5)
        
        
     def tearDown(self):
         self.driver.quit()
        
if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(MyClass)
    unittest.TextTestRunner(verbosity=2).run(suite)

運行結果:

ok

 

appium執行用例時報錯問題:

1、執行時報unknown host service

問題解析:

一般該種情況都是因為連接了多個設備,驗證辦法:cmd->執行adb devices  看結果是否是多個devices ,如果是這個問題,停掉多余設備,剩余一個設備就可以了。

2、輸入框輸入是輸不進去后台報錯

解決辦法:

    首次運行時會提示讓安裝appium setting 和另一個與appium運行有關的,點擊同意就好了,進入手機輸入法會發現多了一個appium。。。。輸入法,然后如果運行時出現輸入框輸不進去東西時,那么在運行前將輸入法手動切換成appium。。。那個輸入法,然后重新運行用例,輸入問題就解決了

3、Error: Requested a new session but one was in progress

問題分析:appium沒有正常進入debug模式,或者因為設置了預啟動,預啟動的應用session,沒有正常結束,就執行了測試代碼(代碼中還包括了應用的啟動)

解決方法:1、取消預啟動應用選擇

啟動appium后日志顯示正常進入debug模式,再執行測試代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM