天天看點

APP測試理論知識

  1. 什麼是移動測試
    1. 移動端測試是指移動應用進行的測試,對移動應用的業務、相容性、健壯性等一系列需求驗證
  2. 移動端測試分類
    1. APP功能測試
    2. APP自動化測試(本階段學習)
    3. APP安全測試(資料、adb相關指令)
    4. 擴充
      1. 接口測試
      2. 性能測試
        1. 用戶端(應用本身性能測試  monkey)
        2. 伺服器(壓力測試、響應時間)
  3. APP功能測試
    1. 業務邏輯正确性測試
      1. 産品文檔
    2. 相容性測試
      1. 系統版本
        1. 安卓:定制版和官方版本
          1. 定制版:華為、oppo、vivo、小米、三星
          2. 官方版本:5.1、7.1.1、6.0、8.0、27
        2. Ios:官方版
          1. 12.1、11.4.1、12.0.1
      2. 分辨率
        1. 1920*1080 1280*720、2280*1080
      3. 網絡情況
        1. Wifi
        2. 4G
      4. 以上資料來源:   
        1. 騰訊移動分析:https://mta.qq.com/mta/data/device/os
        2. 移動觀象台:mi.talkingdata.com
        3. 百度
    3. 異常測試
      1. 熱啟動
        1. 将應用置于背景一段時間,再将應用從背景切換到前台,關注:切換到前台後,是否保留置于背景界面
        2. 冷啟動
          1. 應用在背景未運作,重新啟動應用
      2. 網絡切換&中斷恢複
        1. 網絡切換:wifi<=>4G<=>3G
        2. 中斷恢複:網絡下載下傳中斷,是否繼續可恢複下載下傳
      3. 電話&資訊中斷恢複
        1. 說明 :電話資訊對移動應用的影響,
        2. 關注:在使用應用中,有電話或資訊打斷正在使用的應用,打斷之後,應用保留來電之前的界面
    4. 更新&安裝解除安裝測試
      1. 更新:
        1. 相鄰版本:如5.0.1更新到5.0.1
        2. 誇級版本:如果5.0.1更新到7.0
          1. 關注:版本差距大的,功能子產品相關比較大,是否能正常安裝
      2. 安裝:
        1. 首次安裝:
          1. 關注:配置資料是否正常處理、依賴插件是否能自動安裝
        2. 解除安裝後安裝(非首次安裝):
          1. 關注:如果安裝之前是保留之前版本配置資料,是否能自動檢測到并且正常安裝
      3. 解除安裝:
        1. 首次解除安裝
          1. 如果選擇保留配置資料,配置資料是否保留
        2. 非首次解除安裝
          1. 如果不保留配置資料,配置資料或應用檔案是否删除幹淨
    5. 健壯性測試
      1. 手機資源消耗
        1. 資源指的是CPU、記憶體、電量
        2. 資源測試工具:360、騰訊GT
      2. 流量消耗
        1. 檢測應用以流量的消耗
      3. 崩潰恢複等測試
        1. 應用在崩潰後,能重新啟動
        2. 崩潰:借用monkey工具
  4. APP自動化測試(本階段學習)
    1. 概念
      1. 讓程式代替人為對移動應用功能驗證的過程
      2. 并不是所有的應用功能都适合進行自動化
  5. APP安全測試
    1. 通過安全測試技術,保證APP盡可能的不存在安全漏洞
    2. 中小型公司:雲測平台(testin雲測,阿裡雲)
    3. 中型公司:雲測平台、安全測試人員
    4. 大型公司:安全測試團隊
    5. 如果自己考慮安全方面的知識可參考的網址:http://netsecurity.51cto.com/art/201712/561665.htm
  6. 環境搭建
    1. Java
    2. AndroidSDK
    3. 模拟器
    4. 擴充:path環境:
      1. 輸入指令時,首先搜尋是否為内部指令(cd\dir\ipconfig)
      2. 搜尋是否為本地目前目錄下可執行檔案
      3. 搜尋path内的路徑(以分号做分隔)
  7. Java環境
    1. 安裝JDK,預設安裝即可
    2. 将安裝檔案添加到paht變量中(參考講義)
    3. 驗證:cmd輸入java-version顯示資訊
  8. androidSDK(安卓開發工具包)
    1. 為什麼要搭建SDK
    2. 移動端定位工具uiautomatorviewe
    3. 如何搭建
      1. ..\android-SDK\tools
      2. ..\android-SDK\platform-tools
      3. 将以上兩個路徑添加到path環境變量中即可
    4. 如何驗證
      1. 打開cmd輸入adb version顯示響應的版本号
  9. 模拟器
    1. 為什麼安裝模拟器
      1. 移動應用就是測試以移動手機内APP,APP必須安裝到手機内
      2. 移動自動化核心目标是測試移動應用的功能,本質上模拟器或真機是沒有差別的
    2. 如何安裝
      1. 執行genymotion-2.11.0-vbox.exe(是一集合程式,包含genymotion和virtualbox)->不需要更改配置,直接下一步預設安裝
      2. 安裝完genymotion繼續等待,會提示安裝virtualbox,繼續安裝,期間會提示安裝oracle插件
    3. 說明:
      1. geymotion:加載virtualbox設定虛拟機
      2. virtualbox:導入離線安卓鏡像檔案
  10. ADB指令(安卓 調式 工具)
    1. 為什麼要學習ADB指令
      1. 功能測試操作APP應用時,記錄的日志都需要通過 ADB來擷取
      2. 自動化執行時,有些必傳的參數,需要ADB指令來擷取
    2. Adb全名andorid debug bridge,是一個debug工具
      1. 為何稱之為bridge      
      2. 因為adb是一個标準的c\s結構的工具,是要連接配接開發電腦和調試手機的
    3. ADB通訊原理
      1. Client:用戶端發送adb指令à開發電腦中
      2. Server:監聽用戶端發送adb指令及手機内守護程序傳回的結果à開發電腦中
      3. Daemon:守護程序,在手機或模拟器中,主要用來接收server發送的指令à手機中
    4. 三者之間的通信原理圖
    5. Client<->server<->daemon
  11. Adb常用指令
    1. Adb –help:幫助指令(--help可以忽略)
    2. Adb start -server:啟動服務程式
    3. Adb kill -server:關閉服務程式
    4. 提示:啟動服務程式、關閉服務程式正常情況下,不需要人為操作,隻要發送adb指令會自動開啟
    5. 注:當adb服務出現當機狀态,需要人為殺掉,就要用到adb kill-server
    6. Adb devices:擷取裝置号
      1. 目的
        1. 檢視模拟器或真機是否和電腦連接配接
        2. 跑自動化腳本時,需要擷取裝置号(裝置号為必傳參數)
    7. 檢視擷取系統版本
      1. Adb shell getprop ro.build.version.release
      2. 提示:自動化必傳參數(技巧:可以随便編寫版本号,運作一次,系統報錯,在錯誤資訊中可以檢視到正确的版本号)
    8. Adb push:将檔案發送到手機
      1. 格式:adb push 電腦路徑\檔案名稱.字尾名 /sdcard
      2. 如:adb push E:\lili \a.txt /sdcard
    9. Adb pull:從手機中擷取檔案到本地電腦
      1. 格式:adb pull sdcard /手機檔案.字尾名c:\建立檔案夾
        1. 如:adb pull sdcard/a.txt E:\lili
      2. 提示:輸入adb指令時,注意是否在本地電腦目錄下,而不是在手機路徑下
    10. Adb logcat :檢視手機實時運作日志
      1. 使用
        1. Adb logcat > 日志儲存路徑
          1. 如:Adb logcat > E:\lili.a.txt
          2. 檢視:一般搜尋err
    11. 手機shell指令行
      1. Adb shell
      2. adb shell dumpsys window windows | findstr usedApp:檢視擷取APP包名、啟動名
      3. 包名:app應用唯一辨別符(一般采用反向域名)
        1. 如:www.baidu.com 反向域名:com.baidu.www
      4. 啟動名:頁面的辨別符(不是唯一的)
        1. 指令:adb shell dumpsys  window windows | findstr usedApp
        2. 查找:com.android.settings/.SubSettings
          1. .com.android.settings:包名
          2. ..SubSettings:啟動名
    12. 安裝apk檔案
      1. 指令:adb install apk路徑
      2. 如:adb install E:\lili\ak.apk
    13. 解除安裝apk檔案
      1. 指令:adb uninstall 包名
      2. 如:adb uninstall com.vcooline.ailke
      3. 提示:安裝APK時,檔案名稱應該避免中文
    14. Apk啟動時間
      1. 指令:adb shell am start -w 包名/啟動名
      2. 關注 :TotalTime時間(總時間)
  12. 常用移動應用自動化測試工具
    1. Robotium
      1. 支援語言:JAVA
      2. 支援:android系統
      3. 不支援跨應用
    2. Macaca
      1. 支援語言:java、python、node.js
      2. 支援android系統和ios系統
      3. 支援跨應用
      4. 不選理由:參考資料少、使用量少
    3. Appium(本階段學習)
      1. 支援語言:java、c#、python、php、perl、ruby、node.js
      2. 支援android系統和ios系統
      3. 支援跨應用
    4. 擴充:
      1. 自動化工具選擇參考條件
        1. 是否支援跨應用(A應用内調用B應用)
        2. 是否支援native與webview
          1. Native:使用安卓或IOS系統原生控件,完成APP
          2. Webview:使用html完成的控件
        3. 是否支援toast消息擷取
          1. Toast:一種黑底白字提示框(有時間限制)
  13. Appium背景介紹
    1. 開源、跨平台的測試架構,可以用來測試原生及混合的移動端應用
    2. 由nodejs的express架構寫的http server
    3. 安卓uiautomator架構
  14. Appium環境搭建
    1. 安裝Appium伺服器 Appium-desktop-1.2.7.exe
      1. 或者安裝:npm install -m appium指令版服務端,需要科學上網
    2. 安裝Appium python API庫
      1. 指令:pip3 install Appium-Python-Client ==0.26
      2. 驗證:pip3 show Appium-python-Client
        1. 進入python 進行導包 from Appium import webdriver不報錯就可以