概述
本文主要分爲以下幾個部分
- 安裝Python3
- 安裝Python3的Appium庫
- 安裝Android SDK
- 安裝JDK
- 安裝Appium
- 安裝模擬器
- 編寫測試腳本並生成測試報告
正文
一、安裝Python3
直接登錄Python官網https://www.python.org/,下載最新版本即可。
然後安裝的時候注意一下安裝路徑,比如我的安裝路徑D:\Python37
,接下來會用到這個安裝路徑。
二、安裝Python3的Appium庫
打開Python安裝目錄,找到Scripts
文件夾,點進去,示例:
在地址欄上輸入cmd
,然後回車,打開控制檯:
在控制檯裏輸入命令pip install Appium-Python-Client
,然後回車
看到下圖的提示就表明安裝成功了
三、安裝Android SDK
我懶得折騰,所以就直接下載了Android Studio
下載地址
https://developer.android.com/studio/#downloads
下載完成開始安裝
如果需要安裝自帶的模擬器,就把這一項勾選上,然後Next,接下來選擇安裝路徑,比如我的同樣放在D
盤
接下來一路Next,到了選擇SDK的頁面注意一下
選擇Custom
,這樣可以只安裝自己喜歡的部分,接下來選擇主題,當然這個以後可以在Android Studio裏邊改
繼續Next,到達定製組件頁面,如下圖
設置一下SDK的安裝路徑,比如我的是D:\Android\SDK
,接下來繼續Next…finish。然後就進入了緩慢的下載環節,讓它在這兒慢慢的下載吧,下載完成後就好了。我們可以進入下一節了。
四、安裝JDK
這裏我使用的是JDK8,下載地址
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
接受協議,然後選擇對應平臺下載即可
接下來安裝過程比較簡單,也是一路Next,注意選擇一下安裝路徑,比如我的安裝路徑D:\Java\jdk1.8
五、安裝Appium
官網地址 http://appium.io/
點擊下載按鈕會到GitHub的下載頁面,選擇對應平臺下載
Windows就選這個(快捷下載)
安裝完成後,啓動Appium,host和port默認的即可,然後編輯下配置信息
然後點下邊那個保存並重啓的按鈕,然後點第一個Start Server
按鈕,將會看到
如果使用真機測試,插上手機就可以開始編寫腳本測試了。但是呢,由於手邊沒有數據線,就採用模擬器了,所以有了下一節。
六、安裝模擬器
這裏使用的是夜神模擬器
下載地址 https://www.yeshen.com/,之所以不用Android自帶的,是因爲記得多年前啓動一次要好久,然後就再也沒用過。
這個也沒有什麼好說的,也是注意一下安裝路徑,然後一路下一步就好了。
安裝完成後要進行一下簡單修改:
- 打開安裝目錄,進入到
bin
目錄(比如:D:\Nox\bin
) - 把第三節裏安裝好的Android SDK裏的
adb.exe
文件(比如我的在D:\Android\SDK\platform-tools
目錄下)複製到該目錄覆蓋掉該目錄已存在的adb.exe
文件 - 刪掉該目錄的
nox_adb.exe
文件,再複製一份adb.exe
並重命名爲nox_adb.exe
- 啓動模擬器
- 再該目錄打開控制檯,執行
nox_adb.exe connect 127.0.0.1:62001
,然後執行adb devices
,看到如下信息就表示成功了 - 在模擬器裏安裝測試
apk
文件,這裏以一個計算器爲例,直接將apk
文件拖到模擬器裏即可 - 繼續在剛剛的控制檯窗口裏輸入
aapt dump badging D:\apk\com.youdao.calculator-2.0.0.apk
,其中D:\apk\com.youdao.calculator-2.0.0.apk
是測試apk
的完整路徑。
可以看到安裝包的信息都打印出來了,記錄下紅框裏這兩個名稱,待會兒寫測試腳本的時候要用。
注意,如果模擬器重啓了,需要執行第5步的nox_adb.exe connect 127.0.0.1:62001
七、編寫測試腳本並生成測試報告
-
創建測試用例目錄
testcase
,在該目錄下創建test_app.py
文件import time import unittest from appium import webdriver class MyTests(unittest.TestCase): # 測試開始前執行的方法 def setUp(self): desired_caps = {'platformName': 'Android', # 平臺名稱 'platformVersion': '4.4.2', # 系統版本號 'deviceName': '127.0.0.1:62001', # 設備名稱。如果是真機,在'設置->關於手機->設備名稱'裏查看 'appPackage': 'com.youdao.calculator', # apk的包名 'appActivity': 'com.youdao.calculator.activities.MainActivity' # activity 名稱 } self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) # 連接Appium self.driver.implicitly_wait(8) def test_calculator(self, t=500, n=4): """計算器測試""" time.sleep(3) window = self.driver.get_window_size() x0 = window['width'] * 0.8 # 起始x座標 x1 = window['width'] * 0.2 # 終止x座標 y = window['height'] * 0.5 # y座標 for i in range(n): self.driver.swipe(x0, y, x1, y, t) time.sleep(1) self.driver.find_element_by_id('com.youdao.calculator:id/guide_button').click() for i in range(6): self.driver.find_element_by_accessibility_id('Mathbot Editor').click() time.sleep(1) btn_xpath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.support.v4.widget.DrawerLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.widget.LinearLayout[3]/android.view.View/android.widget.GridView/android.widget.FrameLayout[{0}]/android.widget.FrameLayout' self.driver.find_element_by_xpath(btn_xpath.format(7)).click() self.driver.find_element_by_xpath(btn_xpath.format(10)).click() self.driver.find_element_by_xpath(btn_xpath.format(8)).click() time.sleep(3) # 測試結束後執行的方法 def tearDown(self): self.driver.quit()
-
創建
run.py
文件import os import time import unittest from HTMLTestRunner import HTMLTestRunner test_dir = './testcase' discover = unittest.defaultTestLoader.discover(start_dir='./testcase', pattern="test*.py") if __name__ == "__main__": report_dir = './test_report' os.makedirs(report_dir, exist_ok=True) now = time.strftime("%Y-%m-%d %H-%M-%S") report_name = '{0}/{1}.html'.format(report_dir, now) with open(report_name, 'wb')as f: runner = HTMLTestRunner(stream=f, title="測試報告", description="本測試報告內容包含超級計算器的簡單測試") runner.run(discover)
導出測試報告用到了
HTMLTestRunner
,但是Python3的好像有問題,在網上找了兩個修改後支持Python3的, 需要的話可以在本文尾部的示例項目中下載。 -
運行
run.py
文件
等程序運行完之後即會在test_report
目錄下生成測試報告
在瀏覽器裏打開即可看到報告內容,示例
到此,全部完成。如果有空的話可以再補充下Appium的使用,比如元素定位之類的,希望本文能幫到初學自動化測試的同學。
項目示例下載地址 https://github.com/lixk/apptest
艾瑪,羅嗦這麼多,都八點了還沒吃晚飯,好餓,今天就先到這裏了。