以后我把各崗位的題目更新個遍,當然大部分都是我自己總結的保證質量哈
ADB作業原理
- 當用戶啟動一個adb客戶端,客戶端首先確認是否已有一個adb服務行程在運行,如果沒有,則啟動服務行程,當服務器運行, adb服務器就會系結本地的TCP埠5037并監聽adb客戶端發來的命令,所有的adb客戶端都是用埠 5037與adb服務器進行對話的,
- 接著服務器將所有運行中的模擬器或設備實體建立連接,它通過掃描所有5555到5585范圍內的奇數埠來定位所有的模擬器或設備,一旦服務器找到了adb守護程式,它將建立一個到該埠的連接,請注意任何設備和模擬器實體會取得兩個連接的埠,一個偶數埠用來控制與控制臺的連接,和一個奇數埠用來控制與adb連接,
ADB 的使用
-
- 顯示當前運行的虛擬設備:adb devices
- 查看adb所支持的所有命令:adb –help
- 查看adb的版本序列號:adb version
- 進入模擬器的shell模式:adb shell
- 如何重啟 adb服務
關閉server:adb kill-server
重啟server:adb start-server
- APP的安裝與卸載
在模擬器安裝軟體:adb install –r *.apk
在模擬器卸載軟體:adb uninstall 包名
adb install –r *.apk
-
- 只連接一個設備
- adb install 安裝包路徑
- 連接多個設備,需要指定一個設備
- adb –s 設備序列號 install 安裝包路徑
- 覆寫安裝,保留資料
- adb –s 設備序列號 install -r 安裝包路徑
例:adb -s 192.168.56.101:5555 install - r E:/test.apk
- 如何在電腦與手機之間傳輸資料?
- 向模擬器中傳輸檔案:adb push
例如:adb push D:\demo\meituan.apk /data/local/meituan.apk
-
- 從模擬器中獲取檔案:adb pull
例如: adb pull /data/local/meituan.apk D:\
- 如何靜默安裝APP
adb push D:\demo\meituan.apk /data/local/meituan.apk
adb shell pm install –f /data/local/meituan.apk
- 如何使用adb啟動停止一個app?
adb shell am start –W –S package/activity
adb shell am force-stop package
- 如何獲取CPU、記憶體狀態
adb shell dumpsys meminfo packagename
adb shell dumpsys cpuinfo |findstr packagename
App開發方式有三種
Native App 、Web App、Hybird App
monkey
- monkeyt進行壓力測驗的命令?
adb shell monkey –p < packagename > <count>
- 如何重現Crash/ANR程序?
添加引數 –s seed
3、請對下列monkey命令進行解釋(需要解釋各引數的含義),
adb shell monkey -p com.example.think.helloworld --pct-touch 20 --pct-motion 30 --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000 > D:/monkey2.log
參考答案
- -p com.example.think.helloworld 1000對這個包com.example.think.helloworld進行穩定性測驗,發送1000次隨機事件
- --pct-touch 20 其中設定觸屏的事件占比為20%
- --pct-motion 30滑動事件占30%
- --throttle 300每次間隔事件為300毫秒
- --ignore-crashes Monkey會執行完所有的事件,不會因crash而停止
- --ignore-timeouts 忽略超時
- --ignore-security-exceptions忽略安全例外
- --ignore-native-crashes忽略本地例外
- --monitor-native-crashes監視系統中本地代碼發生的崩潰
- -v -v -v 日志詳細等級,3個v代表最詳細等級的日志
- D:/monkey2.log D:/monkey2.log:代表將產生的日志,放到本地PC的D盤,并命名為:monkey2.log
客戶端性能測驗需要關注哪些方面?
CPU,記憶體,流量、電量以及客戶端在不同網路環境下回應速度等等,
如何使用Fiddler抓取HTTPS包
Fiddler https相關設定
在瀏覽器中安裝證書
APP兼容性測驗需要考慮哪些因素?
- 系統版本(android&ios平臺,不同版本)
- 解析度(小屏、大屏、全屏)
- 手機品牌(華為、小米OPPO、VIVO等)
WAP 頁面兼容性測驗有哪些因素?
- 不同平臺的不同瀏覽器(safari、chrome等)
- 解析度(小屏、大屏、全屏)
- 轉發到QQ、微信、微博等第三方平臺
除錯App相關的bug常用哪些工具?
- 網路相關工具,fiddle、wareshark、charles
- adb、am、logcat等
- 云平臺,bug復現
除錯Web頁面常用哪些工具?
- Chrome除錯工具,可設定移動APP UA
- WEINRE (WEb INspector REmote)
服務器端壓力測驗工具有哪些?
LoadRunner
JMeter
自主研發的工具
服務器端壓力測驗需要監控哪些指標?
CPU
記憶體(虛擬內容、實際記憶體)
QPS、平均回應時間
簡述開展服務器端壓力測驗的步驟
- 搭建服務端模塊,啟動服務
- 實施大量并發的測驗場景
- 監控行程相關指標、記憶體、CPU
- 監控模塊的執行情況,QPS、平均回應時間
- 收集資料并進行分析,生成曲線圖
- 根據分析結果,得出測驗結論
簡述什么是持續性集成
- 持續集成是指開發階段,對專案進行持續性
- 自動化編譯、測驗,以達到控制代碼質量的手段
- 持續集成是一種軟體開發實踐
持續集成都包含哪些內容?
- 開發人員、版本控制
- CI服務器、構建腳本
- 反饋機制、集成構建
持續集成的意義有哪些?
- 減少風險、減少重復程序
- 任何時間、任何地點生成可部署的軟體
- 增加專案可見性、建立團隊對產品的信心
android的四大組件是什么?并對android的四大組件的功能進行描述,
1)Activity,Service,BroadcastReceiver,ContentProvider
2)Activity是會顯示視圖控制組件的用戶介面,并對事件作出回應, Activity是Android應用程式的最基本的組件,Android應用程式中一個單獨的螢屏通常就是一個Activity,
Service是具有一個較長生命周期且沒有用戶界面的程式,只能在后臺運行,可以和其他組件進行互動,
BroadcastReceiver用戶用來接收應用或系統中的廣播,并作出回應,
Content Provider使一個應用程式的指定資料集提供給其他應用程式,其他應用可以通過ContentResolver類從該內容提供者中獲取或存入資料,
騰訊的GT是什么工具?
參考答案
GT(隨身調)是APP的隨身調測平臺,它是直接運行在手機上的“集成調測環境”(,利用GT,僅憑一部手機,無需連接電腦,您即可對APP進行快速的性能測驗(CPU、記憶體、流量、電量、幀率/流暢度等等),
請列舉出互動性測驗的測驗要點
- 客戶端作為手機特性測驗,包含被打擾的情況,來電,來短信,低電量測驗等
- 使用應用時對來電的處理
- 使用應用時對短資訊的處理
- 使用應用時鬧鈴響起
- 使用應用時鎖屏、解鎖
- 待機、插拔資料線、耳機不會影響客戶端
請列舉出Android的功能測驗點
答出任意五點
- 安裝\卸載(本機+第三方)
App具體功能點 - 聯網(默認的聯網方式是什么?Wifi or Sim卡?網路切換是否有相應的提示說明?)
- 程式進入輸入功能時,是否正常彈出鍵盤;鍵盤是否遮擋了應用需要輸入內容的對話框
- app切換測驗(最小化、多個app切換, home和程式間多次切換 )
- 關機、待機后app能否正常使用
回傳上一級操作,退出程式后的提示 - 當離開測驗應用一段時間后,在回到測驗應用時不能丟失用戶資料
衡屏豎屏切換時不能丟失用戶資料 - 長按某一按鈕是否會觸發其他事件
- 注意PC端和APP的資料同步(比如某作者在PC端設定了禁止他人評論,那么在APP上也應該禁止)
- 如果在APP中內嵌了些超鏈接后,程式如何處理,如果呼叫設備的瀏覽器,能否正常切回到APP
- 各個頁面間多次切換
- 權限的限制(拍照、語音、藍牙)
- 互動分享:如果程式里面包括分享功能,那么檢測點擊分享的時候是否會正常給出分享提示,點擊分享后所填寫的分享內容是否正確
- 長時間開機且開app,看是否會出現例外情況
Android應用程式結構是什么?
參考答案:Linux Kernel(Linux內核)、Libraries(系統運行庫或者是c/c++核心庫)、Application Framework(開發框架包)、Applications(核心應用程式)
請對Appium進行簡要的介紹,
Appium是一個開源、跨平臺的測驗框架,可以用來測驗原生,移動Web及混合的移動端應用,支持ios,android平臺的測驗,
Appium使用WebDriver的json wire協議,來驅動Apple系統的UIAutomation庫, Android 系統的UIAutomator框架,
PO框架設計思路,需要包含哪些包,實作哪些功能,
base里面有個BaseTest.java,這個類的主要作用是啟動和關閉APP的作用
pages存放頁面元素類,每一個java類,都是一個頁面,存放的都是對應頁面的所有元素及操作
testcases存放測驗用例的地方,在這個包下,還會有很多子包,子包的個數根據測驗的系統的模塊來劃分,比如有登錄模塊,首頁模塊等,那么子包的名字就應該寫成login、home
utils封裝了各種工具類,包括讀取excel,appium api封裝類,讀取資料庫類,讀取屬性檔案類和生成driver的類等,
Android Service兩種啟動方式的區別
1、采用start的方式開啟服務
特點:如果服務已經開啟,不會重復的執行onCreate(), 而是會呼叫onStartCommand(),服務停止的時候呼叫 onDestory(),服務只會被停止一次,一旦服務開啟跟呼叫者(開啟者)就沒有任何關系了,開啟者退出了,開啟者掛了,服務還在后臺長期的運行,
開啟者不能呼叫服務里面的方法,
2、采用bind的方式開啟服務
bind的方式開啟服務,系結服務,呼叫者掛了,服務也會跟著掛掉,系結者可以呼叫服務里面的方法,
請敘述Appium的四大設計理念
- 不需要為了自動化,而且重新編譯或修改測驗app
- 不必局限于某種語言或者框架來撰寫和運行測驗腳本的運行
- 一個移動自動化的框架不應該在介面上重復造輪子
- 移動端自動化測驗應該是開源的
Appium架構原理
(1)Appium服務器,Appium服務器是Appium框架的核心,它是一個基于Node.js實作的HTTP服務器,Appium服務器的主要功能是接受從Appium客戶端發起的連接,監聽從客戶端發送來的命令,將命令發送給bootstrap.jar(iOS手機為bootstrap.js)執行,并將命令的執行結果通過HTTP應答反饋給Appium客戶端,
(2)Bootstrap.jar,Bootstrap.jar是在Android手機上運行的一個應用程式,它在手機上扮演TCP服務器的角色,當Appium服務器需要運行命令時,Appium服務器會與Bootstrap.jar建立TCP通信,并把命令發送給Bootstrap.jar;Bootstrap.jar負責運行測驗命令,
(3)Appium客戶端,它主要是指實作了Appium功能的WebDriver協議的客戶端Library,它負責與Appium服務器建立連接,并將測驗腳本的指令發送到Appium服務器,現有的客戶端Library有多種語言的實作,包括Ruby、Python、Java、JavaScript(Node.js)、Object C、PHP和C#,Appium的測驗是在這些Library的基礎上進行開發的,
啟動/關閉Service的代碼實作
public void start(View v){
Intent intent =new Intent(this,MyService.class);
startService(intent);
}
public void stop(View v){
Intent intent =new Intent(this,MyService.class);
stopService(intent);
}
請列舉出互動性測驗的測驗要點,
客戶端作為手機特性測驗,包含被打擾的情況,來電,來短信,低電量測驗等
-
- 使用應用時對來電的處理
- 使用應用時對短資訊的處理
- 使用應用時鬧鈴響起
- 使用應用時鎖屏、解鎖
- 待機、插拔資料線、耳機不會影響客戶端
安裝、卸載測驗主要針對編譯后源程式生成的APK安裝檔案
1)驗證app能否正確安裝運行卸載,以及操作程序和操作前后對系統資源的占有情況
2)安裝運行卸載的提示,報告等
3)檢查安裝路徑,檔案是否合理,組件是否正確注冊等
- 驗證數字簽名
- 升級后可以正常使用
- 在線跨版本升級
例外測驗
- 在斷網、斷電、服務器例外等情況下,客戶端能否正常處理,保證資料的正確性,
- 使用應用時斷網
- 斷網時啟動應用
- 使用應用時斷電
- 服務器例外,客戶端能否正常處理
- Client端更新時斷開了
- Client端更新時Service端掛了
業務邏輯測驗點需要考慮哪些因素?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/272917.html
標籤:其他
