測試前奏 之 模擬器環境之Genymotion、Emulator、夜神配置選擇
週末是一個學習與總結的好時機。利用工作之餘、閒暇之中做些喜歡的事情,一時間會感到很滿足、很充實。筆者做安卓移動開發的,為了提高在所開發應用app的效能,得到一款流暢、討人喜愛的應用,之前在開發路線上也做了很多的功課。曉得怎麼快速定位自己親手開發的應用哪裡存在bug問題,哪裡存在效能問題,通過什麼方式能夠更好的優化處理,是很重要的。那麼學習一下測試我覺得會是一個很好的技術方案與方向。
測試中,裝置的測試是免不了的操作。起初使用真機,而許可權問題卻是硬傷。無奈之下忍屈憋痛找了模擬器使用下下,但在配置環境使用Genymotion時問題出現了,坑多多吖 ~
為了讓更多學習中的夥伴能夠快速定位並解決問題,並做一個靜靜的美男子。在此把自己的配置經驗分享一下;
所需檔案下載連結
密碼:qghq
簡單解釋一下圖的內容,並根據下圖目的進行配置。
apache-ant | adt-bundle-windows | VirtualBox | genymotion | .ova 結尾檔案 |
---|---|---|---|---|
開發環境配置其一 | 整合了adt、sdk和eclipse的開發包 | 虛擬機器 | 手機模擬器裝置 | 雙擊裝入VirtualBox的虛擬手機裝置 |
配置自動化測試環境
闡明下我的正確配置組合
作業系統 | genymotion版本 | VirtualBox版本 |
---|---|---|
win10-64位 | 2.6.0 | 5.2.18 |
接下來,先走一遍我錯誤配置的過程,然後詳盡描述又是如何糾正和走回正道的。
錯誤的配置組合
作業系統 | genymotion版本 | VirtualBox版本 |
---|---|---|
win10-64位 | 2.6.0 | 4.3.x |
配置的整個流程
- 配置jdk
- 配置ant環境(系統變數中配置)
- 配置adb和andriod命令環境(同樣是在系統變數中進行配置)
adb的命令在路徑在**/sdk/platform-tools
('adb’不是內部或外部命令,也不是可執行的程式或批處理檔案)
andriod的命令在路徑在**/sdk/tools
( ‘android’ 不是內部或外部命令,也不是可執行的程式或批處理檔案。) - 安裝VirtualBox
- 安裝Genymotion
我這裡的VirtualBox版本使用的是v4.3.4,一個會導致錯誤的版本,詳情請繼續翻看
上圖就是出現的問題,而且對於一個初學者而言更是一個很難以解決的問題。但在這個問題上少許花費點時間還是可以解決的。
解決流程:
- 設定 VirtualBox 和 Genymotion 相容性、使用管理員身份執行,如下。其中兩者的相容性設定要一致。
當然這個設定在我的電腦上還是不能完全解決讓我做正常操作的問題。儘管我有些不服氣多次嘗試了幾個版本,如4.3.10版本,還是不能!好像4.3.x版本本身在我的電腦上是存在問題的。 - 於是解除安裝4.3.x的版本,並重新安裝此時最新的5.2.18版本(這個版本是我實在無奈到官網重新下載)
在最新版本之後就沒有問題了,Genymotion可以正常開啟。但還是無法滿足我的需求,在操作過程問題依然存在。
下面的則是5.2.18版本+Genymotion+相容性配置+管理員執行配置
正常啟動後的樣子
裡面的手機虛擬裝置是通過上圖中的**.ova檔案雙擊加入到VirtualBox虛擬機器**中的。 - 新的問題出現就是下圖中的——委屈,我先在模擬器裝置中開啟了除錯
然後自我感覺良好的在dos命令視窗中秀一下,結果
**又出錯!!!**尷尬,又有意料之外的問題出現,怎麼辦?解決它!經過各種方式,得出結論
adb server version (32) doesn't match this client (39); killing...
error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 通常每個套接字地址(協議/網路地址/埠)只允許使用一次。 (10048)
這個問題主要是出現在Genymotion身上,當Genymotion啟動之後,原始配置上是使用自己預設的。導致了各種的不匹配,但是使用上圖中開發包adt-bundle-windows中的sdk也是不行,會出現同樣的問題。
4.於是再次進行嘗試,使用我Andrdoid Studio 中SDK,並把sdk地址新增了進去。最後再次操作執行,發現成功了,像下面。最後的總結是,VirtualBox版本和SDK的配置影響好深遠。
Genymotion模擬器安裝apk失敗
緊接著我已經迫不及待的要使用adb命令對手機模擬器裝置進行apk的安裝測試了。然後輸入adb安裝apk命令,結果~~又炸了。。
Failure [INSTALL_FAILED_NO_MATCHING_ABIS]
Genymotion從版本2.0開始提供的虛擬裝置移除了Google Apps,以及ARM library support支援,依靠這些元件執行的app都會報這個錯誤。而解決方案就是下載讓Genymotion支援app安裝執行的ARM架構的工具包,並裝到Genymotion模擬器中。
網路上有說,下載完了之後直接拖到模擬器中就能提示並配置安裝了。我拖我拽了半天,電腦碰巧也是不能夠使用這種方式。於是我只能使用命令安裝了,生活真美好(life is shit)。步驟,
- 下載相應的工具包
- 啟開Genymotion虛擬機器裝置
- 開啟dos字元視窗,將本地Genymotion-ARM-Translation.zip工具包拷貝到模擬器的
/sdcard/Download/
目錄 - 然後再進行安裝執行
本地拷貝:adb -s 模擬器名 push 工具包名 /sdcard/Download/工具包的新名字
安裝執行:adb shell flash-archive.sh /sdcard/Download/工具包的新名字
看到 Done successfully ! 說明工具包安裝成功了。然後我就直接執行安裝apk的命令,
發現還是不能安裝apk軟體到虛擬機器中。為什麼??因為需要重新啟動虛擬機器才行!
4. 重新啟動虛擬即,並執行adb的安裝命令,終發現,成功了。
最後的問題 Genymotion 點開安裝的app,崩潰
你以為,這樣就完美成功了嗎?你錯了,因為當你安裝apk到模擬器中之後,點選執行會發現——瞬間崩潰!而這個問題,我目前試過N中方式,暫時無解。。。。。
然後我決定放棄使用Genymotion,使用Android Studio的模擬器。喵喵鍾成功展示
你以為這樣就算成功了嗎?非也,使用我自己Android Studio中自帶的安卓模擬器安裝上apk,依然出現和使用Genymotion模擬器出現的所有狀況一樣,app起開崩潰!!突然覺得這世界太複雜了,我就想做一個測試用的手機模擬器而已,犯得著跟我這麼較勁兒嗎?!
跳出慣用方案,改換模擬器——夜神手機模擬器
簡單截圖,以作分享
設定方便、流暢、快捷,既能滿足測試功能,又能滿足你對美的追求。關鍵的一點是不用考慮什麼 x86、arm架構相容問題。著實方便,開心到雀躍!下載地址
下載安裝之後,要進行手機可調式的模式設定,
1)
手機模式設定,請看設定圖例;
2)
開啟USB除錯,設定成為手機的可調式模式;
之後,就能進入到開發者功能選項中進行設定。開啟USB除錯模式即可!
但是這樣使用adb命令adb devices
找不到?!經查詢解決方案,找到解決方法。使用夜神手機模擬器的話要使用他自己的adb命令 ——nox_adb命令
但是使用之前,你要配置你的path的系統環境。把你安裝的目錄中nox_adb的路徑配置進去。
如此一來你才能進行正常的nox_adb命令。
而事實並非這樣,本以為已經萬事俱備的時候,突然又出了么蛾子
又再次走向追尋問題解決方法、良藥的坦途!
使用命令 nox_adb connect 127.0.0.1:62001
開啟連線電腦IP+新的埠。然後就能真正的正常使用了!!!
然後再安裝一下抖音了、慕課網了的apk,安裝成功、執行成功且流暢!到此,幾天的折騰圓滿結束~
未完,繼續
今天是9月30號,距離開這篇部落格已近月。中間輾轉回旋,阻礙連連。今天在使用過程中又出現了新的問題——使用Eclipse進行Robotium測試時候,Eclipse無法連線夜神模擬器!!
按照正常的操作邏輯,當我們開啟了Eclipse和夜神模擬器(已開啟USB除錯)。執行測試操作可以看到這樣
而結果Eclipse偏偏不能連線已經除錯好的夜神模擬器。
無法正常連線原因一,可能夜神模擬器和SDK中的adb版本不同導致的;可以通過下圖中命令檢視
如果兩者的adb版本不同,複製sdk中的adb,覆蓋夜神的adb。
無法正常連線原因二,未進行手動adb連線夜神模擬器,連線方式看下圖
連線成功之後執行Eclipse操作(或者重啟Eclipse)就能看到識別的夜神模擬器了啦~
然後,我自己寫了一個簡單的安卓應用作為被測工程,又寫了一個測試工程。使用夜神模擬器進行測試,完美通過!!!!!!
相關文章
- Windows逆向之配置虛擬機器環境Windows虛擬機
- Fiddler && 夜神模擬器 抓包
- python框架之虛擬環境的配置Python框架
- 無線網路安全————2、無線路由器配置和選擇測試環境路由器
- Android Studio與夜神模擬器連線Android
- 夜神模擬器安裝FiddlerRoot.cer
- 虛擬機器環境搭建之vagrant虛擬機
- 壓測工具之JMeter之環境配置及執行JMeter
- vsp主機伺服器選擇及環境配置伺服器
- 配置環境之vscodeVSCode
- 配置開發環境、生成環境、測試環境開發環境
- 智駕模擬測試實戰之自動泊車HiL模擬測試
- app自動化測試環境配置:adb環境配置、monkey環境配置、appium環境配置大全APP
- python+Appium+夜神模擬器連線---踩坑PythonAPP
- RMAN之環境配置(一)
- jQuery選擇器之層次選擇器jQuery
- 如何在測試環境中實現 API 模擬呼叫API
- Xcode配置測試環境和線上環境XCode
- 一、虛擬機器環境配置虛擬機
- 虛擬機器搭建測試環境解決方案虛擬機
- 測試前奏 之 ADB無限連線除錯模式除錯模式
- 測試前奏 之 Robotium使用Eclipse和ADT對apk進行黑盒測試EclipseAPK
- 建立 測試環境 + 配置伺服器ssl證書伺服器
- Windows配置Delve的測試環境Windows
- 虛擬機器基礎環境配置虛擬機
- 安裝python虛擬環境並配置虛擬環境以及安裝scrapy模組Python
- 自動化測試之Selenium篇(一):環境搭建
- Java NIO之Selector(選擇器)Java
- 測試前奏 之 dos字元頁面執行 monkeyrunner 命令報錯字元
- 虛擬化環境下的效能測試
- Django基礎四之測試環境和ORM查詢DjangoORM
- 滲透測試模擬黑客攻擊之蒐集資訊黑客
- 虛擬環境配置以及xshll配置
- 華為模擬器ensp的路由配置以及連通測試路由
- 機器學習之模型選擇機器學習模型
- Python爬蟲之CSS選擇器Python爬蟲CSS
- 使用Genymotion模擬器或者手機執行ionic4程式
- 測試開發之系統篇-按需建立測試虛擬機器虛擬機