日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

从零开始搭建一个简单的ui自动化测试框架02(pytest+selenium+allure)

發(fā)布時(shí)間:2023/12/9 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始搭建一个简单的ui自动化测试框架02(pytest+selenium+allure) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

二、先搭一個(gè)架子

在我還是小白連py語(yǔ)法都不太熟悉的時(shí)候,經(jīng)常在網(wǎng)上看關(guān)于自學(xué)ui自動(dòng)化測(cè)試的博客,最熟悉的套路莫過(guò)于先給你介紹一下selenium的各個(gè)api,然后寫一套代碼去登陸微博或者百度什么的,但我今天不愿意這么寫,因?yàn)檫@樣的話,實(shí)際上并沒有什么卵用,他不能用到實(shí)際的項(xiàng)目里,今天我們來(lái)先搭一個(gè)架子。

搭架子先畫圖

我們首先來(lái)確定一下我們的項(xiàng)目架構(gòu)圖,也即是我們打算怎么具體設(shè)計(jì)我們的項(xiàng)目,下面來(lái)聊一聊我設(shè)計(jì)時(shí)的思路。

其他的先不談,測(cè)試用例肯定是集中放到一個(gè)地方的,于是我創(chuàng)建了一個(gè)testcase的位置專門用來(lái)放用例,此時(shí)我們的架構(gòu)圖是這樣的:
—————testcase

接下來(lái)我又想到,我們的用例可能需要按照要求集合執(zhí)行,所以我又創(chuàng)建了一個(gè)testsuite的位置專門放集合的用例,于是架構(gòu)圖多了一個(gè):
—————testcase
—————testsuite

然后又想到,因?yàn)槲覀兊臏y(cè)試用例需要支持單獨(dú)執(zhí)行,所以必然需要重復(fù)的測(cè)試前和測(cè)試后的動(dòng)作,先不談更多的動(dòng)作,但是打開和關(guān)閉瀏覽器肯定是必須的,所以要想不在每個(gè)case里重復(fù)的寫這些動(dòng)作,我們就需要一個(gè)測(cè)試用例的主類用以被case繼承,我把這個(gè)主類單獨(dú)的放置到了一個(gè)位置maincase,于是架構(gòu)圖:
—————testcase
—————testsuite
—————maincase

我們?cè)賮?lái)想一下case里更具體的問題吧,比如說(shuō),我們可能需要一個(gè)(除開瀏覽器操作外的)工具集用以對(duì)case提供支持,包括發(fā)送Email,打開windows窗口選擇文件還有其他可能遇到的奇奇怪怪的事情,我們給這個(gè)部分留了一個(gè)util的位置,再來(lái)看看架構(gòu)圖:
—————testcase
—————testsuite
—————maincase
—————util

再想想,如果我們發(fā)送email,那當(dāng)然是要先生成測(cè)試報(bào)告,測(cè)試?yán)镉龅絾栴}的話,最好可以有截圖用來(lái)看看當(dāng)時(shí)為什么出錯(cuò)了,那么我們各留一個(gè)位置給報(bào)告和截圖:
—————testcase
—————testsuite
—————maincase
—————util
—————testreport
—————sreenshot

接下來(lái),處理一下我們的元素存放位置,元素的管理是UI自動(dòng)化里的重要點(diǎn),如果不做到case和元素分離的話,維護(hù)用例將會(huì)變得非常困難,每次迭代只要元素變動(dòng)了,你就得一個(gè)一個(gè)case的改,這里我們把元素集中到一個(gè)config里,稍后在具體編寫階段告訴大家如何存儲(chǔ),這里先分一個(gè)config的位置給元素:
—————testcase
—————testsuite
—————maincase
—————util
—————testreport
—————sreenshot
—————config

最后,如果我們希望我們的用例足夠簡(jiǎn)潔的話,我們就應(yīng)該把那些常用的操作封裝起來(lái),這里的封裝分為兩個(gè)層面封裝,第一是對(duì)常用基礎(chǔ)操作的封裝,第二是對(duì)常用業(yè)務(wù)操作的封裝。

解釋一下的話,就是我們首先把基礎(chǔ)的操作封裝到一起,例如,尋找元素,如果我們想統(tǒng)一使用隱式等待(不明白的話后續(xù)篇章會(huì)介紹到)去查找元素的話,就需要把selenium里的find方法封裝一下,這種是對(duì)原先的基礎(chǔ)操作的封裝;
而比如說(shuō),我們寫case的時(shí)候發(fā)現(xiàn),很多個(gè)case都會(huì)有一個(gè)同樣的跳轉(zhuǎn)路徑,都是通過(guò)點(diǎn)擊xx,再點(diǎn)擊xx到達(dá)這個(gè)頁(yè)面,我們就把這個(gè)操作路徑封裝了給我們的case使用,避免case里重復(fù)的寫這些路徑,這層封裝是對(duì)復(fù)用性高的業(yè)務(wù)邏輯操作的封裝。

我們給這兩層封裝留個(gè)位置operate:

—————testcase
—————testsuite
—————maincase
—————util
—————testreport
—————sreenshot
—————config
—————operate

這樣目前來(lái)看,我們的架構(gòu)圖大體就畫完了,剩下的如果有遺漏再開發(fā)過(guò)程里修復(fù)吧,我們看看最終的項(xiàng)目架構(gòu)(目前還是空的):

image

總結(jié)

以上是生活随笔為你收集整理的从零开始搭建一个简单的ui自动化测试框架02(pytest+selenium+allure)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。