移動端測試面試題目大全

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

  1. 如何重啟 adb服務

關閉server:adb kill-server

重啟server:adb start-server

  1. 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

  1. 如何在電腦與手機之間傳輸數據?
    1. 向模擬器中傳輸文件:adb push

例如:adb push D:\demo\meituan.apk? /data/local/meituan.apk

    1. 從模擬器中獲取文件:adb pull

例如: adb pull /data/local/meituan.apk D:\

  1. 如何靜默安裝APP

adb push D:\demo\meituan.apk? /data/local/meituan.apk

adb shell pm? install –f? /data/local/meituan.apk

  1. 如何使用adb啟動停止一個app?

adb shell am start –W –S package/activity

adb shell am force-stop package

  1. 如何獲取CPU、內存狀態

adb shell? dumpsys meminfo? packagename

adb shell? dumpsys cpuinfo |findstr ?packagename

App開發方式有三種

Native App 、Web App、Hybird App

monkey

  1. monkeyt進行壓力測試的命令?

adb shell? monkey –p? < packagename >? <count>

  1. 如何重現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

參考答案

  1. -p com.example.think.helloworld 1000對這個包com.example.think.helloworld進行穩定性測試,發送1000次隨機事件
  2. --pct-touch ?20 ?其中設定觸屏的事件占比為20%
  3. --pct-motion? 30滑動事件占30%
  4. --throttle? 300每次間隔事件為300毫秒
  5. --ignore-crashes Monkey會執行完所有的事件,不會因crash而停止
  6. --ignore-timeouts 忽略超時
  7. --ignore-security-exceptions忽略安全異常
  8. --ignore-native-crashes忽略本地異常
  9. --monitor-native-crashes監視系統中本地代碼發生的崩潰
  10. -v -v? -v ?日志詳細等級,3個v代表最詳細等級的日志
  11. 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、平均響應時間

簡述開展服務器端壓力測試的步驟

  1. 搭建服務端模塊,啟動服務
  2. 實施大量并發的測試場景
  3. 監控進程相關指標、內存、CPU
  4. 監控模塊的執行情況,QPS、平均響應時間
  5. 收集數據并進行分析,生成曲線圖
  6. 根據分析結果,得出測試結論

簡述什么是持續性集成

  • 持續集成是指開發階段,對項目進行持續性
  • 自動化編譯、測試,以達到控制代碼質量的手段
  • 持續集成是一種軟件開發實踐

持續集成都包含哪些內容?

  • 開發人員、版本控制
  • 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、內存、流量、電量、幀率/流暢度等等)。

請列舉出交互性測試的測試要點

  • 客戶端作為手機特性測試,包含被打擾的情況,來電,來短信,低電量測試等
  1. 使用應用時對來電的處理
  2. 使用應用時對短信息的處理
  3. 使用應用時鬧鈴響起
  4. 使用應用時鎖屏、解鎖
  5. 待機、插拔數據線、耳機不會影響客戶端

請列舉出Android的功能測試點

答出任意五點

  1. 安裝\卸載(本機+第三方)
    App具體功能點
  2. 聯網(默認的聯網方式是什么?Wifi or Sim卡?網絡切換是否有相應的提示說明?)
  3. 程序進入輸入功能時,是否正常彈出鍵盤;鍵盤是否遮擋了應用需要輸入內容的對話框
  4. app切換測試(最小化、多個app切換, home和程序間多次切換 )
  5. 關機、待機后app能否正常使用
    返回上一級操作,退出程序后的提示
  6. 當離開測試應用一段時間后,在回到測試應用時不能丟失用戶數據
    衡屏豎屏切換時不能丟失用戶數據
  7. 長按某一按鈕是否會觸發其他事件
  8. 注意PC端和APP的數據同步(比如某作者在PC端設置了禁止他人評論,那么在APP上也應該禁止)
  9. 如果在APP中內嵌了些超鏈接后,程序如何處理。如果調用設備的瀏覽器,能否正常切回到APP
  10. 各個頁面間多次切換
  11. 權限的限制(拍照、語音、藍牙)
  12. 互動分享:如果程序里面包括分享功能,那么檢測點擊分享的時候是否會正常給出分享提示,點擊分享后所填寫的分享內容是否正確
  13. 長時間開機且開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);

}

請列舉出交互性測試的測試要點。

客戶端作為手機特性測試,包含被打擾的情況,來電,來短信,低電量測試等

    1. 使用應用時對來電的處理
    2. 使用應用時對短信息的處理
    3. 使用應用時鬧鈴響起
    4. 使用應用時鎖屏、解鎖
    5. 待機、插拔數據線、耳機不會影響客戶端

安裝、卸載測試主要針對編譯后源程序生成的APK安裝文件

1)驗證app能否正確安裝運行卸載,以及操作過程和操作前后對系統資源的占有情況

2)安裝運行卸載的提示,報告等

3)檢查安裝路徑,文件是否合理,組件是否正確注冊等

  • 驗證數字簽名
  • 升級后可以正常使用
  • 在線跨版本升級

異常測試

  • 在斷網、斷電、服務器異常等情況下,客戶端能否正常處理,保證數據的正確性。
    • 使用應用時斷網
    • 斷網時啟動應用
    • 使用應用時斷電
    • 服務器異常,客戶端能否正常處理
    • Client端更新時斷開了
    • Client端更新時Service端掛了

業務邏輯測試點需要考慮哪些因素?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443909.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443909.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443909.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux簡單命令收錄(cal,passwd,clear)【下】

1、cal NAME cal - display a calendar 顯示日歷 SYNOPSIS cal [options] [[[day] month] year] cal [options] [timestamp|monthname] 用法&#xff1a; cal [選項] [[[日] 月] 年] cal [選項] <時間戳|月份名> OPTIONS -1…

web知識點大總結

#第一章 Web基礎知識 Web開發基本概念 1、萬維網是一個由許多相互鏈接的超文本組成的系統&#xff0c;通過互聯網訪問。 2、web&#xff1a;worldwideweb&#xff0c;萬維網&#xff0c;簡稱web&#xff0c;www&#xff0c;通常稱為網頁。 3、web開發&#xff1a;進行網頁頁…

Linux命令集—— cat AND more

1、cat NAME cat - concatenate files and print on the standard output 連接所有指定文件并將結果寫到標準輸出。【經常用來顯示文件的內容&#xff0c;類似DOS的TYPE 命令】 SYNOPSIS cat [OPTION]... [FILE]... cat [選項]... [文件]... With no FILE, or when FILE…

Linux簡單命令集——less

NAME less - opposite of more more的對立面 注意 與more命令類似&#xff0c;less命令也用來分屏顯示文件的內容&#xff0c;但是less命令允許用戶向前或向后瀏覽文件。例如&#xff0c;less命令顯示文件內容時&#xff0c;可以用?鍵和?鍵分別將屏幕內容下移一行和上移一…

《重構-改善既有代

重要列表 1、如果你發現自己需要為程序添加一個特性&#xff0c;而代碼結構使你無法很方便地達成目的&#xff0c;那就先重構哪個程序&#xff0c;使特性的添加比較容易的進行&#xff0c;然后再添加特性 2、重構前&#xff0c;先檢查自己是否有一套可靠的測試機制&#xff0…

Myeclipse 6.5 優化

1、取消自動validation validation有一堆&#xff0c;什么xml、jsp、jsf、js等等&#xff0c;我們沒有必要全部都去自動校驗一下&#xff0c;只是需要的時候才會手工校驗一下&#xff01; 取消方法&#xff1a; windows–>perferences–>MyEclipse Enterprise Workbench–…

Linux簡單命令集——head

NAME head - output the first part of files 輸出文件的第一部分SYNOPSIS head [OPTION]... [FILE]...head [選項]... [文件]...head命令在屏幕上顯示指定文件file的開頭若干行&#xff0c;行數由參數值來確定。顯示行數的默認值是10。-c, --bytes[-]NUM print the firs…

操作系統中避免死鎖的銀行家算法【表面C++實際C語言】一學就廢的菜雞代碼

文章目錄銀行家算法實驗原理數據結構初始化輸出資源分配量安全性算法銀行家算法完整代碼測試數據測試結果第一題第二題銀行家算法 銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進程動態地申請資源&#xff0c;但系統在進行資源分配之前&#xff0c;應先…

GitHub 使用指南

目錄切換分支刪除已有文件只刪除遠程倉庫中的文件&#xff0c;不刪除本地倉庫中的文件同時刪除遠程倉庫和本地倉庫中的文件提交文件git查看本地分支連接的是哪個遠程分支切換分支 查看本地和遠程所有分支 git branch -a當前本地分支為綠色&#xff0c;當前所在分支前帶有“*”號…

百度EBG測試部AI測試工程師面經

百度EBG測試部AI測試工程師 1、自我介紹 自我介紹盡量多說一點&#xff0c;她會問你“還有嗎&#xff1f;” 2、項目介紹 簡歷上的項目都讓介紹了。會問這個項目是做什么的&#xff0c;是由誰開發&#xff0c;項目如何得到的&#xff0c;在測試過程中實現了什么。 3、自己…

一學就廢的并查集它來了

文章目錄題目描述輸入輸出樣例輸入樣例輸出提示算法思想代碼實現尋找根節點匯總連接情況完整代碼關于flag的初值題目描述 某省調查城鎮交通狀況&#xff0c;得到現有城鎮道路統計表&#xff0c;表中列出了每條道路直接連通的城鎮。省政府“暢通工程”的目標是使全省任何兩個城…

一道很簡單的貪心算法題~【貪心:我不要臉的伐?】

文章目錄題目描述輸入輸出樣例輸入樣例輸出C語言代碼實現思路排序處理完整代碼C代碼實現排序完整代碼彩蛋題目描述 小健有一家自己的商店&#xff0c;主營牛奶飲品&#xff0c;最近資金緊張&#xff0c;他想以盡可能低的價格進購足夠的牛奶以供日常的需要。所以小健想要求助你…

Eclipse 中修改java編譯版本

修改方法是&#xff1a; 1&#xff1a;Preferences-->Java-->Compiler->Compiler compliance level&#xff0c;選擇一個需要的版本&#xff0c;比如從默認的1.4改為5.0 2&#xff1a;如果只想修改一個工程的Compiler compliance level,就右單擊工程&#xff0c;選擇屬…

百戰c++(1)

Public和private的區別 public和private是類里的關鍵字&#xff0c;用于規定類內數據或者成員函數的訪問權限。private類型的數據或者函數&#xff0c;只能在相應的類內被訪問&#xff0c;而public類型的數據或者函數被訪問的權限比較寬&#xff0c;還可以在其它類或者其它函數…

一學就廢的三種簡單排序【冒泡、插入、選擇】

文章目錄其他排序算法冒泡排序算法實現代碼實例插入排序算法實現代碼實例選擇排序算法實現代碼實例其他排序算法 一學就廢的歸并排序 冒泡排序 排列順序從前到后或者從后往前都可&#xff0c;本文選擇從后到前的順序&#xff0c;升序排列&#xff1a;比較相鄰兩個元素&#x…

百戰c++(2)

delete 和 delete []的真正區別 delete 對應 new delete[]對應new[]對于簡單類型包括簡單類型數組&#xff0c;delete 與delete[]沒有區別。對于自定義類型數組&#xff0c;delete 只會刪除一個元素&#xff0c;delete 則會刪除所有元素。 指針和數組的區別 野指針是什么 野指…

shell預先定義的特殊變量

文章目錄$#$*$$$# 表示命令行上參數的個數&#xff0c;但不包括shell腳本名本身 為腳本ex1賦予兩個變量&#xff0c;測試$#的輸出結果 [cmybogon test2]$ . ex1 ma.c mb.c 2 # echo $# 7 # cat $1 $2 $3 | wc -l 2 # echo $#腳本ex1的具體內容 [rootlocalhost test]$ cat ex1…

Linux實驗一:常用的Linux命令

文章目錄一、實驗目的二、實驗要求三、實驗內容1、系統的使用2、命令的使用3、文件操作4、系統詢問與權限口令5、其它常用命令四、實驗操作1、基本命令的使用2、文件和目錄操作3、創建用戶帳戶一、實驗目的 1、熟悉Linux的桌面環境&#xff1b; 2、了解Linux所安裝的軟件包 3、…

Linux實驗二:vi編輯器的使用

文章目錄一、實驗目的二、實驗要求三、實驗內容1、創建文件2、編輯文件一、實驗目的 1、練習并掌握Linux提供的vi編輯器來編譯C程序 2、學會利用gcc、gdb編譯、調試C程序 3、本次實驗的目的是讓同學們了解如何使用vi編輯器進行創建和編輯文件 二、實驗要求 1、文件編輯器vi…

百戰c++(os1)

Linux中的鎖 互斥鎖&#xff1a;mutex&#xff0c;用于保證在任何時刻&#xff0c;都只能有一個線程訪問該對象。當獲取鎖操作失敗時&#xff0c;線程會進入睡眠&#xff0c;等待鎖釋放時被喚醒 讀寫鎖&#xff1a;rwlock&#xff0c;分為讀鎖和寫鎖。處于讀操作時&#xff0…