【超详细】全国大学生软件测试大赛:移动应用测试脚本编写要求
博主提供練習(xí)題下載,導(dǎo)入eclipse即可運行。點擊查看
移動測試腳本編寫要求:點擊查看
博主參賽紀(jì)錄分享:點擊查看
目錄
腳本編寫要求
UIAutomatorViewer 工具介紹
1、獲取快照
2、頁面層級
3、屬性詳情
定位控件的參數(shù)選擇要求
例1
例2
其他注意事項
腳本編寫要求
UIAutomatorViewer 工具介紹
在你開始寫測試用例之前,使用 uiautomatorviewer 工具可以幫助你熟悉你的 UI 組件(包括視圖和控件),并獲取組件的各項屬性信息。
你可以使用它對當(dāng)前連接到你電腦上的手機(jī)屏幕進(jìn)行一個快照,然后可以看到手 機(jī)當(dāng)前頁面的層級關(guān)系和每個控件的屬性。利用這些信息,你可以寫出針對特定 UI 控件的測試用例。
在本地的 ..\sdk\tools\ 目錄下打開 uiautomatorviewer.bat (打開前請手機(jī)連接 電腦,手機(jī)開啟 USB 調(diào)試)。
1、獲取快照
? ? ? ? 當(dāng)你要分析一個頁面時,首先將手機(jī)的頁面停留在你要分析的頁面,然后用數(shù)據(jù) 線連接電腦。
然后點擊 uiautomatorviewer 左上角的第二個圖標(biāo)按鈕 Device Screenshot,點擊 之后會將當(dāng)前手機(jī)界面的快照更新到這里來。
2、頁面層級
? ? ? ? 右上方的整個區(qū)域,就是當(dāng)前頁面布局的層級關(guān)系。
3、屬性詳情
? ? ? ? 右下方的整個區(qū)域,是當(dāng)前選中的頁面或者是控件的屬性信息。這部分比較重要, 我們以后寫代碼的時候就是需要通過查看屬性中的控件的 id 或者是 text 等來獲 取控件的實例,然后點擊操作它。
定位控件的參數(shù)選擇要求
原則:對腳本控件定位參數(shù)的選擇要追求在要求范圍內(nèi)的唯一性。
即除了在多個頁面中都會出現(xiàn)的公共控件之外(例如返回按鈕),其它的控 件定位參數(shù)的選擇要做到在題目范圍內(nèi)的全局唯一
本題只涉及到使用兩種參數(shù)對控件進(jìn)行定位,控件 id 或控件 XPath,其中
參數(shù)選擇優(yōu)先級:控件 Resource-id > 控件 XPath
? ? ? ? 優(yōu)先使用控件的 id 來定位控件(對應(yīng) driver.findElementById()方法),若 id 在題目范圍內(nèi) 并不全局唯一, 則 使 用 XPath 進(jìn)行定位 (對應(yīng) driver.findElementByXPath()方法)。
?
例1
? ? ? ? 如上圖中使用 UI Automator Viewer 工具(這個工具在本機(jī)的 Android sdk 目錄下的 tools 文件夾下,名為 uiautomatorviewer.bat 的文件,雙擊運行即可啟 動該工具,點擊工具中左上角,見上圖,第二個按鈕即可獲取當(dāng)前已連接設(shè)備 的當(dāng)前頁面,并查看對應(yīng)控件屬性)查看已連接設(shè)備當(dāng)前頁面上的控件及其屬 性。
? ? ? ? 對比以上兩圖可以發(fā)現(xiàn),“商城”控件的 id 為 com.floral.life:id/rb_bottom_s hop,而與其同類的控件“我的”的 id 為 com.floral.life:id/rb_bottom_person,我 們?nèi)绻ㄎ豢丶吧坛恰?#xff0c;可知其 id 滿足定位參數(shù)唯一性的原則,所以這里 使用 id 作為“商城”定位的參數(shù)
?
例2
? ? ? ? 比較上面兩張圖可以發(fā)現(xiàn),當(dāng)前屏幕上“干花”這個控件的 id 和“鮮切 花”的 id 是相同的,都為 com.floral.life:id/tv_title。如果我們要定位“鮮切花” 這個控件,根據(jù)優(yōu)先使用全局唯一的參數(shù)來定位的原則,發(fā)現(xiàn) id 并不全局唯 一,不能和例 1 一樣處理,故考慮使用 XPath 進(jìn)行定位。
? ? ? ? XPath 是一種特殊的路徑,可以理解為使用多個參數(shù)來唯一定位到一個控 件。
? ? ? ? 在此處我們使用的 XPath 為//android.widget.TextView[@text='鮮切花 '],即 其格式如下。
//控件類名[@控件屬性名='控件屬性值']? ? ? ? 即定位到當(dāng)前頁面中的 android.widget.TextView 類控件且其對應(yīng)的 text 屬性值 為'鮮切花 '(此處'鮮切花 '的花字后面還有一個空格,所以不要自己輸入屬性 值,應(yīng)該直接把在 UI Automator Viewer 中的值直接拷貝到代碼中去)。
? ? ? ? 理論上來說 XPath 中的控件屬性名可以是該控件的任意屬性,但因為全局 唯一性的要求,首要選擇 text、content-desc 這種特殊性較強(qiáng)的屬性值,不要選 擇 index、bounds 這種多個控件極易相同(即未滿足全局唯一)的屬性值。
?
其他注意事項
- 腳本中不要使用 driver.findElementsByxxx()一類的方法,不要用該方法 定位多個控件得到一個 list 再循環(huán)來操作 list 中控件(除非該控件的 XPath 都不能滿足在測試范圍內(nèi)的全局唯一)。
- 腳本中允許自定義函數(shù),但對于 driver.findElementById()?這類原生方法,不 要進(jìn)行封裝。
- 腳本中使用 XPath 進(jìn)行定位時,務(wù)必與腳本編寫要求中的 XPath 格式完全一 致,即 //控件類名[@控件屬性名='控件屬性值'] 不要使用//*[@控件屬性名='控件屬性值']等一系列其他格式。
- 邏輯上是一句話的代碼務(wù)必寫在一行內(nèi),不要在函數(shù)的參數(shù)處換行。
總結(jié)
以上是生活随笔為你收集整理的【超详细】全国大学生软件测试大赛:移动应用测试脚本编写要求的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第三十章 被动语态
- 下一篇: 一款简单微信小程序个人博客。后端基于Sp