今天小楓跟大家介紹UI測(cè)試、接口測(cè)試、單元測(cè)試主要內(nèi)容
UI測(cè)試【Selenium】
UI測(cè)試是最接近軟件真實(shí)用戶使用行為的測(cè)試類(lèi)型。通常是模擬真實(shí)用戶使用軟件的行為,即模擬用戶在軟件界面上的各種操作,并驗(yàn)證這些操作對(duì)應(yīng)的結(jié)果是否正確。
這是最基本的一些Selenium的指令
```
#瀏覽器操作
#瀏覽器最大化
driver.maximize_window()
#設(shè)置瀏覽器寬和高
driver.set_window_size(400,800)
#控制瀏覽器前進(jìn)、后退
driver.forward()
driver.back()
#簡(jiǎn)單對(duì)象的定位
find_element_by_id()#----唯一
find_element_by_name()#----唯一
find_element_by_class_name()#class定位
find_element_by_xpath()#元素定位
find_element_by_css_selector()
#鼠標(biāo)事件
#ActionChains類(lèi)用來(lái)操作鼠標(biāo)事件
context_click()#------------------鼠標(biāo)右擊
double_click()#------------------鼠標(biāo)雙擊
click()#-----------------------------鼠標(biāo)點(diǎn)擊
click_and_hold()#---------------按住鼠標(biāo)左鍵不動(dòng)
move_to_element(目標(biāo)元素)#------------------------移動(dòng)到某個(gè)元素
move_by_offset(xoffset,yoffset)#--------------------移動(dòng)到某個(gè)坐標(biāo)
drag_and_drop(source,target)#------將元素從起點(diǎn)source移動(dòng)到終點(diǎn)target
drag_and_drop_by_offset(source,xoffset,yoffset)#-------按照坐標(biāo)移動(dòng)
release()# 在某個(gè)元素上釋放鼠標(biāo)
```
接口測(cè)試【API測(cè)試】
API測(cè)試,主要針對(duì)的是各模塊暴露的接口,通常采用灰盒測(cè)試方法。首先以黑盒方式設(shè)計(jì)如何調(diào)用API的測(cè)試用例,同時(shí)在測(cè)試執(zhí)行過(guò)程中統(tǒng)計(jì)代碼覆蓋率,然后根據(jù)代碼覆蓋率情況來(lái)補(bǔ)充更多、更有針對(duì)性的測(cè)試用例。
單元測(cè)試
單元測(cè)試,屬于白盒測(cè)試的范疇,通常由開(kāi)發(fā)工程師自己完成,越早發(fā)現(xiàn)缺陷其修復(fù)成本越低。
如果對(duì)軟件測(cè)試、接口測(cè)試、自動(dòng)化測(cè)試、面試經(jīng)驗(yàn)交流。感興趣可以加軟件測(cè)試交流:1140267353,還會(huì)有同行一起技術(shù)交流(免費(fèi)學(xué)習(xí)資料)。
```
#內(nèi)存的主要組成索引:
ONative Heap: Native#代碼分配的內(nèi)存,虛擬機(jī)和Adoid框架本身也會(huì)分配
ODalvik Heap: Java #代碼分配的對(duì)象
ODalvik Other:#類(lèi)的數(shù)據(jù)結(jié)構(gòu)和索引
0 so mmap: Native #代碼和常量
0 dex mmap: Java #代碼和常量
#內(nèi)存工具:
口Android Studio/Memory Monitor#觀察Dalvik內(nèi)存
0 dumpsys meminfo#觀察整體內(nèi)存
0 smaps#觀察整體內(nèi)存的詳細(xì)組成
0 Eclipse Memory Analyzer#詳細(xì)分析Dalvik內(nèi)存
```
?每種測(cè)試的優(yōu)缺點(diǎn)
一、UI自動(dòng)化測(cè)試
大家所在公司都屬于互聯(lián)網(wǎng)公司,最大的特點(diǎn)就是快——產(chǎn)品需要不停的迭代,迭代時(shí)間基本在15天左右。
UI自動(dòng)化測(cè)試的優(yōu)點(diǎn)是,能夠?qū)嶋H模擬真實(shí)用戶的行為,直接驗(yàn)證軟件的商業(yè)價(jià)值;缺點(diǎn)是用例的維護(hù)和執(zhí)行代價(jià)很大。另外,UI自動(dòng)化測(cè)試的穩(wěn)定性問(wèn)題,是長(zhǎng)期以來(lái)阻礙GUI測(cè)試發(fā)展的重要原因。
在快速迭代的情況下,頁(yè)面的改動(dòng)可能會(huì)很頻繁,而UI自動(dòng)化測(cè)試本身基于頁(yè)面元素,前端小小的改動(dòng)可能需要測(cè)試的大大改。
二、接口測(cè)試
相比于UI自動(dòng)化測(cè)試,接口測(cè)試更穩(wěn)定,更具有價(jià)值。
效率。接口測(cè)試是通過(guò)測(cè)試數(shù)據(jù)驗(yàn)證請(qǐng)求【request】與響應(yīng)【response】是否符合預(yù)期。因此,接口測(cè)試開(kāi)發(fā)和調(diào)試的效率會(huì)比ui自動(dòng)化測(cè)試高很多。
穩(wěn)定性。如果接口改動(dòng),那基本屬于業(yè)務(wù)重新設(shè)計(jì)。所以接口測(cè)試用例執(zhí)行的穩(wěn)定性很高。
實(shí)用性。UI自動(dòng)化測(cè)試驗(yàn)證的主要是頁(yè)面顯示,而接口測(cè)試驗(yàn)證的主要是數(shù)據(jù)。在當(dāng)前開(kāi)發(fā)水平下,功能測(cè)試基本可以完全驗(yàn)證頁(yè)面顯示的問(wèn)題,所以UI測(cè)試有點(diǎn)類(lèi)似于“這些沒(méi)問(wèn)題了,為了保證一直沒(méi)問(wèn)題,所以要寫(xiě)UI自動(dòng)化,每天去執(zhí)行”。接口測(cè)試則是對(duì)接口返回?cái)?shù)據(jù)的驗(yàn)證,開(kāi)發(fā)在開(kāi)發(fā)新的接口時(shí)涉及到接口互相的調(diào)用,中間難免出現(xiàn)比如數(shù)據(jù)類(lèi)型、key-value不匹配的情況,因此在實(shí)用性考慮,接口測(cè)試實(shí)用性更高。
三、單元測(cè)試
我們?cè)谧龇枪δ軠y(cè)試時(shí),可以利用UI自動(dòng)化測(cè)試,覆蓋產(chǎn)品主要或者說(shuō)關(guān)鍵流程(包含兼容性測(cè)試),也就是說(shuō)只要保證主要流程不出錯(cuò),剩下的即使有了問(wèn)題也不會(huì)影響產(chǎn)品的正常使用。把時(shí)間更多的放在接口測(cè)試用例的設(shè)計(jì)和實(shí)現(xiàn)上,保證數(shù)據(jù)的準(zhǔn)確性。單元測(cè)試則可以根據(jù)情況選擇時(shí)間分配。
以上僅供參考和借鑒,希望對(duì)你有所幫助!
小楓文章整理不易,歡迎各位朋友點(diǎn)贊!