Eclipse+appium+夜神虛擬機環境調試

Eclipse+appium+夜神虛擬機環境調試

最近在學習python,發現教程幾乎都是連接手機真機,但是目前手里沒有可測試的真機,所以想到用虛擬機練習。網上關于這部分的內容真的是非常少,好不容易找到一個遇到的問題也是卡了很久才解決,所以總結下過程和遇到的問題,重新回顧一下。這部分環境搭建確實挺復雜,會遇到各種各樣的問題,大家需要有點小強精神哦

1. python自動化實現原理

首先先來了解一下appium工作原理,以及如何進行交互,方便我們了解自己需要搭建什么樣的環境


實現原理

? ? ? ? 如上面圖所示,appium自動化環境包括三個部分:客戶端,服務端,移動設備,那么這3部分是如何工作的呢?

1. 客戶端編寫好腳本后,運行代碼,這里的客戶端支持各種語言(python,java等),通過webdriver協議調用appium服務器

2. 服務端首先建立一個會話,通過4724端口和移動設備通信

3. 移動端bootstrap.jar接受到請求后發送給UIAotomator

4. UIAotomator執行腳本命令,進行自動化測試


2. 搭建環境所需工具安裝

通過上面的過程,我們了解到只要從這3端中挑選出適合自己的工具就可以了

這里給大家介紹一個很好的搭建網址,供大家參考,介紹的非常詳細,相信比我寫出來的會好很多:http://www.testclass.net/appium/

這里附上我自己下載的安裝包路徑,環境是win7 64 位:https://pan.baidu.com/s/1hsxT9FQ

安裝包

3.環境調試

在這一部分,我將按照實際過程的步驟進行講解,大家按照我這個過程一步一步來,分別為測試包安裝-》虛擬機連接電腦-》啟動appiumdesktop-》建立回話-》運行腳本-》腳本運行成功

3.1模擬器測試安裝包安裝

1. ? 我這里安裝的測試包為公司正在測試的一款軟件‘飛凡’, ,將安裝包直接拖拽到cmd后enter,可以看到模擬器安裝包已經開始安裝,安裝成功如下圖所示(如果不支持拖拽的話,在cmd中輸入adb install app所在目錄,如輸入adb install? D:\chrome下載\com.wanda.app.wanhui_422000000.apk 也可以安裝成功)


安裝成功

3.2 模擬器adb命令連接到電腦

打開夜神( )虛擬機,在cmd里輸入命令adb connect 127.0.0.1:62001(如果環境變量沒有配置ANDROID_HOME,cmd需進入Android sdk下的platform-tools目錄下再運行adb connect 127.0.0.1:62001),出現connected to 127.0.0.1:62001提示說明連接成功。


設備連接

3.3 啟動appiumdesktop,建立session回話,確定capability

1. 點擊圖標 啟動appiumdesktop,啟動界面如下圖所示


啟動界面

2.點擊start server按鈕,出現server運行成功界面

運行界面

3.點擊右上方搜索圖標,在這里很關鍵,有幾個需要我們確定的capbility,下圖是我已經確定好的


capbility

4.那么如何確定這幾個關鍵因素呢:

Devicename(設備名稱)

appWaitActivity(測試包的首個等待頁)

appPackage(測試包的首個等待頁)

platformName(測試平臺名稱)

platformVersion(測試平臺版本號)

Devicename? 虛擬機連接電腦成功后,在cmd里輸入adb devices,device前的就是設備名稱,因為是虛擬機,所以出現的是ip地址端口號形式,如果要是真機的話就不是這樣的


虛擬機連接設備

appPackage、appWaitActivity這兩項我試用了很多方法,比如adb logcat命令,但我發現查找功能項appWaitActivity的時候查找不到,最后推薦大家使用我下面的方法:aapt

1.cmd 進入 Android SDK下aapt目錄:我這里目錄是D:\software\android-sdk-windows\build-tools\27.0.2

2.運行aapt工具:aapt dump badging 路徑+名稱,如aapt dump badging d:\com.wanda.app.wanhui_422000000.apk,

包名稱就是:com.wanda.app.wanhui,在Android系統中是判斷一個App的唯一標識,這里要注意以這里顯示的為準,不要直接寫上面安裝包的名稱如com.wanda.app.wanhui_422000000,否則會報錯


包名稱

頁面下拉找到appWaitActivity為:com.feifan.o2o.business.launch.LauncherActivity


appWaitActivity

3.platformName就是使用哪種移動平臺,我這里就填Android

4. platformVersion是測試平臺版本號:虛擬機可以進入設置->關于查看,我這里是4.4.2


platformVersion

Ok,到這里我們把確定好的capbility都添加到appium中,點擊右下方的保存按鈕,appium的虛擬環境設置工作就完成了,接下來我們在eclipese里運行腳本

3.4 eclipse運行腳本,調用appiumdestop中session回話

這里我把建立項目的過程說一下:

1. 在eclipse里運行腳本前需要導入python項目,參考配置網址:https://www.cnblogs.com/Bonker/p/3584707.html,如果覺得配置麻煩,用python自帶的Idle運行也可以,簡單方便

2. 將下面的代碼拷貝eclipse模塊中,點擊運行按鈕,如果一切正常,就會看到夜神虛擬機中飛凡app成功啟動運行

@author: Administrator

'''

#coding=utf-8

from appium import webdriver

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '4.4.2'

desired_caps['deviceName'] = '127.0.0.1:62001'

desired_caps['appPackage'] = 'com.wanda.app.wanhui'

desired_caps['appActivity'] = 'com.feifan.o2o.business.launch.LauncherActivity'

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

driver.find_element_by_name('黃商超市八里商貿中心店').click()

driver.quit()


4.在運行過程中會遇到的錯誤

實際上,剛剛接觸自動化環境,搭建完成后都會遇到各種錯誤,下面舉例說明一下

4.1.運行代碼后 appium desktop 啟動,提示“could not find a connected Android device”,這個問題困擾了我好久,明明知道是沒有找到設備,但就是想不明白為什么找不到,這時我就開始各種懷疑人生,難道是我環境配錯了,進行了各種試錯過程,后來想了想adb 經常重啟,就嘗試著在運行代碼后,在cmd里重新執行adb connect 127.0.0.1:62001命令,ok 問題解決,當用真機的時候就不會有這樣的問題


錯誤1

4.2問題1 解決后出現如下提示error running command: Error: Unable to find an active device or emulator with OS 4.4.4.. The following are available: 127.0.0.1:7555 (4.4.4)


錯誤2

原來4.4.4.,后面多了一個” .”,這種錯誤同志們不要嘗試犯這種低級錯誤

3. 繼續運行一遍代碼,這回提示錯誤“activity used to start app doesn’t exist or cannot be launched!make sure…”,提示的意思是啟動app時沒有找到activity,可以確定是我們的launchable activity寫錯啦,重新查一遍launchable activity具體是什么就好了,回到上文aapt命令翻閱


錯誤3

4.eclipse運行程序,報錯“name '黃商超市八里商貿中心店' is not defined”


錯誤4

查看上面的代碼發現()里的內容沒有加‘’導致,添加即可

綜上,其實在eclipse運行代碼后,夜神虛擬機中指定app啟動成功就說明你的環境已經配置成功了,接下來就可以進行自動化腳本編寫啦

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379

推薦閱讀更多精彩內容