什么是App自動化?為什么要做App自動化?
App自動化是指給 Android或IOS上的軟件應用程序做的自動化測試。
手工測試和自動化測試的對比如下:
手工測試優勢:不可替代、發現更多bug、包含了人的想象力與理解力。
注意,不是所有功能都需要自動化。
自動化測試優勢:可重復、效率高,增加軟件信任度。
執行自動化測試可以讓測試同事有更多的精力來關注復雜場景,做更多更深層次的測試。
風險分析
自動化測試的主要風險分析如下:
(1)測試用例覆蓋率(覆蓋率決定測試效率,選擇合適用例,應約占功能用例集的20%~50%)
(2)測試結果準確度(準確度決定了測試有效性,應盡可能減少誤報)。
(3)自動化代碼維護(維護決定了成本,數據關鍵字驅動自動化框架,代碼應盡可能優化和少改動)。
(4)版本開發和測試時間進度(當項目需求和功能較為穩定時,建議用自動化)。
(5)開發對控件元素增修改的程度(需開發人員盡可能地用name元素,并且和UI設計一致,修改變動程度不大,測試人員可根據提供的元素提前介入,開發自動化腳本)。
App源碼權限控制,iOS上測試需要源碼。實際測試只需SVN或者git下載權限,而不需要上傳權限。防止改動SVN或者git 上的源碼。
技術框架
1、自動化學習過程
自動化測試環境的部署-->自動化測試腳本開發能力--->自動化測試框架研發--->手機自動化持續集成
2、andorid 系統架構圖
3、手機自動化測試環境
安裝Appium-->安裝手機模擬器-->安裝selenium和appium的客戶端-->安裝被測試app
4、Appium 軟件架構
5、常用的定位技術和工具
6、自動化測試腳本技術
7、技術框架結構圖
APP自動化測試流程
1、環境的安裝
1.1 環境的準備
1:jdk1.6以上
2:Python2.7以上
3: android-sdk
4:Appium desktop 安裝
1.2 jdk 安裝
1:下載JDK后傻瓜式安裝,注意:不要有中文路徑和空格
2:配置環境變量:
右擊“我的電腦”-->"屬性"-->"高級系統設置"-->"高級"-->"環境變量"
1)在系統變量里新建"JAVA_HOME"變量,變量值為:C:Program FilesJavajdk1.8.0_60(根據自己的jdk的安裝路徑填寫)
2)在系統變量里新建"classpath"變量,變量值為:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar (注意最前面有一點)
3)找到path變量(已存在不用新建)添加變量值:%JAVA_HOME%bin;%JAVA_HOME%jrebin
1.3 python 安裝
1:傻瓜式安裝,
2:配置環境變量:電腦屬性系統變量添加python根目錄
1.4 安裝Android的測試開發環境
1:Android-SDK的安裝:SDK manager.exe 雙擊打開下載
2:android-sdk環境變量的配置
具體操作步驟:
- 新建ANDROID_HOME
路徑為C:Program Files (x86)Androidandroid-sdk
- 在Path 變量中加入路徑
%ANDROID_HOME%platform-tools 和 %ANDROID_HOME%tools
- 檢查adb 環境變量
- 連接手機
如果是真機,手機插上USB連接電腦,打開開發者模式,cmd輸入adb devices
如果是模擬器,需要輸入adb connect 127.0.0.1:62001或者52001連接,然后再輸入adb devices
Appium desktop 安裝
下載地址:https://github.com/appium/appium-desktop/releases/tag/v1.3.1
傻瓜式安裝 注意:一定要選擇所有用戶權限要不然用不了UiAutomator2
2、 API腳本
2.1 如何獲取APP啟動的AppPackage和AppActivity
1:通過appt獲取切換到aapt所在的目錄,執行aapt dump(aapt是sdk自帶的一個工具,在sdkbuilds-tools目錄下)使用命令aapt dump badging “D: jinritoutiao_7500.apk”運行后的結果中以下兩行分別是應用包名package和入口activity名稱
package: name=’ com.ss.android.article.news’
launchable-activity: name=‘com.ss.android.article.news.activity.LaunchActivity’
2: 通過 adb shell am start com.ss.android.article.news/com.ss.android.article.news.activity.MainActivity
來判斷啟動的app 是否正確
2.2 啟動appium
2.3:寫腳本
1.platformName:這里是 android 的 apk
2.deviceName:手機設備名稱,通過 adb devices 查看
3.platformVersion:android 系統的版本號
4.appPackage:apk 包名
5.appActivity:apk 的 launcherActivity
2.4生成測試報告