Python+Appium自動化測試(15)-使用Android模擬器(詳細)

作APP的UI自動化測試時,咱們每每會使用真機跑自動化測試腳本,由於這樣纔是最真實的使用場景。但前期調試腳本的話,能夠先使用模擬器,這樣相對更加方便。html

不推薦使用Android SDK裏自帶模擬器,太卡。python

這裏介紹兩款我正在用於作自動化測試的模擬器:Genymotion 與 夜神模擬器。android

一,Genymotion

1,註冊帳號

使用Genymotion時須要登陸帳號,咱們須要去Genymotion官網註冊帳號。web

官網地址:https://www.genymotion.com/架構

官網首頁點擊【Sign In】app

進入登陸頁面後點擊【Create an account】,進入註冊頁面,填寫信息註冊帳號。工具

2,下載Genymotion

官網下載地址:https://www.genymotion.com/download/測試

這裏我選擇下載第一個,即with VirtualBox,電腦已安裝了VirtualBox的話則下載第二個。3d

3,安裝Genymotion

3.1,雙擊下載好的exe文件,選擇好安裝路徑(或默認),而後一路點擊next便可。調試

安裝過程當中會提示安裝VirtualBox,一樣的,選擇好安裝路徑(或默認),一路點擊肯定便可。

安裝完成後桌面會出現如下3個圖標

3.2,雙擊Genymotion打開,輸入註冊好的帳號登陸,點擊NEXT按鈕。

3.3,選擇Personal Use,點擊NEXT。(固然有購買證書的話選擇 I have a license也行)

3.4,勾選協議,點擊NEXT。

而後就進入到了Genymotion首頁

4,建立虛擬設備

4.1,點擊頁面右上角「+」,進入選擇設備頁面。

4.2,下拉滑動可查看選擇不一樣的機型與系統版本,你們可根據須要自行選擇下載。

注意:由於後面會安裝的ARM轉換工具Genymotion-ARM-Translation暫時只支持最高android 8.0,因此我這裏選擇Samsung Galaxy S8 系統爲Android 8.0,點擊NEXT,跳轉至下一個頁面。

4.3,該頁面下,咱們能夠給設備從新命名,選擇分辨率、系統版本等配置,填寫選擇好後,點擊右下角 "INSTALL" 按鈕。我這裏所有選擇默認,點擊安裝。

而後頁面顯示正在下載,下載須要點時間,耐心等待便可

4.4,安裝完成後,雙擊該設備便可啓動,或以下圖步驟點擊也可啓動。

4.5,啓動後界面以下。每次打開後要確保圖中所指的wifi圖標是鏈接狀態,不然不能聯網。

5,安裝app

5.1,將下載好的apk文件拖動到模擬器界面,即進行安裝。

5.2,首次安裝APP時一般會出現如下提示:Genymotion device cannot run ARM instructions,以下圖

緣由:Genymotion模擬器基於x86,不能運行基於ARM架構的APP。

解決方法:安裝3.2中提到的ARM轉換工具Genymotion-ARM-Translation。

支持android 8 的Genymotion-ARM-Translation下載地址以下

連接:https://pan.baidu.com/s/1_q31jqIbWubHzGU__IKnmA
提取碼:s5gn

下載完成後,將該壓縮文件拖到模擬器便可安裝,點擊OK,安裝完成後重啓模擬器便可。

5.3,繼續安裝app,以安裝今日頭條APP爲例。

在今日頭條官網下載今日頭條app,拖動至模擬器,等待安裝完成便可。安裝完成後,打開以下:

5.3,查看模擬器設備id

在模擬器打開的狀況,cmd輸入命令:adb devices,能夠查看該模擬器的設備id,以下:

6,python+appium啓動Genymotion模擬器中的APP

6.1,獲取模擬器的設備信息,以及被測app的信息(以今日頭條APP爲例)。獲取方法跟博客appium鏈接真機啓動app中第二部分的方法同樣。

6.2,根據獲取到的參數信息,編寫示例腳本以下:

# -*- coding:utf-8 -*-
# @author: 給你一頁白紙

from appium import webdriver

desired_caps = {
    "platformName": "Android",
    "platformVersion": "8.0",
    "deviceName": "Samsung Galaxy s8",
    "appPackage": "com.ss.android.article.news",
    "appActivity": ".activity.MainActivity",
    "unicodeKeyboard": True,
    "resetKeyboard": True,
    "noReset": True,
}
# 啓動app
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

啓動appium服務,再運行腳本,能夠看到被測app被啓動。
注意:點擊APP打開時可能會出現:xxx keeps stopping,致使打不開APP,以下圖。

這種狀況暫時沒有找到解決方法。在公司測試本身的APP時,爲了不出現這種狀況,不要在模擬器裏安裝從應用市場下載來的APP,而是安裝本身在本地打的release包,或者直接讓開發給你打包一個用於測試的app,這樣是能夠打開的。

二,夜神模擬器

1,下載、安裝

1.1,下載。官網下載地址:https://www.yeshen.com/

1.2,安裝。可自定義安裝路徑,過程簡單。安裝完成後電腦桌面會出現兩個快捷方式,以下:

打開夜神模擬器,界面以下。默認是橫屏,點擊圖中一、2可切換成豎屏。

1.3,設置。關閉夜神模擬器,打開夜神多開器,能夠對模擬器進行設置,點擊以下設置按鈕。

進入設置頁面,可進行相應的設置,以下圖是個人設置。

在夜神多開器裏,還能夠以下選擇android版本安裝更多的模擬器。

夜神多開器更多的功能不贅述。

2,獲取模擬器的設備id

2.1,電腦安裝Android SDK並配置好環境變量,沒有安裝的話能夠查看博客appium環境搭建

2.2,打開模擬器,輸入命令adb devices,會發現找不到鏈接的模擬器設備。

2.3,這個時候,首先要確認SDK與夜神模擬器的adb版本是否一致,不一致則需替換成一致。

Android SDK的adb版本,輸入命令:adb version

cd進入夜神模擬器安裝路徑的bin,輸入命令nox_adb version查看

顯然SDK中的adb版本更高,須要替換成同樣的版本(選擇更高的版本)。

替換方法:刪除夜神模擬器安裝路徑中bin文件夾裏的nox_adb.exe,再將Android SDK裏的adb.exe複製到夜神模擬器安裝路徑的bin文件夾中,重命名爲nox_adb。

2.4,替換完成後,從新打開模擬器,且從新打開cmd命令窗,再次輸入命令adb devices,查看設備id成功。以下:

3,安裝APP

將下載好的apk文件拖動到模擬器界面,即進行安裝。也能夠在其自帶的遊戲中心APP裏面搜索應用安裝。

4,python+appium啓動夜神模擬器中的APP

4.1,獲取夜神模模擬器的設備信息,以及被測app的信息(以今日頭條APP爲例)。獲取方法跟博客appium鏈接真機啓動app中第二部分的方法同樣。

4.2,根據獲取到的參數信息,編寫示例腳本以下:

# -*- coding:utf-8 -*-
# @author: 給你一頁白紙

from appium import webdriver

desired_caps = {
    "platformName": "Android",
    "platformVersion": "7.1.2",
    "deviceName": "VOG_AL10",
    "appPackage": "com.ss.android.article.news",
    "appActivity": ".activity.MainActivity",
    "unicodeKeyboard": True,
    "resetKeyboard": True,
    "noReset": True,
}
# 啓動app
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

啓動appium服務,再運行腳本,能夠看到今日頭條app被啓動。

三,總結

1,Genymotion的缺點

1.1,Genymotion支持到了Android 10版本的模擬器,但由於暫時只找到了支持Android 8.0的Genymotion-ARM-Translation,因此可用的也就只到Android 8.0,有興趣的能夠去網上查找支持更高版本的ARM轉換工具。

1.2,Genymotion模擬器安裝應用市場的app,打開後會出現閃退,並且幾乎是全部的APP。

2,夜神模擬器的缺點

2.1,夜神模擬器暫時最高只有Android 7的版本,但如今的Android手機基本都是Android 9以上的版本。

綜上,能夠根據本身的喜愛與方便程度選擇,腳本調試的時候可能使用模擬器方便一點,但實際自動化測試過程當中仍是推薦使用真機,使用真機請參考博客appium鏈接真機啓動app

相關文章
相關標籤/搜索