1. 程式人生 > 其它 >多測師肖sir_高階金牌講師_第2個月第17講app搭建之安裝(001)

多測師肖sir_高階金牌講師_第2個月第17講app搭建之安裝(001)

技術標籤:多測師肖sir第二個月課程

我們主要講解app自動化環境的搭建以及定位和app測試

================================================================
app
原生+H5

===================================================================
(一)app測試
手工app測試和自動化app測試
手工app測試:就是點的地方不同,一個在bs結構上點,在cs結構上點(或模擬器或H5)
自動化app測試:用程式碼來代替手工點

面試題:web和app測試的區別?你會app測試?

或app的關注點?
例如:
web與app測試的區別
單純從功能測試的層面上來講的話,APP 測試、web 測試 在流程和功能測試上是沒有區別的。
根據兩者載體不一樣,則區別如下:
系統結構方面
web專案,b/s架構,基於瀏覽器的;web測試只要更新了伺服器端,客戶端就會同步會更新。
app專案,c/s結構的,必須要有客戶端;app 修改了服務端,則客戶端使用者所有核心版本都需要進行迴歸測試一遍。
效能方面
web專案 需監測 響應時間、CPU、Memory
app專案 除了監測 響應時間、CPU、Memory外,還需監測 流量、電量等
相容方面
web專案:

  1. 瀏覽器(火狐、谷歌、IE等)
  2. 作業系統(Windows7、Windows10、Linux等)
    app專案:
  3. 裝置系統: iOS(ipad、iphone)、Android(三星、華為、聯想等) 、Windows(Win7、Win8)、OSX(Mac)
  4. 手機裝置可根據 手機型號、解析度不同
    相對於 Wed 專案,APP有專項測試
  5. 干擾測試:中斷,來電,簡訊,關機,重啟等
  6. 弱網路測試(模擬2g、3g、4g,wifi網路狀態以及丟包情況);網路切換測試(網路斷開後重連、3g切換到4g/wifi 等)
  7. 安裝、更新、解除安裝
    安裝:需考慮安裝時的中斷、弱網、安裝後刪除安裝檔案等情況
    解除安裝:需考慮 解除安裝後是否刪除app相關的檔案
    更新:分強制更新、非強制更新、增量包更新、斷點續傳、弱網狀態下更新
  8. 介面操作:關於手機端測試,需注意手勢,橫豎屏切換,多點觸控,前後臺切換
  9. 安全測試:安裝包是否可反編譯程式碼、安裝包是否簽名、許可權設定,例如訪問通訊錄等
  10. 邊界測試:可用儲存空間少、沒有SD卡/雙SD卡、飛航模式、系統時間有誤、第三方依賴(QQ、微信登入)等
  11. 許可權測試:設定某個App是否可以獲取該許可權,例如是否可訪問通訊錄、相簿、照相機等
    測試工具方面
    自動化工具:APP 一般使用 Appium; Web 一般使用 Selenium
    效能測試工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter
    注意點:特別是在app上的資料的快取和程序,經常影響我們測試資料;

===================================================================
(二)app系統分類
在市面上app測試流行,分為安卓端和ios端(ios端必須要maos系統,還要企業級的證書,再公司一般不會用ios做自動化)
開發人員都是用模擬器,(1、模擬手機種類多,2、連線穩定 3、執行穩定 )

面試題:app中ios和安卓區別?
① 兩者執行機制不同:IOS採用的是沙盒執行機制,安卓採用的是虛擬機器執行機制。
iphone沙盒機制解釋:應用程式位於檔案系統的嚴格限制部分,程式不能直接訪問其他應用程式。以防毒軟體中的沙盒技術解釋一下。“沙盒”技術是發現可疑行為後讓程式繼續執行,當發現的確是病毒時才會終止。“沙盒”技術的實踐運用流程是:讓疑似病毒檔案的可疑行為在虛擬的“沙盒”裡充分表演,“沙盒”會記下它的每一個動作;當疑似病毒充分暴露了其病毒屬性後,“沙盒”就會執行“回滾”機制:將病毒的痕跡和動作抹去,恢復系統到正常狀態。
安卓虛擬機器機制解釋:android本身不是為觸控式螢幕打造的,所以所有的應用都是執行在一個虛擬的環境中,由底層傳輸資料到虛擬機器中,再由虛擬機器傳遞給使用者UI,任何程式都就可以輕鬆訪問其他程式檔案。
② 兩者後臺制度不同:IOS中任何第三方程式都不能在後臺執行;安卓中任何程式都能在後臺執行,直到沒有記憶體才會關閉。
③ IOS中用於UI指令許可權最高,安卓中資料處理指令許可權最高。
④ ios系統流暢性更具優勢。Android系統採用虛擬機器的執行機制,需要消耗更多系統資源。Android系統使用一段時間後容易出現卡頓,而ios系統則很少出現卡頓現象,並且Android系統的桌面靈敏性不如ios系統。
⑤ Android的程式語言是JAVA,而iOS的則為Objective-C。Objective-C的優勢是效率高但比較“唯一”,而JAVA的優勢則是跨平臺不過執行效率相對偏低。
⑥ 操作介面來講,ios系統介面單一。而Android的介面可以根據自己的喜好來設定,更加多樣化。
⑦ 省電的角度來講,ios系統更加省電。這是系統機制決定的。Android會佔用更多的資源來支撐系統執行,導致了它會比較費電。

===================================================================
(三)app測試包(字尾名是.apk)

app的包下載(灰度包,測試包) 開發打包以後,會給你地址url;
app的包apk包,一般開發好了
(1)打包,jenkins自動打包,打包以後有一個連線地址下載,
(2)打包以後地址生成一個二維碼,掃碼下載、

比如:線上生成網站:https://cli.im/
多測師官網論壇
在這裡插入圖片描述

=================================================================
(四)app測試流程(H模型一樣的)
(1)看需求,分析需求
(2)寫測試計劃(自動化用例場景設計)
(3)寫用例( 自動化指令碼的編寫)
(4)搭建環境(需要app測試包)
(5)測試(測試前:冒煙測試,測試中:執行用例 測試後:寫報告)
(6)修改bug以後,又要重新打包,安裝新的app包在測試;

(五)app端的ui自動化測試流程
1、開啟模擬器
2、dos命令下,連結模擬器 ,adb connect
3、啟動uiautomatorviewer.bat 工具定位元素
4、pycharm中編寫自動化指令碼(去定位)
5、開啟appiun 點選開始(埠,ip配置)
7、執行自動化指令碼

(六)appium工具的優缺點
優點:
1、支援多種應用程式
2、測試物件無需編譯
3、指令碼實現多樣化以及工具的多樣
4、支援跨平臺
缺點:
1、該工具必須依賴電腦才能實現自動化
2、該工具只能用於ui自動化測試

==============================================================
一、App自動化測試環境用途:
主要用於做App端的UI自動化測試、熟悉adb相關命令(a表示安卓,表示debug ,b表示橋)
adb是和手機相連線二、所需要的工具包:
jdk1.8 #之前已安裝過則不需重複安裝
Android-SDK #軟體開發工具組 ,裡面存放一些類,函式
appium
Appium­Python­Client #appinm的python的客戶端
node.js #
夜神或逍遙模擬器 #用到模擬器來做自動化,或再真機上測試
baiduyuedu_3760.apk #要測一個安卓包,,百度閱讀的apk包
第一步:裝sdk
詳解:SDK (Software Development Kit)翻譯成中文就是"軟體開發工具組"
是用來幫一個 產品 或 平臺 開發應用程式的工具組,由產品的廠商提供給開發者使用的。
通常是 某一家廠商 針對某一 平臺 或 系統 或 硬體 所釋出出來用以開發應用程式的工具組,在這個工具包裡面,可能包含了各式各樣的開發工具,模擬器等。給 Android平臺 使用的 Android SDK 就是用來開發 Android系統上面的應用程式。
sdk存放了類,函式,
SDK下包的說明:

1、:build-tools :建立工具
2、:extras:擴充套件的附加包
3、:platforms:你安裝下載的所有Android平臺,分版本存放
4、:platform-tools:平臺相關的工具
5、:tools:應用Android平臺進行開發所需要的一些開發工具
(1)步驟:開啟sdk:

(2)檢視sdk下資料夾

三、App自動化測試環境搭建全部流程:
1)安裝Android-SDK
先解壓adt-bundle-windows-x86_64-20140702.zip檔案得到如下三個檔案和資料夾

2)安裝Android-SDK首先需要配置ANDROID_HOME和path
a.電腦右下角點選Windows圖示-選擇計算機­ 空白處右鍵­屬性­左側欄選擇高階系統設定­環境變數­使用者變數­增加­ANDROID_HOME
b.然後把sdk的路徑放入變數值(以自己的路徑為準,如下為我的sdk路徑)

E:\講課文件\課件\第二個月課件\手機APP自動化相關包\搭建環境需要的安裝包\adt-bundle-windows-x86_64-20140702\sdk
4)配置path路徑 (如下3個路徑都需要新增,中間以;分號分割)我的路徑如下
(以自己的路徑為準):
E:\講課文件\課件\第二個月課件…\adt-bundle-windows-x86_64-20140702\sdk\platform-tools
(其中有adb)
E:\講課文件\課件\第二個月課件…\adt-bundle-windows-x86_64-20140702\sdk\tools
(其中有模擬器和定位工具)
;%ANDROID_HOME%\platform­tools;%ANDROID_HOME%\tools

5)配置aapt的環境變數 (以自己的實際路徑為準)
E:\講課文件\課件\第二個月課件…\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W

檢視adb命令的變數;

為什麼要設定變數?
因為我要設定目錄下所有的 程式

第二步:安裝appium
2.1、什麼是appium?
Appium是一個移動端的自動化框架,可用於測試原生應用,移動網頁應用和混合型應用,且是跨平臺的。可用於IOS和Android以及firefox的作業系統。原生的應用是指用android或ios的sdk編寫的應用,移動網頁應用是指網頁應用,類似於ios中safari應用或者Chrome應用或者類瀏覽器的應用。混合應用是指一種包裹webview的應用,原生應用於網頁內容互動性的應用。
重要的是Appium是跨平臺的,何為跨平臺,意思就是可以針對不同的平臺用一套api來編寫測試用例。
2、2appium的原理?
appium工具是一個c/s模式,
appium自動化框架的組成?
appium客戶端組成:Python客戶端通過pycharm編寫自動化,客戶端使用Python語言編寫指令碼,
appium伺服器

2.3安裝appium、雙擊appium圖示安裝完成會顯示appium主介面如下:點選右上角三角形按鈕啟動appium服務
a.安裝appium

b.開啟appium程式

c.啟動appium服務(如下圖)
出現started on字樣表示服務
啟動成功。

2.3線上安裝python操作客戶端(dos視窗下安裝)
pip install Appium­Python­Client 如果安裝報錯(pip升級後再安裝:python ­m pip install ­­upgrade pip)出現如下圖表示安裝成功。

python ­m pip install ­­upgrade pip 升級安裝pip

8)安裝node.js
a.雙擊如下圖安裝node.js

b.下載完成之後在dos視窗輸入node -­v出現如下即安裝成功

9)app自動化測試環境檢查
a.輸入cmd進入dos視窗輸入:appium-­doctor(顯示如下圖就表示環境搭建成功)

以上表示安裝成功。

報錯:

b.如果顯示 “appium­doctor”不是內部或外部命令 (appium的安裝路徑以自己的路徑為準) 需要把appium的安裝路徑E:\講課文件\課件\第二個月課件…\appium-1.4\node_m odules.bin配置到環境變數 配置好環境後再次輸入:appium­doctor 顯示正常

=================================================================

10)安裝夜神模擬器:(安裝不成功則可選擇安裝逍遙模擬器,成功的忽略這條) a.找到夜神模擬器的安裝包雙擊

b.進入dos視窗輸入命令:adb connect 127.0.0.1:62001 (顯示如下圖表示已經連線上夜神模擬器了)

c.安裝好了執行模擬器發現很慢可以進行BIOS設定開啟VT 按照這個網址進行設定 http://www.xyaz.cn/help/vt.html

開機按F2按鈕­找到Security­­Intel Virtualization Technology­­改為 Enabled­­按F10儲存退出。

11)往夜神模擬器安裝需要被測試的軟體

a.安裝測試包 adb install + 包名的絕對路徑 (或者進入包所在的目錄下面安裝)

例如:adb install D:\app\appnew\duoceshi.apk 安裝bao

     D:\app\appnew\dangbei1.apk                    當貝

     D:\app\appnew\baiduwangpan_589.apk   百度網盤

b.安裝完會顯示在逍遙模擬器當中

12)做APP自動化測試需要獲取包名和appActivity

a.用aapt d badging + 安裝包所在的絕對路徑 C:\Users\Administrator>aapt d badging E:\講課文件\課件\第二個月課件\手機APP自動化相關包\搭建環境需要的安裝包\baiduyuedu_3760.apk 結果如下: package: name=‘com.baidu.yuedu’ versionCode=‘3760’ versionName='3.7.6

舉例:aapt d badging D:\app\appnew\duoceshi.apk

正確結果:

c.其他的adb命令 adb shell pm list packages ­­­檢視已安裝的應用 adb uninstall package:com.baidu.yuedu ­­解除安裝百度閱讀App

=====================================================================

搭建環境的總結:

1、安裝JDK
2、安裝SDK
並且配置環境
3、安裝node.js
4、安裝appium
5、安裝appium-doctor
6、安裝appiumlibrary
7、驗證環境

8、模擬器

=====================================================================

ADB常用的指令:
檢視當前連線裝置 : adb devices
進入到shell : adb shell #ctrl+c 退出
檢視日誌 : adb logcat #ctrl+c 停止
安裝apk檔案 : adb install xxx.apk
解除安裝APP : adb uninstall +包名

例如:adb uninstall com.baidu.netdisk

檢視包名 : aapt d badging +包的路徑
往手機SDCard傳遞檔案:adb push 檔名 手機端SDCard路徑

例如:(1)adb push D:/bao/sql11.txt /data

adb push 本地檔案路徑 安卓裝置路徑

從手機端下載檔案 : adb pull + 檔案

例如:(2)adb pull /init D:/bao

SDCard

檢視手機端安裝的所有包名:adb shell pm list packages
啟動Activity : adb shell am start 包名/完整Activity路徑

舉例:

包名: com.dangbeimarket

activity包名:leanback-launchable-activity: name='com.dangbeimarket.activity.WelcomeActivity

螢幕截圖 : adb shell screencap

例如:adb shell screencap -p {路徑} 可以 儲存 到 手機本地然後 傳回電腦

例如: adb shell screencap -p /data/123.png

(1)儲存圖片到sdcard

adb shell /system/bin/screencap -p /sdcard/aa.png

(2)pull拉取到本地

adb pull /sdcard/aa.png D:\bao

啟動adb server命令 :adb start-server
停止adb server命令 :adb kill-server

例如:

以上都沒有沒有明顯的顯示,

檢視adb版本 :adb version

例如:

指定adb server網路埠:adb -p start-server

預設埠為5037
讓裝置在 5555 埠監聽 TCP/IP 連線:adb tcpip 5555

adb tcpip網路除錯


拓展知識:

把手機usb和連線線和電腦端連線起來,輸入下面命令

1\手機和PC在同一網段的情況下:
adb tcpip 5555
2) 、adb shell ifconfig 檢視手機網路IP
3)、在電腦上ping 手機網路ip
4) 、 adb connect ip (Android 裝置ip)

2\手機和PC不在同一網段的情況下
我們需要用手機的 終端模擬器和ssh工具 反向代理。


通過 IP 地址連線裝置:adb connect

例如:連結:adb connect 127.0.0.1:62001

斷開無線連線 : adb disconnect

例如: