手工測(cè)試的問題
手工操作點(diǎn)點(diǎn)點(diǎn)借助的是人腦的反應(yīng)和聰明,為什么不用手點(diǎn)了呢?手會(huì)酸,腦子會(huì)累,會(huì)占據(jù)太多的時(shí)間。想一想為什么會(huì)學(xué)習(xí)自動(dòng)化測(cè)試。我們都希望通過工具來解放我們的雙手,大腦,眼睛。
為什么用自動(dòng)化
自動(dòng)化是指機(jī)器設(shè)備、系統(tǒng)或過程(生產(chǎn)、管理過程)在沒有人或較少人的直接參與下,按照人的要求,經(jīng)過自動(dòng)檢測(cè)、信息處理、分析判斷、操縱控制,實(shí)現(xiàn)預(yù)期的目標(biāo)的過程。
平時(shí)我們會(huì)接觸很多的自動(dòng)化工具,比如按鍵精靈自動(dòng)加血加藍(lán),搜索引擎,以前找一篇文章要把所有的資料攤開,一頁(yè)一頁(yè)翻,現(xiàn)在直接列出來了。可以再編輯器里實(shí)現(xiàn)以下搜索。
使用了自動(dòng)化測(cè)試軟件以后還是覺得不夠,因?yàn)橛械臏y(cè)試需求比較復(fù)雜,包含幾十上百個(gè)步驟,用軟件測(cè)不出來,就算能實(shí)現(xiàn)也比較麻煩,這時(shí)候我們面臨的問題就是:用軟件定制化不高,對(duì)于復(fù)雜場(chǎng)景實(shí)現(xiàn)不了。
代碼的定制性就非常高了,想實(shí)現(xiàn)什么功能可以自己去實(shí)現(xiàn)。到后面實(shí)現(xiàn)完以后那些不會(huì)編程的測(cè)試人員怎么辦?不能讓他們閑著,就要編寫測(cè)試平臺(tái),讓不太會(huì)代碼的同學(xué)也可以輕松使用。
自動(dòng)化測(cè)試是通過使用機(jī)器系統(tǒng)來鑒定軟件的正確性、完整性、安全性和質(zhì)量。我們的目標(biāo)是通過編寫代碼,能夠代替我們?nèi)粘S檬秩ゲ僮鞯臏y(cè)試工作,要求你盡可能的掌握編程語(yǔ)言和相關(guān)代碼庫(kù)的使用和實(shí)現(xiàn)原理。
這些都非常容易成為面試中的??紗栴}。這些高頻問題我平時(shí)也比較喜歡收集,有一線大廠一些大佬的面試心得,也有一些剛?cè)胄袝r(shí)候的面試題,特意整理了一下,有需要的文末關(guān)注關(guān)注我微信公眾號(hào)我發(fā)給你。
選擇合適的測(cè)試方式
自動(dòng)化測(cè)試的目的不是完全取代手工測(cè)試,而是解放手工,讓人不再每天重復(fù)做枯燥的點(diǎn)點(diǎn)點(diǎn)工作,把這些枯燥的工作交給自動(dòng)化程序執(zhí)行,人則轉(zhuǎn)而去做更有創(chuàng)造性的工作。
在一個(gè)項(xiàng)目當(dāng)中的測(cè)試工作主要分為以下幾類:
- 1、探索式的手工測(cè)試
- 2、依賴腳本的手工測(cè)試
- 3、生成腳本的測(cè)試工具
- 4、代碼方式
大多數(shù)情況下,都是這四種方式的組合,但是我們?nèi)绾畏峙溥@ 4 種方式呢?有沒有一種模式讓我們合理的安排這四種方式?
什么時(shí)候引入自動(dòng)化測(cè)試
自動(dòng)化測(cè)試不是憑空來的,它需要建立在手工測(cè)試的基礎(chǔ)上。通常來說,在引入自動(dòng)化測(cè)試之前,測(cè)試團(tuán)隊(duì)已經(jīng)實(shí)施過幾輪手工測(cè)試。
這種手工測(cè)試可以用探索式的方式,更多的是依賴腳本的手工測(cè)試。我們會(huì)根據(jù)用例設(shè)計(jì)方法設(shè)計(jì)每一個(gè)用例的操作腳本,然后按照腳本執(zhí)行每個(gè)用例。
當(dāng)用例越來越多,而產(chǎn)品迭代周期不變的情況下,總有一天,現(xiàn)有團(tuán)隊(duì)無法在上線之前把所有的用例執(zhí)行完,我們需要更有效率的用例執(zhí)行方式。 同時(shí),測(cè)試人員總是需要重復(fù)執(zhí)行同樣的用例,時(shí)間長(zhǎng)了會(huì)產(chǎn)生疲憊感,我們也會(huì)想辦法把一些枯燥的工作交給自動(dòng)化程序去執(zhí)行。
那么,什么時(shí)候引入自動(dòng)化測(cè)試呢?其實(shí)就是當(dāng)測(cè)試團(tuán)隊(duì)已經(jīng)很難應(yīng)付這么多用例的情況下,通過挑選一些適合交給自動(dòng)化程序執(zhí)行的用例出來,從而過渡到自動(dòng)化測(cè)試階段。
以Jmeter為代表的測(cè)試工具
jmeter 在測(cè)試界有很高的地位,他的表現(xiàn)穩(wěn)定,擴(kuò)展能力強(qiáng),可以支持接口測(cè)試、網(wǎng)頁(yè)測(cè)試,性能測(cè)試等多方位的測(cè)試,而且操作也不是很復(fù)雜。
因此,很多測(cè)試團(tuán)隊(duì)在用代碼去搭建測(cè)試框架前,一般都會(huì)先嘗試用 Jmeter 來做自動(dòng)化測(cè)試。具體的操作方式在這里我不展開講了,感興趣的私聊吧。
如果是很小型的測(cè)試團(tuán)隊(duì),沒有太多技術(shù)儲(chǔ)備去做代碼維護(hù),用測(cè)試框架或者現(xiàn)有平臺(tái)是比較合適的方式。
但是這種方式對(duì)于測(cè)試從業(yè)人員不太友好,比如換了一家公司,這家公司不在用之前的工具了,那在找工作的時(shí)候會(huì)遇到比較大的麻煩。在技術(shù)領(lǐng)域,每天都有新的工具冒出來,挑戰(zhàn)現(xiàn)有工具的市場(chǎng)地位,每家公司傾向的技術(shù)選型都不一樣,要找到一種通用的方式來應(yīng)對(duì)面試和招聘,是測(cè)試人員面臨的難題。
我個(gè)人的想法是,熟練掌握一兩種市場(chǎng)占有率非常高的測(cè)試工具,以后遇到了新工具,可以簡(jiǎn)單學(xué)一下,除非是現(xiàn)有公司需要,否則不用花太多心思在市場(chǎng)占有率很低的新奇工具上,他們可能會(huì)提供很多看起來很厲害的功能,可以學(xué)習(xí)他們的思路,但是很有可能在公司里用不到。
編程能力既重要又不重要
編程,可以說是解決自動(dòng)化測(cè)試的萬(wàn)金油方式。編程提供的靈活性,是所有現(xiàn)有工具都無法比擬的,只要技術(shù)允許,你幾乎可以通過編程實(shí)現(xiàn)任何的測(cè)試工具,覆蓋任何的測(cè)試場(chǎng)景。
那為什么又說編程又不重要呢?因?yàn)闊o論通過什么方式,自動(dòng)化的目的都是為了解放人力,如果一個(gè)測(cè)試團(tuán)隊(duì)花了很多精力編程,覆蓋多種測(cè)試場(chǎng)景,投入大量的人力物力和金錢,但是效果和之前沒什么兩樣,那反而是對(duì)人才的束縛,而不是解放人力。
在編程領(lǐng)域,你可以使用已有的框架,站在巨人的肩膀上,實(shí)現(xiàn)自動(dòng)化測(cè)試,比如可以用 selenium 實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)化測(cè)試。 如果有一天 Selenium 不再流行,你可以把它的實(shí)現(xiàn)思路快速的轉(zhuǎn)移到其他的框架中,只要有編程能力,一般都不要慌。
為什么是Selenium
目前,在web自動(dòng)化測(cè)試中,用得較多的主要有以下框架:
- Selenium
- Cypress
- Playwright
- Puppeter
這些框架或者工具我都接觸過,機(jī)會(huì)合適,我都會(huì)去編寫具體的操作筆記。 雖然有很多的挑戰(zhàn)者,但是Selenium還是用得最多的,他的技術(shù)架構(gòu)也在不停的演化。有的人說selenium過時(shí)了,他們說的都是對(duì)的,它確實(shí)有點(diǎn)老,不過如果讓我選型,我還是會(huì)優(yōu)先選擇 selenium。
在學(xué)它之前,只需要問幾個(gè)問題:
- Selenium 能解決 web 自動(dòng)化測(cè)試問題嗎?
- Selenium 容易學(xué)嗎?
- Selenium 資料豐富嗎?
- Selenium 方便遷移和擴(kuò)展嗎?
- Selenium 方便團(tuán)隊(duì)協(xié)作嗎?
我都能得到肯定的答案。當(dāng)然它也有些缺點(diǎn),但這些缺點(diǎn)現(xiàn)在都無傷大雅,Selenium 目前的缺點(diǎn):
- 截圖、錄制、回溯不方便
- 沒有流量攔截
- 沒有 mock
- 在反爬中會(huì)被識(shí)別,當(dāng)然其他工具也是。
無論如何,Selenium 只是一個(gè)自動(dòng)化輔助工具,需要對(duì)他有清晰的認(rèn)識(shí): selenium只是一個(gè)瀏覽器自動(dòng)化工具需要結(jié)合測(cè)試工具使用。 selenium 無法提高你的測(cè)試水平 幫助你快速定位bug
沒有最好的技術(shù),只有合適的技術(shù)
我大概列舉了一下平時(shí)技術(shù)選型時(shí)需要考慮的問題,一個(gè)技術(shù),是不是新,是不是好看當(dāng)然可以做為參考指標(biāo),不過也可以看點(diǎn)更實(shí)際的: 是否能解決你的問題
- 跑 Demo
- 環(huán)境搭建
- 學(xué)習(xí)成本低
- 友好的文檔
- 豐富的教程
- 完善的解決方案
- 大量的案例
- 完善的生態(tài)
- 社區(qū)活躍
- 更新活躍
- API成熟
- 企業(yè)很愿意用,大量招聘崗位
- 方便遷移和擴(kuò)展
- 支持多平臺(tái)
- 支持多語(yǔ)言
- 是否開源
- 方便團(tuán)隊(duì)協(xié)作
- 手工測(cè)試團(tuán)隊(duì)
- 開發(fā)團(tuán)隊(duì)
- 你能接受他的缺點(diǎn)嗎
- 沒有十全十美的技術(shù)
- 沒有最好的測(cè)試工具,沒有最好的測(cè)試語(yǔ)言
- 只有適合的場(chǎng)景
web自動(dòng)化測(cè)試效率不高
對(duì)整個(gè)web端進(jìn)行自動(dòng)化測(cè)試主要的目的是更貼近用戶使用場(chǎng)景,因?yàn)榻缑媸怯脩糁苯雍蛙浖佑|的載體。用戶幾乎所有的操作都是通過 ui 實(shí)現(xiàn)的,因此 ui 測(cè)試最能模擬實(shí)際的用戶使用情況,進(jìn)行 ui 測(cè)試需要站在用戶的立場(chǎng),考慮用戶的痛點(diǎn),模擬用戶的行為進(jìn)行操作。 用戶使用產(chǎn)品的功能,是想獲得某種能力,因此應(yīng)該通過功用設(shè)計(jì)測(cè)試用例,而不是單純的從產(chǎn)品特性和說明來考慮。
web端做測(cè)試有兩個(gè)問題,第一是前端界面變化快,第二是執(zhí)行的效率低。通過現(xiàn)有的技術(shù)手段只能做到優(yōu)化,卻不能避免這兩個(gè)問題, 在做自動(dòng)化測(cè)試的時(shí)候要尤其注意。
最后能給予你助力的教程!
這份資料,對(duì)于【軟件測(cè)試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)資料,為了更好地整理每個(gè)模塊,我也參考了很多網(wǎng)上的優(yōu)質(zhì)博文和項(xiàng)目,力求不漏掉每一個(gè)知識(shí)點(diǎn),這些資料也陪伴了我走過最艱難的路,希望也能幫助到你?。?!文章來源:http://www.zghlxwxcb.cn/news/detail-810794.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-810794.html
到了這里,關(guān)于為什么用Selenium做自動(dòng)化測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!