![軟件測(cè)試(第2版) 課件 第7章 App測(cè)試_第1頁(yè)](http://file4.renrendoc.com/view4/M01/1B/29/wKhkGGYqRDmAeBwEAABYMvwIPWk833.jpg)
![軟件測(cè)試(第2版) 課件 第7章 App測(cè)試_第2頁(yè)](http://file4.renrendoc.com/view4/M01/1B/29/wKhkGGYqRDmAeBwEAABYMvwIPWk8332.jpg)
![軟件測(cè)試(第2版) 課件 第7章 App測(cè)試_第3頁(yè)](http://file4.renrendoc.com/view4/M01/1B/29/wKhkGGYqRDmAeBwEAABYMvwIPWk8333.jpg)
![軟件測(cè)試(第2版) 課件 第7章 App測(cè)試_第4頁(yè)](http://file4.renrendoc.com/view4/M01/1B/29/wKhkGGYqRDmAeBwEAABYMvwIPWk8334.jpg)
![軟件測(cè)試(第2版) 課件 第7章 App測(cè)試_第5頁(yè)](http://file4.renrendoc.com/view4/M01/1B/29/wKhkGGYqRDmAeBwEAABYMvwIPWk8335.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章App測(cè)試《軟件測(cè)試(第2版)》學(xué)習(xí)目標(biāo)/Target
了解App測(cè)試概述,能夠描述App測(cè)試與PC端軟件測(cè)試的區(qū)別了解App的UI測(cè)試,能夠描述UI測(cè)試的3個(gè)要點(diǎn)了解App功能測(cè)試,能夠描述App功能測(cè)試的6個(gè)要點(diǎn)了解App專項(xiàng)測(cè)試,能夠描述App專項(xiàng)測(cè)試的6個(gè)要點(diǎn)學(xué)習(xí)目標(biāo)/Target
了解App性能測(cè)試,能夠描述App性能測(cè)試的4個(gè)要點(diǎn)了解App的兼容性測(cè)試,能夠描述App兼容性測(cè)試的5個(gè)要點(diǎn)掌握App測(cè)試環(huán)境的搭建方式,能夠獨(dú)立下載和安裝AndroidSDK、模擬器、Appium和Appium-Python-Client庫(kù)掌握Appium元素定位的方法,能夠使用Appium定位App界面中的元素學(xué)習(xí)目標(biāo)/Target
掌握Appium元素操作的方法,能夠使用Appium操作App界面中的元素掌握Appium手勢(shì)操作的方法,能夠?qū)pp界面中的元素進(jìn)行手勢(shì)操作掌握通過(guò)Appium測(cè)試App的方法,能夠使用Appium測(cè)試“學(xué)車不”App章節(jié)概述/Summary移動(dòng)設(shè)備因其具有智能性、互動(dòng)性等特點(diǎn)被廣泛應(yīng)用于人們的日常生活。隨著移動(dòng)設(shè)備的普及,越來(lái)越多的App誕生,例如美團(tuán)、百度地圖、抖音等,這些App只需要安裝在移動(dòng)設(shè)備上就能隨時(shí)隨地使用。由于移動(dòng)設(shè)備的使用環(huán)境比較復(fù)雜,所以App在正式上線前都需要進(jìn)行測(cè)試,如果沒(méi)有經(jīng)過(guò)測(cè)試就直接上線,可能會(huì)出現(xiàn)一系列問(wèn)題,例如用戶信息的泄露、App的崩潰、App在使用過(guò)程中經(jīng)??D等。這些問(wèn)題不但會(huì)增加App的維護(hù)成本,而且會(huì)影響用戶的使用體驗(yàn)。由此可見(jiàn),App的質(zhì)量保證離不開(kāi)測(cè)試。本章將對(duì)App測(cè)試的相關(guān)知識(shí)進(jìn)行講解。目錄/Contents01020304App測(cè)試概述App測(cè)試要點(diǎn)搭建App測(cè)試環(huán)境Appium的基本使用05實(shí)例:使用Appium測(cè)試“學(xué)車不”AppApp測(cè)試概述7.1
先定一個(gè)小目標(biāo)!了解App測(cè)試概述,能夠描述App測(cè)試與PC端軟件測(cè)試的區(qū)別7.1App測(cè)試概述7.1App測(cè)試概述App(Application,應(yīng)用程序)是指安裝在手機(jī)、平板電腦等移動(dòng)設(shè)備上的軟件。由于App缺陷導(dǎo)致的事故時(shí)有發(fā)生,所以App測(cè)試至關(guān)重要。7.1App測(cè)試概述設(shè)備多樣性App的特性傳統(tǒng)的PC端軟件都是安裝在計(jì)算機(jī)中的,
而可以安裝App的設(shè)備比較多,例如手機(jī)、平板電腦、智能手表等,這些設(shè)備輕巧便攜,滿足了用戶對(duì)移動(dòng)生活、工作的強(qiáng)烈需求。網(wǎng)絡(luò)多樣性傳統(tǒng)的PC端軟件一般都是通過(guò)計(jì)算機(jī)連接有線網(wǎng)絡(luò)進(jìn)行使用的,雖然現(xiàn)代的計(jì)算機(jī)也可以連接無(wú)線網(wǎng)絡(luò),但是這些網(wǎng)絡(luò)都是比較穩(wěn)定的。App通過(guò)移動(dòng)設(shè)備連接移動(dòng)通信網(wǎng)絡(luò)或無(wú)線網(wǎng)絡(luò)進(jìn)行使用,例如3G、4G、5G、Wi-Fi。平臺(tái)多樣性傳統(tǒng)的PC端軟件所依賴的平臺(tái)主要有Windows、macOS、Linux等,種類相對(duì)較少,而App所依賴的平臺(tái)則有很多種,例如iOS、Android、WindowsPhone、BlackBerry等,其中使用較多的平臺(tái)是iOS和Android。7.1App測(cè)試概述無(wú)論是App測(cè)試還是PC端軟件測(cè)試,都離不開(kāi)測(cè)試的基礎(chǔ)知識(shí),它們測(cè)試的流程和方法基本相同。例如,App測(cè)試和PC端軟件測(cè)試都需要檢查界面的布局,它們可以使用同樣的測(cè)試方法設(shè)計(jì)測(cè)試用例,例如邊界值分析法、等價(jià)類劃分法等。7.1App測(cè)試概述對(duì)于PC端軟件,計(jì)算機(jī)設(shè)備屏幕比較大,可以同時(shí)顯示很多信息,用戶可以快速看到屏幕上顯示的所有信息,頁(yè)面布局比較靈活。但是對(duì)于App,移動(dòng)設(shè)備屏幕小,顯示的信息有限,在測(cè)試時(shí)需要考慮布局是否合理。頁(yè)面布局不同PC端軟件大多使用鍵盤和鼠標(biāo)進(jìn)行輸入,App在移動(dòng)設(shè)備上使用時(shí),輸入方法比較多,例如觸屏、電容筆、語(yǔ)音等。App測(cè)試時(shí)需要測(cè)試多種輸入方法是否都能正常使用。輸入方法不同PC端軟件的使用地點(diǎn)比較固定,網(wǎng)絡(luò)信號(hào)相對(duì)也比較穩(wěn)定;而App的使用地點(diǎn)不固定,網(wǎng)絡(luò)信號(hào)相對(duì)也不穩(wěn)定,測(cè)試時(shí)需要考慮網(wǎng)絡(luò)信號(hào)較差的情況下App的使用情況。此外,還要考慮在移動(dòng)設(shè)備電量不足的情況下,App是否能正常使用。使用場(chǎng)合不同PC端軟件使用鼠標(biāo)可以精確操作,而App在移動(dòng)設(shè)備上使用時(shí)大多是觸屏操作,點(diǎn)擊時(shí)誤差較大,且不支持鼠標(biāo)指針懸停事件。操作方式不同App與PC端軟件在測(cè)試方面的區(qū)別App測(cè)試的流程App測(cè)試的流程與PC端軟件測(cè)試的流程大體相同,在測(cè)試之前都需要分析需求,然后制定測(cè)試計(jì)劃、編寫測(cè)試用例等。相對(duì)于PC端軟件測(cè)試,在App測(cè)試的過(guò)程中,測(cè)試人員除了要考慮基本的功能測(cè)試、性能測(cè)試外,還要考慮App本身固有的屬性特征以展開(kāi)專項(xiàng)測(cè)試,例如,用戶在使用App時(shí),會(huì)對(duì)App進(jìn)行安裝、卸載或升級(jí)操作等,因此在測(cè)試具體實(shí)施細(xì)節(jié)上也與PC端軟件測(cè)試并不相同。7.1App測(cè)試概述多學(xué)一招7.1App測(cè)試概述App測(cè)試的流程通常包括7個(gè)環(huán)節(jié),具體如下。多學(xué)一招接受測(cè)試版本App版本測(cè)試UI測(cè)試功能測(cè)試專項(xiàng)測(cè)試正式環(huán)境測(cè)試上線準(zhǔn)備App測(cè)試要點(diǎn)7.2
先定一個(gè)小目標(biāo)!了解App的UI測(cè)試,能夠描述UI測(cè)試的3個(gè)要點(diǎn)7.2.1UI測(cè)試7.2.1UI測(cè)試App的UI測(cè)試主要是測(cè)試App的用戶界面(如窗口、菜單、對(duì)話框等)的布局風(fēng)格是否滿足用戶要求、文字表達(dá)是否簡(jiǎn)潔準(zhǔn)確、界面是否美觀、操作是否簡(jiǎn)便等。UI測(cè)試的目的是為用戶提供相應(yīng)的訪問(wèn)或?yàn)g覽功能,確保用戶界面符合公司或行業(yè)的標(biāo)準(zhǔn),保證用戶界面的友好性、易操作性等。7.2.1UI測(cè)試導(dǎo)航測(cè)試圖形測(cè)試內(nèi)容測(cè)試App的UI測(cè)試的3個(gè)要點(diǎn)由于移動(dòng)設(shè)備屏幕窄小,顯示信息有限,所以App界面的導(dǎo)航尤其重要。圖形測(cè)試包括圖片、邊框、顏色、按鈕等,要確保每一個(gè)圖形都有明確用途。內(nèi)容測(cè)試主要是測(cè)試文字的使用情況。7.2.1UI測(cè)試在進(jìn)行導(dǎo)航測(cè)試時(shí),通常需要考慮以下4點(diǎn)。在App功能界面之間是否有按鈕和窗口導(dǎo)航。導(dǎo)航布局合理且直觀,符合用戶習(xí)慣。導(dǎo)航與App界面結(jié)構(gòu)、菜單、風(fēng)格是否一致。導(dǎo)航幫助是否準(zhǔn)確,是否需要搜索引擎。7.2.1UI測(cè)試0102030405圖形測(cè)試通常需要考慮5點(diǎn)圖片質(zhì)量高,尺寸符合設(shè)計(jì)要求,能夠顯示清晰。界面字體與標(biāo)簽風(fēng)格一致。背景、字體、圖片顏色搭配得當(dāng),整體使用顏色不宜過(guò)多,讓用戶視覺(jué)體驗(yàn)良好。界面中橫向與豎向的控件操作方式統(tǒng)一。使用自適應(yīng)界面設(shè)計(jì),界面展示的內(nèi)容根據(jù)窗口大小自適應(yīng)。7.2.1UI測(cè)試內(nèi)容測(cè)試通常需要考慮以下5點(diǎn)。文字是否表達(dá)準(zhǔn)確,例如,輸入框或提示框中的說(shuō)明文是否對(duì)應(yīng)當(dāng)前的功能。文字是否有錯(cuò)別字。文字用語(yǔ)是否簡(jiǎn)潔、友好,是否存在表意不明。文字是否有敏感性詞匯。文字長(zhǎng)度是否有限制。
先定一個(gè)小目標(biāo)!了解App功能測(cè)試,能夠描述App功能測(cè)試的6個(gè)要點(diǎn)7.2.2功能測(cè)試7.2.2功能測(cè)試App功能測(cè)試主要根據(jù)軟件需求說(shuō)明驗(yàn)證App的功能是否得到了正確的實(shí)現(xiàn)。App功能測(cè)試要點(diǎn)如下圖所示。7.2.2功能測(cè)試在測(cè)試App的注冊(cè)功能時(shí),測(cè)試人員需要根據(jù)軟件需求說(shuō)明,測(cè)試用戶的注冊(cè)信息是否符合規(guī)范,例如用戶名、密碼、手機(jī)號(hào)等是否符合規(guī)范。此外,還需要測(cè)試用戶注冊(cè)成功或失敗時(shí),App是否給出相關(guān)提示信息。1.注冊(cè)7.2.2功能測(cè)試在測(cè)試App的登錄功能時(shí),通常測(cè)試以下4點(diǎn)。登錄方式超時(shí)登錄多平臺(tái)登錄切換賬號(hào)登錄登錄方式有很多種,例如用戶名與密碼登錄、短信驗(yàn)證登錄、手勢(shì)登錄、人臉識(shí)別登錄、指紋登錄、第三方登錄(如QQ、微信)等,具體的測(cè)試實(shí)施過(guò)程,需要測(cè)試人員根據(jù)軟件需求說(shuō)明設(shè)計(jì)測(cè)試用例后再展開(kāi)。當(dāng)切換賬號(hào)登錄時(shí),測(cè)試登錄的信息是否及時(shí)更新。有一些App可以同時(shí)在移動(dòng)端和PC端登錄,在測(cè)試多平臺(tái)同時(shí)登錄時(shí),需要關(guān)注App是否允許登錄、是否給出提示信息、是否及時(shí)看到數(shù)據(jù)的更新等。當(dāng)用戶登錄的持續(xù)時(shí)間太長(zhǎng)時(shí),賬號(hào)信息會(huì)在一定時(shí)間內(nèi)過(guò)期。在超時(shí)登錄的情況下,測(cè)試App是否給出提示信息。2.登錄7.2.2功能測(cè)試App運(yùn)行測(cè)試包括測(cè)試在不同網(wǎng)絡(luò)環(huán)境下,運(yùn)行App是否正常;在不同系統(tǒng)環(huán)境下,運(yùn)行App是否正常;強(qiáng)行關(guān)閉App后,再次運(yùn)行App是否正常;在運(yùn)行過(guò)程中,如果有來(lái)電、短信等通信中斷,App是否能暫停運(yùn)行,優(yōu)先處理通信,并在處理完后正?;謴?fù)運(yùn)行。3.運(yùn)行7.2.2功能測(cè)試后臺(tái)切換當(dāng)移動(dòng)設(shè)備同時(shí)運(yùn)行多個(gè)App時(shí),在多個(gè)App之間進(jìn)行切換,要確保再次切換回來(lái)時(shí)App還保持在原來(lái)的界面上。刪除進(jìn)程測(cè)試從后臺(tái)直接刪除進(jìn)程后,當(dāng)再次打開(kāi)App時(shí)是否符合概要設(shè)計(jì)描述,同時(shí)測(cè)試刪除進(jìn)程時(shí)是否將App建立的會(huì)話一起刪除。
鎖屏App的切換測(cè)試鎖屏包括手動(dòng)鎖屏和自動(dòng)鎖屏。測(cè)試鎖屏之后App響應(yīng)是否符合概要設(shè)計(jì)描述,例如再次打開(kāi)App時(shí),它還保持顯示鎖屏前的界面,并且可以繼續(xù)使用;當(dāng)鎖屏達(dá)到一定時(shí)間后,就自動(dòng)退出App。4.切換7.2.2功能測(cè)試使用計(jì)算機(jī)時(shí),經(jīng)常會(huì)收到推送信息,這些推送信息通常是由系統(tǒng)或軟件推送的。在移動(dòng)設(shè)備中,很多App也會(huì)發(fā)送推送消息,例如支付寶推送一個(gè)紅包、今日頭條推送實(shí)時(shí)熱點(diǎn)新聞等。在對(duì)App進(jìn)行測(cè)試時(shí)也需要測(cè)試推送功能,確保用戶可以及時(shí)收到推送消息。5.推送7.2.2功能測(cè)試通常App的更新測(cè)試主要從舊功能和新需求這兩個(gè)方面展開(kāi),即確保舊功能可以正常使用的同時(shí),還需要實(shí)現(xiàn)新需求。當(dāng)App有新版本時(shí),測(cè)試App是否有更新提示,如果進(jìn)行更新操作,則需要對(duì)App更新后的功能展開(kāi)測(cè)試,確保App更新后的功能可以正常使用。如果取消更新,則需要確保舊版本的App也能正常使用,并且在下次運(yùn)行App時(shí),仍然出現(xiàn)更新提示。6.更新
先定一個(gè)小目標(biāo)!了解App專項(xiàng)測(cè)試,能夠描述App專項(xiàng)測(cè)試的6個(gè)要點(diǎn)7.2.3專項(xiàng)測(cè)試7.2.3專項(xiàng)測(cè)試App專項(xiàng)測(cè)試包括安裝測(cè)試、卸載測(cè)試、升級(jí)測(cè)試、交互性測(cè)試、弱網(wǎng)測(cè)試、耗電量測(cè)試等。7.2.3專項(xiàng)測(cè)試App的安裝方式與PC端軟件的安裝方式稍有不同,App安裝測(cè)試要考慮App來(lái)源、對(duì)移動(dòng)設(shè)備的兼容性等。(1)App的安裝渠道比較多,例如谷歌應(yīng)用商店(GooglePlay)、應(yīng)用寶等,甚至可以通過(guò)掃碼安裝。對(duì)于多渠道的安裝方式,在測(cè)試時(shí)應(yīng)對(duì)每個(gè)渠道都進(jìn)行測(cè)試,以確保通過(guò)每個(gè)渠道都能正常安裝App。對(duì)于已經(jīng)安裝的App,如果再次安裝,需要彈出已安裝或更新的提示,而不是產(chǎn)生沖突。1.安裝測(cè)試7.2.3專項(xiàng)測(cè)試(2)移動(dòng)設(shè)備的種類比較多,例如一個(gè)品牌的手機(jī)會(huì)有不同的系列,每個(gè)系列也會(huì)有多個(gè)型號(hào)。此外,App所依賴的平臺(tái)也比較多,在測(cè)試時(shí)要考慮App對(duì)不同手機(jī)、不同平臺(tái)的兼容性。(3)App在安裝過(guò)程中是否可以取消安裝,如果可以取消安裝,應(yīng)確保取消安裝的處理要與App概要設(shè)計(jì)描述一致。例如,如果App概要設(shè)計(jì)描述取消安裝的處理過(guò)程為“取消安裝并進(jìn)行回滾處理,將已經(jīng)安裝的文件全部刪除“,那么在實(shí)際取消安裝時(shí)也必須如此處理。(4)如果安裝過(guò)程中出現(xiàn)意外情況,例如死機(jī)、重啟、電量耗盡關(guān)機(jī)等,App安裝的處理是否與App概要設(shè)計(jì)描述一致。例如,如果App概要設(shè)計(jì)描述安裝過(guò)程出現(xiàn)意外情況的處理過(guò)程為“安裝過(guò)程中電量耗盡關(guān)機(jī),安裝中斷,當(dāng)再次開(kāi)機(jī)時(shí)繼續(xù)安裝”,那么在實(shí)際安裝過(guò)程中也必須如此處理。7.2.3專項(xiàng)測(cè)試(5)如果移動(dòng)設(shè)備空間不足,要確保有相應(yīng)提示。例如,當(dāng)剩下100MB空間時(shí),要安裝一個(gè)200MB的App,有的App直接提示空間不足,無(wú)法安裝;有的App會(huì)先安裝,待空間用盡時(shí)再提示。(6)App安裝過(guò)程中要進(jìn)行UI測(cè)試,例如在安裝過(guò)程中給用戶提供進(jìn)度條提示。(7)App安裝完成之后,測(cè)試其是否能正常運(yùn)行,檢查安裝后的文件夾及文件是否寫入指定目錄。7.2.3專項(xiàng)測(cè)試12345卸載時(shí),有卸載提示信息。App在卸載過(guò)程中是否支持取消卸載,如果支持取消卸載,要確保取消卸載的處理與App概要設(shè)計(jì)描述一致。App卸載的過(guò)程中如果出現(xiàn)意外情況,例如死機(jī)、重啟、電量耗盡關(guān)機(jī)等,要有相應(yīng)的處理措施。如進(jìn)行回滾,當(dāng)再次開(kāi)機(jī)時(shí)需要重新卸載;中斷卸載,當(dāng)再次開(kāi)機(jī)時(shí)繼續(xù)卸載;啟動(dòng)后臺(tái)進(jìn)程守護(hù)卸載,當(dāng)再次開(kāi)機(jī)時(shí)提示卸載完成。App卸載過(guò)程要進(jìn)行UI測(cè)試,例如在卸載過(guò)程中,給用戶提供進(jìn)度條提示。卸載完成后,關(guān)于App相應(yīng)的安裝文件是否要全部刪除,應(yīng)當(dāng)給用戶提供提示信息,提示相應(yīng)文件全部刪除或者讓用戶自己選擇是否刪除。App卸載測(cè)試主要有以下5點(diǎn)。
2.卸載測(cè)試7.2.3專項(xiàng)測(cè)試升級(jí)測(cè)試是在已安裝App的基礎(chǔ)上進(jìn)行的,測(cè)試要點(diǎn)有以下4點(diǎn)。如果有新版本升級(jí),打開(kāi)App時(shí)要有相應(yīng)提示。升級(jí)包下載中斷時(shí)要有相應(yīng)處理措施,支持繼續(xù)下載或者重新下載。App安裝渠道有多種,相應(yīng)的升級(jí)渠道也有多種,要對(duì)多渠道升級(jí)進(jìn)行測(cè)試,確保每個(gè)渠道的升級(jí)都能順利完成。測(cè)試不同操作系統(tǒng)版本中的App升級(jí)是否都能通過(guò)。3.升級(jí)測(cè)試7.2.3專項(xiàng)測(cè)試移動(dòng)設(shè)備通常都有電話、短信、藍(lán)牙等軟件,App在使用時(shí)難免會(huì)受到干擾。例如,在使用App的過(guò)程中,如果需要撥打電話,接聽(tīng)電話,啟動(dòng)藍(lán)牙、相機(jī)、手電筒等,App要做好相應(yīng)的處理措施,確保自身不會(huì)產(chǎn)生功能性錯(cuò)誤。4.交互性測(cè)試7.2.3專項(xiàng)測(cè)試App在移動(dòng)設(shè)備上使用時(shí),通常需要連接移動(dòng)網(wǎng)絡(luò),由于移動(dòng)網(wǎng)絡(luò)的情況復(fù)雜多變,網(wǎng)絡(luò)信號(hào)會(huì)受到環(huán)境的影響,所以容易出現(xiàn)網(wǎng)絡(luò)不穩(wěn)定的情況。然而很多App的一些隱藏問(wèn)題只有在復(fù)雜的網(wǎng)絡(luò)環(huán)境下才會(huì)顯現(xiàn)出來(lái)。例如,正在使用的App遇到網(wǎng)絡(luò)信號(hào)切換或變?nèi)鯐r(shí),不能響應(yīng)或產(chǎn)生功能性錯(cuò)誤,在測(cè)試時(shí)要特別對(duì)App進(jìn)行弱網(wǎng)測(cè)試,盡早發(fā)現(xiàn)問(wèn)題。5.弱網(wǎng)測(cè)試7.2.3專項(xiàng)測(cè)試移動(dòng)設(shè)備的電量有限一直是困擾用戶的一個(gè)問(wèn)題,同時(shí)也是移動(dòng)設(shè)備發(fā)展的一個(gè)瓶頸。如果App架構(gòu)設(shè)計(jì)不好,或者代碼有缺陷,就可能導(dǎo)致電量消耗比較大,因此App耗電量測(cè)試也很重要。如果App耗電量較大,應(yīng)改進(jìn)App,使其在電量不足的情況下釋放掉一部分性能以節(jié)省電量。6.耗電量測(cè)試
先定一個(gè)小目標(biāo)!了解App性能測(cè)試,能夠描述App的性能測(cè)試的4個(gè)要點(diǎn)7.2.4性能測(cè)試7.2.4性能測(cè)試App性能測(cè)試主要測(cè)試App在邊界、壓力等極端條件下運(yùn)行是否能滿足用戶需求,例如,在電量不足、訪問(wèn)量增大等情況下App運(yùn)行是否正常。7.2.4性能測(cè)試App性能測(cè)試的要點(diǎn)如下。邊界測(cè)試響應(yīng)能力測(cè)試耗能測(cè)試壓力測(cè)試在各種邊界壓力下,例如電量不足、存儲(chǔ)空間不足、網(wǎng)絡(luò)不穩(wěn)定時(shí),測(cè)試App是否能正確響應(yīng)和正常運(yùn)行。對(duì)App不斷施加壓力,例如不斷增加負(fù)載、不斷增大數(shù)據(jù)吞吐量等,以確定App的服務(wù)瓶頸,獲得App能提供的最強(qiáng)性能,確定App性能是否滿足用戶需求。測(cè)試App運(yùn)行時(shí)對(duì)移動(dòng)設(shè)備的資源占用情況,包括內(nèi)存、CPU使用率,在App耗能測(cè)試時(shí)需要驗(yàn)證App在長(zhǎng)期運(yùn)行時(shí)的耗電量是否滿足用戶需求。響應(yīng)能力測(cè)試實(shí)質(zhì)上也是一種壓力測(cè)試,即測(cè)試在一定條件下App是否可以正確響應(yīng),以及響應(yīng)時(shí)間是否滿足用戶需求。
先定一個(gè)小目標(biāo)!了解App的兼容性測(cè)試,能夠描述App的兼容性測(cè)試的5個(gè)要點(diǎn)7.2.5兼容性測(cè)試7.2.5兼容性測(cè)試兼容性是指軟件之間、硬件之間或軟硬件組合系統(tǒng)之間相互協(xié)調(diào)工作的程度。對(duì)于App的兼容性,如果某個(gè)App能夠穩(wěn)定地工作在若干個(gè)操作系統(tǒng)中,并且不會(huì)出現(xiàn)頻繁崩潰、意外退出等問(wèn)題,則說(shuō)明App的兼容性比較好。7.2.5兼容性測(cè)試隨著App應(yīng)用的范圍越來(lái)越大,用戶群體逐漸增多,用戶使用的移動(dòng)設(shè)備型號(hào)也越來(lái)越多,這使得App兼容性測(cè)試成為App質(zhì)量保證必須要考慮的測(cè)試要點(diǎn)。兼容性測(cè)試的目的是提高App產(chǎn)品的質(zhì)量,盡可能使App產(chǎn)品達(dá)到平臺(tái)無(wú)關(guān)性,使App產(chǎn)品的市場(chǎng)更廣闊。通常App兼容性測(cè)試的要點(diǎn)主要有系統(tǒng)、屏幕分辨率、屏幕尺寸、網(wǎng)絡(luò)和品牌,7.2.5兼容性測(cè)試App系統(tǒng)兼容性測(cè)試主要涉及Android和iOS,其中Android系統(tǒng)又分為8.0、9.0、10.0等版本;iOS又分為12.0、13.0、14.0等版本。由于不同的系統(tǒng)版本有不同的特征,所以在不同的系統(tǒng)上使用App時(shí)都有可能產(chǎn)生各種各樣的兼容問(wèn)題,例如,某一款A(yù)pp在Android系統(tǒng)上能夠正常安裝和使用,而在iOS上卻無(wú)法安裝和使用,所以在進(jìn)行App兼容性測(cè)試時(shí)需要覆蓋系統(tǒng)兼容。1.系統(tǒng)兼容測(cè)試7.2.5兼容性測(cè)試目前手機(jī)的屏幕種類很多,常見(jiàn)的有全面屏、劉海屏、水滴屏、折疊屏等,不同的手機(jī)屏幕的分辨率也有所不同。在不同分辨率的設(shè)備上使用App時(shí),呈現(xiàn)的界面效果也會(huì)有所差異。如果沒(méi)有適配不同手機(jī)的屏幕分辨率,則可能會(huì)影響用戶的使用體驗(yàn)。例如,在分辨率為1920像素
1080像素的屏幕中顯示的App界面樣式清晰美觀,滿足用戶的使用需求,而在1280像素
720像素的分辨率的屏幕中可能出現(xiàn)App界面樣式顯示不全、圖片模糊等問(wèn)題,所以在進(jìn)行App兼容性測(cè)試時(shí)需要在不同分辨率的設(shè)備上測(cè)試,并觀察用戶界面的效果。2.屏幕分辨率兼容測(cè)試7.2.5兼容性測(cè)試在分辨率相同但屏幕尺寸不同的移動(dòng)設(shè)備上使用App時(shí),容易出現(xiàn)圖片顯示不完整、字體大小不一致等問(wèn)題,因此需要測(cè)試屏幕大小的兼容性。3.屏幕尺寸兼容測(cè)試7.2.5兼容性測(cè)試很多App的使用需要連接網(wǎng)絡(luò),在測(cè)試網(wǎng)絡(luò)兼容性時(shí)要保證網(wǎng)絡(luò)環(huán)境能夠全部覆蓋,例如Wi-Fi、2G、3G、4G、5G,同時(shí)需要考慮電信、移動(dòng)、聯(lián)通等運(yùn)營(yíng)商的網(wǎng)絡(luò)環(huán)境。在切換網(wǎng)絡(luò)環(huán)境時(shí),測(cè)試App能否兼容不同的網(wǎng)絡(luò)環(huán)境。4.網(wǎng)絡(luò)兼容測(cè)試7.2.5兼容性測(cè)試App在不同品牌的移動(dòng)設(shè)備上使用時(shí),也可能出現(xiàn)缺陷,常見(jiàn)的移動(dòng)設(shè)備品牌有華為、小米、三星、OPPO、vivo、榮耀等。由于不同品牌的移動(dòng)設(shè)備在運(yùn)行速度、軟件兼容上有區(qū)別,所以需要測(cè)試App是否可以在不同品牌的移動(dòng)設(shè)備上使用。5.品牌兼容性測(cè)試第三方測(cè)試平臺(tái)App可以使用第三方平臺(tái)進(jìn)行測(cè)試,第三方平臺(tái)(如阿里EasyTest、華為云測(cè)、貫眾云測(cè)試等)提供了全面、專業(yè)的測(cè)試服務(wù),用戶可選擇品牌機(jī)型、操作系統(tǒng)版本、性能測(cè)試、功能測(cè)試等,極大地提高了App測(cè)試效率。7.2.5兼容性測(cè)試多學(xué)一招搭建App測(cè)試環(huán)境7.3
先定一個(gè)小目標(biāo)!掌握J(rèn)DK與AndroidSDK的安裝,能夠獨(dú)立安裝JDK與AndroidSDK7.3.1安裝JDK與AndroidSDK7.3.1安裝JDK與AndroidSDK由于App是基于Android系統(tǒng)開(kāi)發(fā)的,使用的編程語(yǔ)言是Java,所以在運(yùn)行或測(cè)試App時(shí)需要使用Java環(huán)境,搭建Java環(huán)境也就是安裝JDK。在測(cè)試App的過(guò)程中,還需要定位App界面元素,此時(shí)需要使用AndroidSDK中的uiautomatorviewer工具,所以還需要安裝AndroidSDK。7.3.1安裝JDK與AndroidSDKQPS和TPS(1)安裝JDK(2)安裝AndroidSDKJDK是Java語(yǔ)言的軟件開(kāi)發(fā)工具包,在第5章的5.2.1節(jié)中已經(jīng)成功安裝,這里不再贅述。安裝AndroidSDK其實(shí)就是下載AndroidSDK,下載的是一個(gè)壓縮文件,解壓該文件可直接使用里面的uiautomatorviewer工具。
先定一個(gè)小目標(biāo)!掌握Android模擬器的安裝,能夠獨(dú)立下載與安裝雷電模擬器7.3.2安裝Android模擬器7.3.2安裝Android模擬器當(dāng)測(cè)試Android系統(tǒng)的App時(shí),需要將App運(yùn)行在Android模擬器或Android系統(tǒng)的其他設(shè)備上,然后測(cè)試App中的各項(xiàng)功能是否會(huì)出現(xiàn)缺陷。以第三方的雷電模擬器為例,該模擬器的安裝步驟比較簡(jiǎn)單,沒(méi)有復(fù)雜的操作,直接單擊“下一步”就可以完成安裝,所以此處不再詳細(xì)描述雷電模擬器的安裝步驟。
先定一個(gè)小目標(biāo)!掌握Android環(huán)境變量的配置,能夠完成Android環(huán)境變量的配置7.3.3配置Android環(huán)境變量7.3.3配置Android環(huán)境變量當(dāng)測(cè)試Android系統(tǒng)的App時(shí),有時(shí)需要使用adb命令獲取App的包名和界面名,所以需要配置Android環(huán)境變量,配置完成后,才可以使用adb命令。7.3.3配置Android環(huán)境變量選中桌面上的計(jì)算機(jī),右鍵單擊選擇“屬性”選項(xiàng),會(huì)彈出“系統(tǒng)”窗口,在該窗口中選擇“高級(jí)系統(tǒng)設(shè)置”,會(huì)彈出“系統(tǒng)屬性”對(duì)話框。在該對(duì)話框中單擊“環(huán)境變量”按鈕,會(huì)彈出“環(huán)境變量”對(duì)話框,在“環(huán)境變量”對(duì)話框的“系統(tǒng)變量”下方,單擊“新建”按鈕,會(huì)彈出“新建系統(tǒng)變量”對(duì)話框,在該對(duì)話框中將變量名設(shè)置為ANDROID_HOME,變量值設(shè)置為AndroidSDK所在的安裝路徑,如下圖所示。步驟一:配置Android環(huán)境變量ANDROID_HOME7.3.3配置Android環(huán)境變量首先將AndroidSDK解壓后的platform-tools和tools文件夾的路徑添加到系統(tǒng)環(huán)境變量Path中。在“環(huán)境變量”對(duì)話框中的“系統(tǒng)變量”下方找到名為Path的環(huán)境變量,單擊“編輯”按鈕,會(huì)彈出“編輯系統(tǒng)變量”的對(duì)話框,在該對(duì)話框的變量值輸入框中添加“;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;”,如下圖所示。步驟二:配置Android環(huán)境變量Path7.3.3配置Android環(huán)境變量下面驗(yàn)證Android環(huán)境變量是否配置成功。在鍵盤上按“Windows+R”快捷鍵,會(huì)彈出“運(yùn)行”對(duì)話框,在該對(duì)話框中輸入“cmd”,并按“Enter”鍵,會(huì)彈出命令提示符窗口,在該窗口中輸入“adbversion”,并按“Enter”鍵,此時(shí)命令提示符窗口中顯示adb的版本信息,則說(shuō)明Android的環(huán)境變量配置成功,如下圖所示。ADB調(diào)試工具多學(xué)一招ADB是一個(gè)用于管理Android設(shè)備(如模擬器、手機(jī)等)的調(diào)試工具,位于AndroidSDK安裝目錄下的platform-tools文件夾中。當(dāng)配置完Android的環(huán)境變量后,可以直接在命令提示符窗口中使用adb命令對(duì)Android設(shè)備進(jìn)行操作或獲取設(shè)備上安裝的App信息,例如,在設(shè)備上安裝App、卸載App、連接某個(gè)設(shè)備、獲取App的包名和界面名等信息。7.3.3配置Android環(huán)境變量在進(jìn)行App測(cè)試時(shí)經(jīng)常會(huì)使用一些adb命令來(lái)啟動(dòng)或停止ADB服務(wù)器、獲取App的日志信息、連接或斷開(kāi)Android設(shè)備等。常用的adb命令如下表所示。7.3.3配置Android環(huán)境變量多學(xué)一招adb命令說(shuō)明adbstart-server啟動(dòng)ADB服務(wù)器adbkill-server停止ADB服務(wù)器adbdevices查看設(shè)備名稱adblogcat獲取日志信息adbconnectIP地址連接某個(gè)設(shè)備7.3.3配置Android環(huán)境變量多學(xué)一招adb命令說(shuō)明adbinstallapk的文件路徑安裝AppadbuninstallApp的包名卸載Appadb--help查看adb命令的幫助adbshelldumpsyswindowwindows|findstrmFocusedApp獲取App的包名和界面名adbshelldumpsysactivity|find"mFocusedActivity"獲取App的包名和界面名下面以獲取雷電模擬器中“通訊錄”App的包名和界面名為例,演示adb命令的使用。首先打開(kāi)雷電模擬器,然后在該模擬器中找到“通訊錄”App,雙擊該App進(jìn)入通訊錄界面,如右圖所示。7.3.3配置Android環(huán)境變量多學(xué)一招打開(kāi)計(jì)算中的命令提示符窗口,執(zhí)行如下命令。7.3.3配置Android環(huán)境變量adbshelldumpsyswindowwindows|findstrmFocusedApp或者adbshelldumpsysactivity|find"mFocusedActivity"多學(xué)一招adb命令成功獲取了通訊錄App的包名和界面名,其中包名為com.android.contacts,界面名為.activities.PeopleActivity。7.3.3配置Android環(huán)境變量多學(xué)一招
先定一個(gè)小目標(biāo)!掌握uiautomatorviewer工具的使用,能夠靈活應(yīng)用uiautomatorviewer工具定位App界面的元素7.3.4uiautomatorviewer工具的簡(jiǎn)單使用7.3.4uiautomatorviewer工具的簡(jiǎn)單使用uiautomatorviewer是AndroidSDK自帶的一個(gè)元素定位工具,位于AndroidSDK目錄下的tools\bin子目錄中,它可以掃描并分析App中的界面控件信息,例如,查看App的界面布局、組件、屬性等信息。7.3.4uiautomatorviewer工具的簡(jiǎn)單使用在使用uiautomatorviewer工具定位App界面元素時(shí),首先進(jìn)入AndroidSDK目錄下的tools\bin子目錄,然后雙擊uiautomatorviewer.bat文件,啟動(dòng)uiautomatorviewer工具。在啟動(dòng)該工具時(shí)會(huì)出現(xiàn)一個(gè)命令提示符窗口和UIAutomatorViewer窗口,分別如下圖所示。7.3.4uiautomatorviewer工具的簡(jiǎn)單使用注意在使用uiautomatorviewer工具的過(guò)程中不能關(guān)閉命令提示符窗口,如果關(guān)閉該窗口,則UIAutomatorViewer窗口也會(huì)自動(dòng)關(guān)閉,uiautomatorviewer工具將不能繼續(xù)使用。7.3.4uiautomatorviewer工具的簡(jiǎn)單使用下面使用uiautomatorviewer工具獲取雷電模擬器中“設(shè)置”App的界面布局信息。首先啟動(dòng)雷電模擬器,打開(kāi)該模擬器中的“設(shè)置”App,然后啟動(dòng)uiautomatorviewer工具,并單擊UIAutomatorViewer窗口左上方的第2個(gè)圖標(biāo)“
”,此時(shí)即可獲取“設(shè)置”App界面的布局信息,如右圖所示。
先定一個(gè)小目標(biāo)!掌握Appium與Appium-Python-Client庫(kù)的安裝,能夠完成Appium與Appium-Python-Client庫(kù)的安裝7.3.5安裝Appium與Appium-Python-Client庫(kù)7.3.5安裝Appium與Appium-Python-Client庫(kù)Appium是一個(gè)開(kāi)源的、跨平臺(tái)的移動(dòng)端自動(dòng)化測(cè)試工具,它支持使用WebDriver協(xié)議驅(qū)動(dòng)Android系統(tǒng)、iOS和Windows系統(tǒng)上安裝的應(yīng)用程序。Appium支持多系統(tǒng),(如Windows、Linux)并支持多語(yǔ)言(如Python、Java、JavaScript等)。它允許測(cè)試人員在不同的平臺(tái)使用一套API來(lái)編寫自動(dòng)化測(cè)試腳本,
從而提高了代碼的復(fù)用性。7.3.5安裝Appium與Appium-Python-Client庫(kù)原生應(yīng)用在iOS或Android系統(tǒng)中運(yùn)行的應(yīng)用,可直接通過(guò)應(yīng)用商店下載與安裝。移動(dòng)Web應(yīng)用在移動(dòng)端瀏覽器中可以訪問(wèn)的Web應(yīng)用,Appium支持iOS系統(tǒng)中安裝的Safari和Chrome瀏覽器,以及Android系統(tǒng)中的內(nèi)置瀏覽器。
混合應(yīng)用Appium的測(cè)試對(duì)象用原生代碼封裝網(wǎng)頁(yè)視圖的應(yīng)用程序。7.3.5安裝Appium與Appium-Python-Client庫(kù)訪問(wèn)Appium官方網(wǎng)站,單擊“DownloadAppium”按鈕,進(jìn)入Appium的下載頁(yè)面,在該頁(yè)面單擊“Appium-windows-1.21.0.exe”即可下載Appium的安裝文件,如下圖所示。1.安裝Appium7.3.5安裝Appium與Appium-Python-Client庫(kù)Appium的安裝步驟12347.3.5安裝Appium與Appium-Python-Client庫(kù)Appium安裝完成后,單擊Appium啟動(dòng)頁(yè)面的“啟動(dòng)服務(wù)器v1.21.0”按鈕進(jìn)入服務(wù)器運(yùn)行頁(yè)面,如果輸出“WelcometoAppiumv1.21.0”等啟動(dòng)信息,則說(shuō)明Appium啟動(dòng)成功。7.3.5安裝Appium與Appium-Python-Client庫(kù)在計(jì)算機(jī)中打開(kāi)命令提示符窗口,通過(guò)pip命令安裝Appium-Python-Client庫(kù),具體安裝命令如下。pipinstallAppium-Python-Client1.安裝Appium-Python-Client庫(kù)7.3.5安裝Appium與Appium-Python-Client庫(kù)安裝完Appium-Python-Client庫(kù)后,可以通過(guò)“piplist”命令驗(yàn)證Appium-Python-Client庫(kù)是否安裝成功。
先定一個(gè)小目標(biāo)!掌握App測(cè)試入門示例,能夠編寫App自動(dòng)化測(cè)試腳本7.3.6App測(cè)試入門示例7.3.6App測(cè)試入門示例App測(cè)試的入門示例具體實(shí)現(xiàn)步驟如下。步驟1步驟2步驟3打開(kāi)雷電模擬器。啟動(dòng)Appium服務(wù)器。打開(kāi)App,獲取需要測(cè)試的App包名和界面名。7.3.6App測(cè)試入門示例下面以雷電模擬器中的“設(shè)置”App為例,演示如何打開(kāi)“設(shè)置”App。首先創(chuàng)建一個(gè)Chapter07程序,然后在該程序中創(chuàng)建一個(gè)名為first_app_test.py的文件,在該文件中編寫自動(dòng)化測(cè)試代碼實(shí)現(xiàn)自動(dòng)打開(kāi)“設(shè)置”App界面。importtimefromappiumimportwebdriverdesired_caps=dict()desired_caps['platformName']='Android'desired_caps['platformVersion']='7.1.2'desired_caps['deviceName']='emulator:5554'desired_caps['appPackage']='com.android.settings'desired_caps['appActivity']='.Settings'driver=webdriver.Remote("http://localhost:4723/wd/hub",desired_caps)time.sleep(3)driver.quit()Appium的基本應(yīng)用7.4
先定一個(gè)小目標(biāo)!掌握Appium元素定位的方法,能夠使用Appium定位App界面中的元素7.4.1Appium元素定位7.4.1Appium元素定位如果測(cè)試的App界面元素有resource-id屬性,并且該屬性唯一,則可以調(diào)用find_element_by_id()方法定位元素,該方法的語(yǔ)法格式如下。1.通過(guò)
resource-id定位find_element_by_id(id_)上述方法與selenium中根據(jù)id屬性定位元素的方法相同,但是在Appium中參數(shù)id_的值是屬性resource-id的值。7.4.1Appium元素定位在Appium中通過(guò)class定位的方法與selenium中的一樣,都是通過(guò)調(diào)用find_element_by_class_name()方法定位元素,該方法的語(yǔ)法格式如下。2.通過(guò)class定位find_element_by_class_name(name)上述方法中的參數(shù)name表示元素的class屬性值,需要注意的是,在App的同一個(gè)界面中,通常有多個(gè)class,因此在調(diào)用該方法定位元素時(shí),需要驗(yàn)證元素的class是否唯一。7.4.1Appium元素定位當(dāng)測(cè)試的App界面元素有content-desc屬性時(shí),則可以調(diào)用find_elment_by_accessibility_id()方法定位元素,該方法的語(yǔ)法格式如下。3.通過(guò)
content-desc定位find_element_by_accessibility_id(accessibility_id)上述方法中的參數(shù)accessibility_id的取值是屬性content-desc的值。7.4.1Appium元素定位xpath定位是根據(jù)元素的路徑表達(dá)式選取XML文檔中的節(jié)點(diǎn)或節(jié)點(diǎn)集,如果需要通過(guò)xpath定位元素時(shí),則可以調(diào)用find_element_by_xpath()方法,該方法的語(yǔ)法格式如下。4.通過(guò)
xpath定位find_element_by_xpath(xpath)上述方法中的參數(shù)xpath表示元素的相對(duì)路徑或絕對(duì)路徑。在xpath中,絕對(duì)路徑是從HTML根節(jié)點(diǎn)開(kāi)始,相對(duì)路徑則是從任意節(jié)點(diǎn)開(kāi)始。7.4.1Appium元素定位uiautomator用于定位Android平臺(tái)的App元素,它的定位原理是通過(guò)Android自帶的Androiduiautomator的UISelector類庫(kù)去搜索特定元素,并且支持元素的全部屬性定位。通過(guò)uiautomator定位元素時(shí),可以調(diào)用find_element_by_android_uiautomator()方法,該方法的語(yǔ)法格式如下。5.通過(guò)uiautomator定位find_element_by_android_uiautomator(uia_string:str)上述方法中的參數(shù)uia_string:str表示uiautomator庫(kù)中的元素名稱。7.4.1Appium元素定位下面以雷電模擬器中的“設(shè)置”下面以雷電模擬器中的“設(shè)置”App為例,演示如何調(diào)用Appium元素定位方法來(lái)定位“設(shè)置”App中設(shè)置界面的元素,并對(duì)這些元素進(jìn)行相應(yīng)的單擊與輸入操作,以定位放大鏡圖標(biāo)、輸入框和返回圖標(biāo)等元素為例進(jìn)行演示。首先在Chapter07程序中創(chuàng)建一個(gè)locate_app_element.py文件,在該文件中對(duì)設(shè)置界面元素進(jìn)行定位與操作。7.4.1Appium元素定位importtimefromappiumimportwebdriverdesired_caps=dict()desired_caps['platformName']='Android'desired_caps['platformVersion']='7.1.2'desired_caps['devicesName']='emulator:5554'desired_caps['appPackage']='com.android.settings'desired_caps['appActivity']='.Settings'driver=webdriver.Remote("http://localhost:4723/wd/hub",desired_caps)#通過(guò)resource-id定位放大鏡圖標(biāo)并單擊driver.find_element_by_id("com.android.settings:id/search").click()7.4.1Appium元素定位#通過(guò)class定位輸入框并輸入"hello"input_box=driver.find_element_by_class_name("android.widget.EditText")input_box.send_keys("hello")#通過(guò)xpath定位返回圖標(biāo)并單擊return_lcon=driver.find_element_by_xpath\("http://*[@class='android.widget.ImageButton']")return_lcon.click()#通過(guò)content-desc定位放大鏡圖標(biāo)并單擊driver.find_element_by_accessibility_id("搜索設(shè)置").click()#等待2秒后退出“設(shè)置”App并關(guān)閉驅(qū)動(dòng)time.sleep(2)driver.quit()
先定一個(gè)小目標(biāo)!掌握Appium元素操作的方法,能夠使用Appium操作App界面中的元素7.4.2Appium元素操作7.4.2Appium元素操作在學(xué)習(xí)Web自動(dòng)化測(cè)試時(shí),介紹了基本元素操作的方法,這些方法在Appium中也能使用,例如,調(diào)用click()方法可以點(diǎn)擊元素;調(diào)用send_keys()方法可以輸入文本內(nèi)容;調(diào)用clear()方法可以清除文本內(nèi)容等。在測(cè)試App的過(guò)程中,還會(huì)經(jīng)常使用Appium元素操作的其他方法,例如,當(dāng)測(cè)試App的原生應(yīng)用時(shí),元素的斷言可以調(diào)用is_selected()方法,該方法的作用是判斷元素是否被選中。除此之外,在Appium中還可以通過(guò)獲取元素屬性的操作來(lái)進(jìn)行斷言。7.4.2Appium元素操作Appium元素操作的常用方法和屬性如下表。方法/屬性說(shuō)明is_displayed()該方法用于判斷元素是否可見(jiàn),返回結(jié)果為布爾值is_enabled()該方法用于判斷元素是否可用,返回結(jié)果為布爾值is_selected()該方法用于判斷元素是否被選中,返回結(jié)果為布爾值text該屬性用于獲取元素的text值,返回結(jié)果為元素的text屬性值7.4.2Appium元素操作方法/屬性說(shuō)明tag_name該屬性用于獲取元素的標(biāo)簽名,App中的原生應(yīng)用沒(méi)有標(biāo)簽名,默認(rèn)為Nonesize該屬性用于獲取元素的寬和高,返回結(jié)果為字典類型的數(shù)據(jù)location該屬性用于獲取元素的坐標(biāo),返回結(jié)果為字典類型的數(shù)據(jù)rect該屬性用于獲取元素的寬、高和坐標(biāo),返回結(jié)果為字典類型的數(shù)據(jù)7.4.2Appium元素操作下面以雷電模擬器中的“設(shè)置”App為例,演示常用的方法和屬性。首先在Chapter07程序中創(chuàng)建一個(gè)operate_element.py文件,在該文件中首先判斷“設(shè)置”App中設(shè)置界面的藍(lán)牙“開(kāi)啟/關(guān)閉”按鈕是否可見(jiàn)、可用、被選中,并依次輸出判斷結(jié)果,然后獲取藍(lán)牙“開(kāi)啟/關(guān)閉”按鈕的text值、標(biāo)簽名、寬高、坐標(biāo),并依次輸出獲取結(jié)果。[單擊查看源碼]
先定一個(gè)小目標(biāo)!掌握Appium手勢(shì)操作的方法,能夠?qū)pp界面中的元素進(jìn)行手勢(shì)操作7.4.3Appium手勢(shì)操作7.4.3Appium手勢(shì)操作在使用智能手機(jī)、平板電腦等移動(dòng)設(shè)備時(shí),為了保護(hù)個(gè)人隱私,通常會(huì)設(shè)置鎖屏密碼,如果設(shè)置數(shù)字鎖屏密碼,則需要通過(guò)手指按下屏幕中的數(shù)字按鍵,輸入正確的密碼完成開(kāi)鎖;如果設(shè)置圖案鎖屏密碼,則需要通過(guò)手指完成按下、移動(dòng)、抬起的操作,最后繪制開(kāi)鎖的圖案。除此之外,在使用移動(dòng)設(shè)備時(shí),還會(huì)經(jīng)常進(jìn)行輕敲、長(zhǎng)按、拖曳等操作,在Appium中這些操作統(tǒng)一稱為手勢(shì)操作。7.4.3Appium手勢(shì)操作輕敲操作指的是模擬手指對(duì)某個(gè)元素或點(diǎn)按下并快速抬起的操作,實(shí)現(xiàn)輕敲操作時(shí)需要調(diào)用tap()方法,該方法的語(yǔ)法格式如下所示。1.輕敲操作tap(element=None,x=None,y=None)tap()方法中的參數(shù)element表示被輕敲的元素對(duì)象,參數(shù)x表示被輕敲的點(diǎn)的X軸坐標(biāo),參數(shù)y表示被輕敲的點(diǎn)的Y軸坐標(biāo)。tap()方法中的3個(gè)參數(shù)的默認(rèn)值為None。7.4.3Appium手勢(shì)操作按下操作是模擬手指按壓屏幕上某個(gè)元素或點(diǎn)的操作,實(shí)現(xiàn)按下操作時(shí)需要調(diào)用press()方法,該方法的語(yǔ)法格式如下所示。press(el=None,x=None,y=None)press()方法中的參數(shù)el表示被按下的元素對(duì)象,參數(shù)x表示被按下的點(diǎn)的X軸坐標(biāo),參數(shù)y表示被按下的點(diǎn)的Y軸坐標(biāo)。press()方法中的3個(gè)參數(shù)的默認(rèn)值為None。2.按下操作7.4.3Appium手勢(shì)操作抬起操作是模擬手指離開(kāi)屏幕的操作,按下操作與抬起操作可以組合成輕敲或長(zhǎng)按操作。實(shí)現(xiàn)抬起操作時(shí)需要調(diào)用release()方法,該方法的語(yǔ)法格式如下所示。release()3.抬起操作7.4.3Appium手勢(shì)操作等待操作是模擬手指在屏幕上的暫停操作,例如,按下某個(gè)按鈕后,等待5秒再抬起。等待操作通??梢耘c按下、抬起、移動(dòng)等手勢(shì)操作組合使用。實(shí)現(xiàn)等待操作時(shí)需要調(diào)用wait()方法,該方法的語(yǔ)法格式如下所示。wait(ms=0)wait()方法中的參數(shù)ms表示等待的時(shí)間,單位為毫秒。4.等待操作7.4.3Appium手勢(shì)操作長(zhǎng)按操作是模擬手指按下元素或坐標(biāo)后,等待一段時(shí)間的操作。例如,長(zhǎng)按某個(gè)按鈕一段時(shí)間后會(huì)彈出菜單。實(shí)現(xiàn)長(zhǎng)按操作時(shí)需要調(diào)用long_press()方法,該方法的語(yǔ)法格式如下所示。long_press(el=None,x=None,y=None,duration=1000)long_press()方法中的參數(shù)el表示被長(zhǎng)按的元素對(duì)象,參數(shù)x表示被長(zhǎng)按的點(diǎn)的X軸坐標(biāo),參數(shù)y表示被長(zhǎng)按的點(diǎn)的Y軸坐標(biāo),參數(shù)duration表示長(zhǎng)按時(shí)間,單位為毫秒(ms),默認(rèn)為1000ms。5.長(zhǎng)按操作7.4.3Appium手勢(shì)操作移動(dòng)操作是手指在屏幕上進(jìn)行移動(dòng)的操作,比如,手勢(shì)解鎖手機(jī)屏幕時(shí),需要手指在屏幕上按下再進(jìn)行移動(dòng)操作。實(shí)現(xiàn)移動(dòng)操作時(shí)需要調(diào)用move_to()方法,該方法的語(yǔ)法格式如下所示。move_to(el=None,x=None,y=None)move_to()方法中的參數(shù)el表示被移動(dòng)的元素對(duì)象,參數(shù)x表示被移動(dòng)的點(diǎn)的X軸坐標(biāo),參數(shù)y表示被移動(dòng)的點(diǎn)的Y軸坐標(biāo)。6.移動(dòng)操作7.4.3Appium手勢(shì)操作Appium提供了2個(gè)方法實(shí)現(xiàn)滑動(dòng)操作,這2個(gè)方法分別是swipe()方法和scroll()方法,其中scroll()方法實(shí)現(xiàn)的滑動(dòng)操作也可以稱為滾動(dòng)操作。drag_and_drop(source_element,target_element)drag_and_drop()方法中的參數(shù)source_element表示被拖曳的元素對(duì)象,參數(shù)target_element表示目標(biāo)元素對(duì)象。雖然drag_and_drop()方法與scroll()方法傳遞的參數(shù)都是元素對(duì)象,但是拖曳操作沒(méi)有慣性。7.滑動(dòng)操作7.4.3Appium手勢(shì)操作swipe(start_x,start_y,end_x,end_y,duration=None)start_x:滑動(dòng)操作起始位置的X軸坐標(biāo)。start_y:滑動(dòng)操作起始位置的Y軸坐標(biāo)。end_x:滑動(dòng)操作結(jié)束位置的X軸坐標(biāo)。end_y:滑動(dòng)操作結(jié)束位置的Y軸坐標(biāo)。duration:滑動(dòng)操作持續(xù)的時(shí)間,單位為毫秒(ms),默認(rèn)值為None。該參數(shù)可以降低滑屏的速度與慣性。(1)通過(guò)swipe()方法實(shí)現(xiàn)滑動(dòng)操作通過(guò)swipe()方法實(shí)現(xiàn)的滑動(dòng)操作指的是手指觸摸屏幕后從一個(gè)坐標(biāo)位置滑動(dòng)到另一個(gè)坐標(biāo)位置的操作,該操作可以設(shè)置滑動(dòng)持續(xù)時(shí)間,并且具有一定的慣性。通過(guò)swipe()方法實(shí)現(xiàn)的滑動(dòng)操作是以坐標(biāo)為操作目標(biāo)進(jìn)行移動(dòng)的并且只能是屏幕上兩個(gè)點(diǎn)之間的操作。swipe()方法的語(yǔ)法格式如下所示。7.4.3Appium手勢(shì)操作scroll(source_element,target_element)(2)通過(guò)scroll()方法實(shí)現(xiàn)滑動(dòng)操作通過(guò)scroll()方法實(shí)現(xiàn)的滑動(dòng)操作指的是手指觸摸屏幕后從一個(gè)元素滑動(dòng)到另外一個(gè)元素,直到頁(yè)面自動(dòng)停止的操作,該操作無(wú)法設(shè)置滑動(dòng)的持續(xù)時(shí)間,但是具有一定的慣性。與swipe()方法實(shí)現(xiàn)滑動(dòng)操作不同的是,scroll()方法是通過(guò)控件確定滑動(dòng)的起點(diǎn)和終點(diǎn)的。scroll()方法的語(yǔ)法格式如下所示。scroll()方法中的參數(shù)source_element表示被滑動(dòng)的元素對(duì)象,參數(shù)target_element表示目標(biāo)元素對(duì)象。7.4.3Appium手勢(shì)操作拖曳操作指的是將一個(gè)元素拖動(dòng)到另外一個(gè)元素的位置,也可以將一個(gè)元素拖動(dòng)到另外一個(gè)元素中。拖曳操作是以控件為操作目標(biāo)進(jìn)行移動(dòng)的,拖曳操作可以通過(guò)drag_and_drop()方法來(lái)實(shí)現(xiàn),該方法的語(yǔ)法格式如下所示。drag_and_drop(source_element,target_element)drag_and_drop()方法中的參數(shù)source_element表示被拖曳的元素對(duì)象,參數(shù)target_element表示目標(biāo)元素對(duì)象。雖然drag_and_drop()方法與scroll()方法傳遞的參數(shù)都是元素對(duì)象,但是拖曳操作沒(méi)有慣性。8.拖曳操作7.4.3Appium手勢(shì)操作注意在調(diào)用swipe()方法實(shí)現(xiàn)滑動(dòng)操作時(shí),如果滑動(dòng)的持續(xù)時(shí)間足夠長(zhǎng),則滑動(dòng)效果會(huì)與drag_and_drop()方法實(shí)現(xiàn)的拖曳效果一樣。7.4.3Appium手勢(shì)操作下面以雷電模擬器(分辨率為1080像素x1920像素)中的“設(shè)置”App為例,演示如何在程序中調(diào)用Appium手勢(shì)操作的方法。首先在Chapter07程序中創(chuàng)建operation_gesture.py文件,然后在該文件中實(shí)現(xiàn)以下操作。長(zhǎng)按設(shè)置界面右上方的搜索圖標(biāo)。在設(shè)置界面滑動(dòng)屏幕找到安全選項(xiàng)并點(diǎn)擊。在安全界面點(diǎn)擊屏幕鎖定。在選擇屏幕鎖定方式界面點(diǎn)擊圖案選項(xiàng)。在繪制解鎖圖案界面中繪制“L”解屏圖案,等待5秒后退出雷電模擬器。[單擊查看源碼]實(shí)例:使用Appium測(cè)試“學(xué)車不”App7.5
先定一個(gè)小目標(biāo)!掌握“學(xué)車不”App的測(cè)試環(huán)境
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年贛州貨運(yùn)從業(yè)資格證模擬考試題
- 2025年荊門駕??荚囏涍\(yùn)從業(yè)資格證考試題庫(kù)
- 2025年內(nèi)蒙古貨運(yùn)從業(yè)資格證模擬考試0題及答案解析
- 2025年安徽考貨運(yùn)資格證考試內(nèi)容
- 電力服務(wù)外包合同(2篇)
- 2024-2025學(xué)年高中物理第一章運(yùn)動(dòng)的描述第2節(jié)位置變化的描述-位移課時(shí)作業(yè)含解析教科版必修1
- 2024-2025學(xué)年高中物理第二章力第1節(jié)第2節(jié)重力課時(shí)作業(yè)含解析教科版必修1
- 公司部門年度工作計(jì)劃范文
- 幼兒園中班下學(xué)期德育工作計(jì)劃范文
- 招標(biāo)方案之施工、監(jiān)理個(gè)人招標(biāo)方案
- 中國(guó)氫內(nèi)燃機(jī)行業(yè)發(fā)展環(huán)境、市場(chǎng)運(yùn)行格局及前景研究報(bào)告-智研咨詢(2024版)
- 《自然保護(hù)區(qū)劃分》課件
- 2025年普通卷釘項(xiàng)目可行性研究報(bào)告
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年參考題庫(kù)含答案解析
- 上海鐵路局招聘筆試沖刺題2025
- 2025年建筑施工春節(jié)節(jié)后復(fù)工復(fù)產(chǎn)工作專項(xiàng)方案
- 學(xué)校食堂餐廳管理者食堂安全考試題附答案
- 《商用車預(yù)見(jiàn)性巡航系統(tǒng)技術(shù)規(guī)范》
- 國(guó)旗班指揮刀訓(xùn)練動(dòng)作要領(lǐng)
- 春季安全開(kāi)學(xué)第一課
- 植物芳香油的提取 植物有效成分的提取教學(xué)課件
評(píng)論
0/150
提交評(píng)論