大理帕囤电子有限公司

關(guān)于我們
Q1:在選擇自動化測試工具時,您主要考慮哪些因素?

a)易用性:工具應(yīng)該易于上手,從而減少團隊成員學(xué)習(xí)和后續(xù)自動化測試用例的維護成本。

b)集成能力:工具應(yīng)該能夠與其他開發(fā)和測試工具(如Jenkins、缺陷跟蹤系統(tǒng)等)集成。

c)支持的測試類型:根據(jù)項目需求,工具支持的不同類型的測試,如UI測試、接口測試、性能測試等。

d)社區(qū)和文檔:活躍的社區(qū)和詳盡的文檔可以幫助我們快速解決在工具使用過程中遇到的問題。

e)成本:工具的許可費用。

Q2:對于持續(xù)集成和持續(xù)部署中的自動化測試,您有哪些經(jīng)驗和建議?

在我的QA職業(yè)生涯中先后在不同的團隊里落地了接口和UI的分層自動化測試。

對CI(持續(xù)集成)/CD(持續(xù)部署)的流水線中實施自動化測試,我有以下幾點建議:

a)選擇合適的自動化測試工具:根據(jù)項目需求和團隊技術(shù)背景選擇合適的工具至關(guān)重要。工具應(yīng)支持多種測試場景,且易于與其他系統(tǒng)集成。

b)測試用例的設(shè)計:設(shè)計可維護,模塊化且可擴展的自動化測試架構(gòu),采用頁面對象模式(Page Object Model)、模塊化設(shè)計和數(shù)據(jù)驅(qū)動方法提高測試代碼的可讀性和復(fù)用性。

c)團隊協(xié)作和溝通:CI/CD的實施要求團隊成員之間有更高的溝通和協(xié)作,代碼庫和自動化測試用例的維護需要團隊共同努力。

d)持續(xù)學(xué)習(xí)和改進:CI/CD是一個不斷發(fā)展的領(lǐng)域,團隊需要持續(xù)學(xué)習(xí)和改進其CI/CD實踐,關(guān)注行業(yè)內(nèi)的最新趨勢和技術(shù),以便將新的最佳實踐引入團隊中。

Q3:當(dāng)項目需求頻繁變更時,如何保證自動化測試的有效性?

a)選擇合適的業(yè)務(wù)場景:并不是所有的業(yè)務(wù)都適合自動化測試,選擇主干且不易頻繁變動的部分業(yè)務(wù)使用自動化測試用例進行覆蓋。

b)自動化測試用例的模塊化設(shè)計:將測試腳本拆分成獨立的模塊,每個模塊負責(zé)一個具體的功能。這樣當(dāng)需求變更時,只需調(diào)整受影響的模塊,而不必重寫整個腳本,從而提高腳本的復(fù)用性和靈活性。

c)建立變更管理流程:確立清晰的變更控制流程,包括變更的影響評估以及變更實施和驗證的步驟。

d)評估變更的影響:變更實施后,需要持續(xù)評估這些變更對整體測試進度的影響,并及時調(diào)整測試策略。

e)持續(xù)集成:將自動化測試腳本集成到持續(xù)集成/持續(xù)部署流程中,確保及時發(fā)現(xiàn)變更導(dǎo)致的問題。

Q4:您是如何接觸到自動化測試領(lǐng)域,尤其是 Playwright 的呢?是什么契機讓您決定深入研究它?

我接觸自動化測試是機會的偶然也是測試工程師技能發(fā)展的必然,第一次接觸自動化測試是2015年寧波銀行的瀏覽器兼容性自動化測試項目。在之后的這些年里自動化測試技能更是成為了測試工程師發(fā)展路上必備的技能之一。

至于深入研究Playwright,則是因為實際工作中的需要了。在使用Selenium WebDriver的這些年里,其執(zhí)行速度慢、驅(qū)動和瀏覽器版本的一致性以及斷言困難一直是困擾我們QA團隊的難題。時至2024年,我再次深入對比各個開源的UI自動化測試工具時發(fā)現(xiàn)Playwright完美地解決了Selenium這么多年懸而未決的技術(shù)難點,進而決定從Selenium完全轉(zhuǎn)向了Playwright。

Q5:在您看來,Playwright 相比其他自動化測試工具的突出優(yōu)勢有哪些?

a)跨瀏覽器支持:Playwright支持所有主流瀏覽器,包括Chromium、WebKit和Firefox,并且無需額外安裝驅(qū)動程序。

b)自動等待:Playwright 的操作會等待元素準(zhǔn)備就緒,提高了測試的可靠性并簡化了測試腳本的編寫。

b)并行執(zhí)行:Playwright支持并行測試,可以在單個瀏覽器實例中創(chuàng)建多個瀏覽器上下文,實現(xiàn)隔離的同時提高效率。

b)簡潔的API:Playwright API的設(shè)計簡潔直觀,易于學(xué)習(xí)和使用,使得編寫和維護測試腳本更加高效。

Q6:在使用 Playwright 進行自動化測試的過程中,您遇到過哪些比較棘手的技術(shù)難題?又是如何解決的呢?

a)元素定位問題:頁面元素可能會因為異步加載、頁面結(jié)構(gòu)變化等原因?qū)е码y以定位??梢酝ㄟ^Playwright 提供的多種定位策略(如locator(),filter()等)來解決這個問題。

實例1:詳情頁關(guān)閉的頁面元素在UI自動化用例執(zhí)行過程中不穩(wěn)定,不能保證必定成功。

解決方案:判斷詳情頁關(guān)閉的元素是否可見,若可見則點擊它,否則執(zhí)行其他動作。

示例代碼

實例2:斷言詳情頁的文本信息,但文本組件xpath路徑很長,難維護。

解決方案:使用Playwright提供的filter()函數(shù)縮小元素的定位范圍。

示例代碼

實例3:頁面中有有class屬性相同的多個組件,難以逐個區(qū)分。

解決方案:使用Playwright提供的locator()函數(shù)定位一組元素,再根據(jù)索引值區(qū)分具體的元素。

示例代碼

b)測試腳本維護:隨著產(chǎn)品的迭代,測試腳本必然需要持續(xù)性地維護。可以通過模塊化和參數(shù)化測試腳本、使用Page Object模式等方法來提高腳本的可維護性。

我在開發(fā)UI自動化用例的過程中,深感Page Object模式落地必要性和重要性。以我資深所在團隊為例,我們的UI自動化代碼結(jié)構(gòu)如下圖所示。

左側(cè)Base包里封裝了基礎(chǔ)操作;test_fund_manage目錄下是具體的測試用例。

在產(chǎn)品迭代的過程中,若是需要增加新的UI自動化用例來覆蓋業(yè)務(wù)場景,大多數(shù)時候我們直接在用例層(即test_fund_manage)添加用例就行;如果需要維護底層的共用方法,則需要我們先修改Base包下封裝的函數(shù)文件后再同步更新到用例層。

在使用PO(Page Object)模式的情況下,給我們維護UI自動化用例節(jié)省了時間。

展開更多
點擊收起
Q7:能否分享一個您在實際項目中成功運用Playwright 進行自動化測試的案例?具體取得了哪些顯著的成果?

上圖是我所在團隊目前維護的UI自動化用例的執(zhí)行結(jié)果,從圖里可以看出在產(chǎn)品迭代的過程中執(zhí)行結(jié)果并不穩(wěn)定,就結(jié)果來分析,最大的因素是因為我的團隊最近2個季度進行了大量的UI改造!作為UI自動化用例的維護者,這段時間是非常具有挑戰(zhàn)性的,可能我們維護UI自動化用例的速度還趕不上UI的變化速度。這就客觀地要求我們對UI的自動化用例要精心設(shè)計,UI自動化用例所覆蓋的業(yè)務(wù)場景盡量是主干和核心的業(yè)務(wù)。

最后,我所在的團隊在擁抱Playwright之后,明顯感覺有到的收益是持續(xù)集成的結(jié)果反饋速度的提升和自動化用例的維護難度的降低。以我所在的QA團隊為例,我們對自己的核心產(chǎn)品銷幫幫CRM落地了接口和UI的自動化測試,今年在自動化測試實施過程中發(fā)現(xiàn)的bug如下:

在2024年,分層自動化(接口+UI)用例共計發(fā)現(xiàn)了48個bug,在擁抱Playwright之后,我們可以更加快速的得到UI自動化用例的執(zhí)行結(jié)果反饋了。

展開更多
點擊收起
Q8:在團隊中,如何推廣自動化測試并提高團隊成員的自動化測試意識?

a)明確自動化測試的價值:強調(diào)自動化測試在減少重復(fù)性工作、確保軟件質(zhì)量方面的重要性。展示自動化測試如何幫助團隊更快地響應(yīng)需求變更和市場變化。

b)技能培訓(xùn):不定期舉辦自動化測試相關(guān)的培訓(xùn),幫助團隊成員了解自動化測試的基礎(chǔ)知識和最佳實踐。

c)持續(xù)改進:定期收集團隊成員對自動化測試的反饋,并根據(jù)反饋進行改進,不斷調(diào)整和優(yōu)化自動化測試策略。

d)以身作則:作為測試Leader,親自參與自動化測試的實施,為團隊樹立榜樣。展示如何有效地使用自動化測試來提高工作效率和軟件質(zhì)量。

Q9:對于剛進入自動化測試領(lǐng)域的人,您有什么建議?

a)穩(wěn)固基礎(chǔ):熟悉一門編程語言(如Python、Java),熟練掌握自動化測試用例的設(shè)計。

b)理解自動化測試的適用性:了解自動化測試最適合的場景,比如回歸測試、壓力測試。需要認(rèn)識到自動化測試不是萬能的,有些測試場景更適合手動進行。

c)持續(xù)學(xué)習(xí)和實踐:自動化測試領(lǐng)域不斷發(fā)展,持續(xù)學(xué)習(xí)新的技術(shù)和工具是非常重要的。通過實際項目實踐來提高技能,參與開源項目或個人項目也是很好的學(xué)習(xí)方式。自動化測試是一個長期學(xué)習(xí)和實踐的過程,不斷積累經(jīng)驗,逐步提高自己的技能和效率。

Q10:您認(rèn)為未來自動化測試的發(fā)展趨勢是什么?

a)人工智能和自動化測試技術(shù)的融合:AI技術(shù)的應(yīng)用將使得自動化測試更加智能,能夠自動生成測試用例、智能識別缺陷、預(yù)測潛在的故障點,從而提高測試效率和準(zhǔn)確性。

b)自動化用例的自愈技術(shù):自愈技術(shù)能夠發(fā)現(xiàn)測試腳本執(zhí)行中的非預(yù)期錯誤,并在無需人工干預(yù)的情況下自行更改,從而將自身恢復(fù)到更好的運行狀態(tài)。這種技術(shù)可以減少測試失敗率并提升測試穩(wěn)定性。例如,利用AI技術(shù),測試腳本可以“學(xué)習(xí)”和“適應(yīng)”用戶環(huán)境的變化,實現(xiàn)自我修復(fù)。

c)低代碼/無代碼測試自動化:融合了AI的新興工具的出現(xiàn)使得非專業(yè)開發(fā)人員也能夠參與到自動化測試中,降低了自動化門檻,使得更多的人可以參與到自動化測試的實施中來。

COMMENT
評論
通江县| 乌兰浩特市| 上高县| 鹿泉市| 霍州市| 临汾市| 沙田区| 巍山| 沂水县| 京山县| 临朐县| 澎湖县| 衢州市| 乐东| 屏南县| 平远县| 通化市| 瑞昌市| 左贡县| 韩城市| 澄江县| 西盟| 石景山区| 眉山市| 清河县| 三都| 疏附县| 瑞丽市| 台南市| 西林县| 新余市| 集贤县| 沙河市| 远安县| 山东| 五常市| 湛江市| 洛扎县| 栾城县| 驻马店市| 班戈县|