日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
在我有限的軟件測(cè)試經(jīng)歷里,一段專職的自動(dòng)化測(cè)試經(jīng)驗(yàn)總結(jié)

在我有限的軟件測(cè)試經(jīng)歷里,曾有一段專職的自動(dòng)化測(cè)試經(jīng)歷。

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)臨潭免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

接觸自動(dòng)化

那時(shí)第一次上手自動(dòng)化測(cè)試,團(tuán)隊(duì)里用的是Python,接口自動(dòng)化測(cè)試的框架是requests+Excel+Jenkins,APP自動(dòng)化測(cè)試的框架是Appium。

整個(gè)公司當(dāng)時(shí)有一款已有的APP,因此在試用期內(nèi),我的任務(wù)是完成對(duì)已有APP的自動(dòng)化腳本編寫和調(diào)試。

記得當(dāng)時(shí)剛開始去,很沒有經(jīng)驗(yàn),在跟功能測(cè)試同學(xué)了解了業(yè)務(wù)之后,只顧埋著頭部署環(huán)境,突然有一天,測(cè)試主管問(wèn)我,是否要輸出一份自動(dòng)化測(cè)試用例。我恍然大悟,于是把功能測(cè)試的用例拿來(lái)參考了一下,對(duì)用例做了一次篩選,輸出了一份自動(dòng)化測(cè)試用例(現(xiàn)在回過(guò)頭看,當(dāng)時(shí)的做法真的很草率,既沒有一個(gè)自動(dòng)化測(cè)試計(jì)劃,也沒有對(duì)自動(dòng)化用例做評(píng)審,只知道功能測(cè)試同學(xué)的痛點(diǎn)就是迭代太快,回歸來(lái)不及做)。

用例輸出后,大概花了一個(gè)月的時(shí)間,完成了環(huán)境部署和基本用例腳本的編寫,那時(shí)候大概實(shí)現(xiàn)了四五十個(gè)場(chǎng)景,并且完成了自動(dòng)發(fā)送測(cè)試報(bào)告。剩下的兩個(gè)月,我就一步一步的將場(chǎng)景擴(kuò)充為二百多個(gè)。

其間也遇到了一些問(wèn)題,比如登錄圖形驗(yàn)證碼的獲取,不過(guò)使用OCR圖形識(shí)別很快就得到了解決,同事也有使用云打碼一類的平臺(tái)。

最大的一個(gè)問(wèn)題是,當(dāng)APP版本更新迭代后,固定頁(yè)面所有的id、class等屬性都會(huì)變化,因?yàn)檫@些都是寫死在代碼里的,如果要更改意味著每個(gè)page都要更改,工作量非常之大,而且獲取這些屬性還需要借助一些工具,如UI AuTomatorviewer 、Appium自帶的Inspector。

在忙碌了一段時(shí)間后,先找到一個(gè)安卓開發(fā),跟他排查了一下,他也找不到問(wèn)題所在,后面又找了另一個(gè)開發(fā),他排查之后發(fā)現(xiàn)是安卓混淆打包的問(wèn)題,他給我出了一個(gè)不做混淆打包的APP,這才解決了這一問(wèn)題。

另外一個(gè)比較大的問(wèn)題是,APP自動(dòng)化測(cè)試的運(yùn)行時(shí)間非常久,我們兩三百條用例,如果加上失敗重試,大概要跑四五個(gè)小時(shí),而且還會(huì)出現(xiàn)中間腳本出錯(cuò)運(yùn)行停止的問(wèn)題。

記得一個(gè)印象比較深的事情是,我們第二天要發(fā)版了,頭一天下班前我開始跑腳本,等到晚上我一直沒有收到測(cè)試報(bào)告的郵件,于是晚上十點(diǎn)多趕回公司,發(fā)現(xiàn)自動(dòng)化腳本已經(jīng)停止了。

對(duì)于時(shí)間久的問(wèn)題,后面我嘗試引入U(xiǎn)I AuTomator2(以下簡(jiǎn)稱u2)框架來(lái)代替Appium,毋庸置疑,u2在執(zhí)行速度上有很大優(yōu)勢(shì)。

我曾經(jīng)對(duì)比過(guò)這兩個(gè)框架,同一個(gè)場(chǎng)景,Appium需要耗時(shí)60多秒的,u2只需要20多秒,足足節(jié)省了三分之二的時(shí)間。

但隨之而來(lái)新的問(wèn)題是,u2不太穩(wěn)定,Appium中查找元素有用到顯式等待、隱式等待和強(qiáng)制等待,而u2中看似不需要這些,實(shí)際上多跑幾遍場(chǎng)景就會(huì)發(fā)現(xiàn)u2執(zhí)行太快會(huì)找不到元素,因此還得手動(dòng)加上強(qiáng)制等待。這樣一來(lái)時(shí)間并沒有節(jié)省多少。

這個(gè)問(wèn)題當(dāng)時(shí)沒有得到解決,反而是在我離職后的一段時(shí)間里,通過(guò)學(xué)習(xí)pytest-xdist的文檔,發(fā)現(xiàn)pytest-xdist可以基于ssh和socket來(lái)實(shí)現(xiàn)分布式執(zhí)行。

舉個(gè)例子,假如有200條場(chǎng)景,同時(shí)啟動(dòng)2個(gè)執(zhí)行機(jī),那么就會(huì)往執(zhí)行機(jī)-1上推送100個(gè)場(chǎng)景,往執(zhí)行機(jī)-2上推送另外100個(gè)場(chǎng)景,最終兩個(gè)執(zhí)行機(jī)的測(cè)試報(bào)告會(huì)集成為一個(gè)報(bào)告。這樣的解決方案如果當(dāng)時(shí)能應(yīng)用到實(shí)踐中,那么APP自動(dòng)化測(cè)試時(shí)間過(guò)長(zhǎng)的問(wèn)題會(huì)得到完美解決,唯一需要注意的是,每個(gè)場(chǎng)景要獨(dú)立,不能相互依賴。

話說(shuō)回來(lái),APP自動(dòng)化測(cè)試做下來(lái)好像沒有產(chǎn)生多少收益,因?yàn)橹挥形乙粋€(gè)人開發(fā)和維護(hù),所以到了維護(hù)階段就顯得耗時(shí)耗力,特別是本來(lái)一個(gè)固定的頁(yè)面改了或者中間插入了一套新的邏輯,就意味著相當(dāng)多的頁(yè)面需要調(diào)整。

第二次接觸項(xiàng)目

差不多這樣做了幾個(gè)月后,公司開始立新的項(xiàng)目,新的項(xiàng)目一開始就下決心要做接口測(cè)試,因此我又介入到這個(gè)項(xiàng)目中,參加立項(xiàng)會(huì)議、參加技術(shù)評(píng)審,了解了要做哪些,并且接口文檔怎么管理,接口怎么定義等等之后,就開始了新項(xiàng)目的接口測(cè)試。

那個(gè)階段,使用requests讀取Excel的方式在接口不多的時(shí)候還挺方便,因?yàn)榇a框架比較固定,只需要Excel里修改參數(shù)。

但隨著接口越來(lái)越多,也意味著接口之間的依賴越來(lái)越多,Excel管理簡(jiǎn)直就是災(zāi)難,在Excel里要理清不同接口的依賴關(guān)系,是非常頭痛的一件事。

后來(lái)我使用Postman做了一些快速測(cè)試,等待時(shí)間充裕的時(shí)候,再慢慢把整個(gè)主流程的接口測(cè)試加上。在接口測(cè)試階段,前前后后發(fā)現(xiàn)了一些問(wèn)題,但很大的不足是沒有解決Excel存儲(chǔ)數(shù)據(jù)的問(wèn)題和沒有做數(shù)據(jù)正確性的校驗(yàn)。

而且我們還是和支付相關(guān)的業(yè)務(wù),這使得接口測(cè)試結(jié)果只能保證服務(wù)是正常的,返回碼是正常的,但是數(shù)據(jù)是否正確無(wú)從得知。

直到后來(lái),自動(dòng)化團(tuán)隊(duì)換了一批人,新來(lái)的同事開始推行Java棧,使用Springboot+httpclient+Maven來(lái)作為接口自動(dòng)化框架,基本舍棄了之前的Python自動(dòng)化腳本。

那幾個(gè)月好幾位同事投入到同一個(gè)項(xiàng)目的接口自動(dòng)化腳本的編寫中,對(duì)比之前我一個(gè)人負(fù)責(zé)兩個(gè)項(xiàng)目的自動(dòng)化,情況的確好了很多。

這個(gè)自動(dòng)化也是基于場(chǎng)景的,有做正常和異常輸入的校驗(yàn),以及最后的入庫(kù)檢查,腳本量非常大,所有異常場(chǎng)景的請(qǐng)求數(shù)據(jù)和期望結(jié)果都是入庫(kù)的,后續(xù)請(qǐng)求的時(shí)候,先從數(shù)據(jù)庫(kù)拿到請(qǐng)求數(shù)據(jù)發(fā)送請(qǐng)求,得到響應(yīng)結(jié)果再和數(shù)據(jù)庫(kù)的期望結(jié)果做比較,正常場(chǎng)景需要手動(dòng)寫邏輯,響應(yīng)結(jié)果里重要字段的值和數(shù)據(jù)庫(kù)里的值做比較。

那個(gè)時(shí)候,考慮了很多前端無(wú)法測(cè)到的復(fù)雜的場(chǎng)景,并發(fā)、冪等之類的,因此發(fā)現(xiàn)的缺陷更有意義一點(diǎn),但是維護(hù)成本依然比較高。

自動(dòng)化是什么?

最近的一兩年,我有時(shí)會(huì)想到自動(dòng)化測(cè)試是什么?自動(dòng)化測(cè)試本來(lái)是為提高測(cè)試效率而生,有時(shí)候使用不得當(dāng),卻成為測(cè)試活動(dòng)中的累贅。

但不可否認(rèn)的是,自動(dòng)化測(cè)試仍然是行之有效的,區(qū)別只是使用的動(dòng)機(jī)和使用的方式,在我看來(lái),做好自動(dòng)化測(cè)試需要規(guī)避以下幾點(diǎn):

1. 不要為了自動(dòng)化為自動(dòng)化

自動(dòng)化測(cè)試不能基于KPI,而要看當(dāng)前的項(xiàng)目適不適合做自動(dòng)化,有沒有足夠資源的投入和外部團(tuán)隊(duì)的配合。

2. 自動(dòng)化不是萬(wàn)能的

不要貪多求全,妄想所有的測(cè)試場(chǎng)景都能通過(guò)自動(dòng)化實(shí)現(xiàn),尤其是更新迭代快的項(xiàng)目。能把穩(wěn)定的功能實(shí)現(xiàn),并且做好回歸 ,已經(jīng)足夠了。

3. 自動(dòng)化的場(chǎng)景

一種是基本場(chǎng)景,另一種可以是前端無(wú)法實(shí)現(xiàn)的場(chǎng)景。

而對(duì)于接口中無(wú)窮無(wú)盡的字段進(jìn)行嚴(yán)苛的異常校驗(yàn),來(lái)保證足夠程序足夠健壯,有時(shí)候反而沒有那么必要。

因?yàn)殚_發(fā)周期短的公司一周好幾個(gè)版本,開發(fā)根本就沒時(shí)間對(duì)一些不太重要的字段做異常處理,當(dāng)然重要字段的類型、長(zhǎng)度、非空校驗(yàn)等還是要做。

4. 對(duì)自動(dòng)化的認(rèn)知

有些同行認(rèn)為,自動(dòng)化就是為了發(fā)現(xiàn)缺陷的,但是自動(dòng)化發(fā)現(xiàn)的缺陷根本比不上功能測(cè)試,發(fā)現(xiàn)不了缺陷的自動(dòng)化就沒有意義嗎?

事實(shí)并非如此,尤其是一些回歸測(cè)試的自動(dòng)化,一方面是為了提高效率,一方面是為了增強(qiáng)上線前團(tuán)隊(duì)的信心。

5. 團(tuán)隊(duì)人才的培養(yǎng)

遇到了一些公司,好不容易做起了自動(dòng)化,做得也不錯(cuò),等到負(fù)責(zé)人離職之后,就沒人維護(hù)了,然后再招一些自動(dòng)化測(cè)試人員另起爐灶,反反復(fù)復(fù),歸根結(jié)底是沒有人做技術(shù)備份。


分享名稱:在我有限的軟件測(cè)試經(jīng)歷里,一段專職的自動(dòng)化測(cè)試經(jīng)驗(yàn)總結(jié)
文章地址:http://www.5511xx.com/article/dphgode.html