app測試之介紹(18.0)
app測試
app功能測試和app自動化測試
===============================
(一)app手工測試
app手工測試:就是在app上進行手工測試(手點)
app自動化測試使用代碼或工具來代替手工測試(python+appium)
(二)web測試和app測試區別?( 重點)
(1)單純從功能測試的層面上來講的化,app測試、web測試在流程和功能測試上是沒有區別
(2)根據兩者載體不一樣,區別:
web項目:b/s 架構,基于瀏覽器的;web測試只要更新服務器端,客戶端就會同步更新
app項目:c/s 架構 必須在客戶端;app修改了服務端,則客戶端用戶所有核心版本都要進行回歸測試一遍。
(3)性能方面:
web項目 需檢測響應時間,cpu,
app項目 需檢測響應時間,cpu,還要考慮流量,電量
(4)兼容性方面
web項目:
瀏覽器(火狐、谷歌、IE等)、版本:ie8、ie10
操作系統(Windows7、Windows10、Linux等)
app項目:
設備系統: iOS(ipad、iphone)、Android(三星、華為、聯想等) 、Windows(Win7、Win8)、OSX(Mac)、鴻蒙系統、mac
手機設備可根據 手機型號、分辨率不同
相對于 Wed 項目,
APP有專項測試:
干擾測試:中斷,來電,短信,關機,重啟等
弱網絡測試(模擬2g、3g、4g,wifi網絡狀態以及丟包情況);網絡切換測試(網絡斷開后重連、3g切換到4g/wifi 等)
安裝、更新、卸載
安裝:需考慮安裝時的中斷、弱網、安裝后刪除安裝文件等情況(手動安裝、自動安裝)
卸載:需考慮 卸載后是否刪除app相關的文件
更新:分強制更新、非強制更新、增量包更新、斷點續傳、弱網狀態下更新
界面操作:關于手機端測試,需注意手勢,橫豎屏切換,多點觸控,前后臺切換
安全測試:安裝包是否可反編譯代碼、安裝包是否簽名、權限設置,例如訪問通訊錄等
邊界測試:可用存儲空間少、沒有SD卡/雙SD卡、飛行模式、系統時間有誤、第三方依賴(QQ、微信登錄)等
權限測試:設置某個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的包)(ios的后綴名:.ipa)

在網上可以看到的包是(生產包)
app 的包下載(灰度包,測試包),開發提交代碼,合并代碼,通過jenkins 構建,生成測試包:
生成的方式:
第一種:一個連接(url)的方式 (下載灰度包)
第二種:二維碼的形式 (下載灰度包)
=============================
(五)app測試流程:(和H模型一樣)
1、看需求,分析需求
2、寫用例 (自動化腳本的編寫)
3、搭建環境(部署好app自動化環境)
4、測試(通過jenkins打包生成最新的apk包,下載后安裝到模擬器或手機中)
5、測試,開發修改bug
6、重新提交版本,在打包,在進行測試
7、輸出測試報告
=============================
(六)app自動化工具appium 的優點?
優點:
(1)支持多種應用程序
(2)測試對象無需編譯
(3)腳本實現多樣化以及工具的多樣
(4)支持跨平臺
缺點:
(1)工具必須依賴電腦才能實現自動化
(2)工具只能用于ui自動化測試
==========================
定位元素:

from appium import webdriver
from time import *
cs={
'platformName':'Android', #平臺系統:Android or Ios
'deviceName':'OPPO R17', #設備名稱
'platformVersion':'android-5.1W', #平臺版本
'appPackage':'com.moji.mjweather', #包名
'appActivity':'com.moji.mjweather.LauncherActivity', #activity
'unicodeKeyboard': True, #使用unicode編碼方式發送字符串 }
'resetKeyboard':True} #是將鍵盤隱藏起來
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(10)
# dx.find_element_by_id("com.moji.mjweather:id/jc").click() #同意進入
# dx.find_element_by_id("com.moji.mjweather:id/azz").send_keys("北京市")
#dx.find_element_by_android_uiautomator()#
dx.find_element_by_android_uiautomator('new UiSelector().text("北京市")').click()

浙公網安備 33010602011771號