【自動(dòng)化測(cè)試框架】 | selenium+Python,怎樣從0開始搭建一個(gè)屬于自己項(xiàng)目的測(cè)試框架

在開始之前权薯,請(qǐng)讓我先聲明幾點(diǎn):

這個(gè)“從0開始”并不是說你不需要任何基礎(chǔ)知識(shí)姑躲,而是指框架從無到有的過程,要開始搭建還是需要一定基礎(chǔ)

請(qǐng)確保你已經(jīng)掌握了基本的Python語法

如果你要搭建UI框架盟蚣,請(qǐng)確保你已經(jīng)掌握了Selenium的基本用法

這個(gè)框架主要面向剛剛會(huì)寫腳本但是不知道該如何走向下一步的同學(xué)黍析,歡迎吐槽,但最好帶上改進(jìn)建議

思考:我們需要一個(gè)什么樣的框架

既然要搭一個(gè)框架屎开,我們首先得弄明白我們需要一個(gè)什么樣的框架阐枣,這個(gè)框架要支持什么功能?

框架主要的作用就是幫助我們編寫更加簡(jiǎn)單而且好維護(hù)的用例奄抽,讓我們把主要精力放在測(cè)試用例的設(shè)計(jì)上蔼两,那么我們就需要把所有額外的東西抽象出來作為框架的部分宪卿。

那么半等,額外的東西是什么诗越?

日志以及報(bào)告

日志級(jí)別区端、URL芭碍、瀏覽器類型等基本配置

參數(shù)化

公共方法

搭建框架目錄結(jié)構(gòu)

現(xiàn)在我們很容易就把框架的結(jié)構(gòu)搭建好了:

框架搭建后可以是這樣的目錄

也可以參照這篇目錄結(jié)構(gòu)瓣蛀,都是類似的:簡(jiǎn)單分享一個(gè)輕量級(jí)自動(dòng)化測(cè)試框架目錄結(jié)構(gòu)設(shè)計(jì)

接下來有一些選擇題要做了:

Python 2 or 3? Selenium 2 or 3?

Python 3的使用越來越多官脓,而且3的unittest中帶有subTest仿贬,能夠通過子用例實(shí)現(xiàn)參數(shù)化。而用2的話需要unittest2或其他的庫來實(shí)現(xiàn)品抽,所以我們這里選用Python 3储笑。

Selenium 3剛發(fā)布正式版不久,一些功能driver還沒來得及跟上圆恤,尤其是geckodriver突倍,所以選擇Selenium 2(注意PY3的話要選擇SE2.53.1)。

環(huán)境選擇其實(shí)影響不大盆昙,你也可以選擇你自己習(xí)慣的環(huán)境羽历。

配置文件

配置文件我們有多種選擇:ini、yaml淡喜、xml秕磷、properties、txt炼团、py等

鑒于我之前寫過一篇yaml的博文澎嚣,我們這里就用yaml吧。

所以我們?cè)赾onfig文件夾里創(chuàng)建config.yml文件瘟芝,在utils里創(chuàng)建一個(gè)config.py文件讀取配置易桃,內(nèi)容暫且不管。

簡(jiǎn)單的對(duì)之后的內(nèi)容勾畫一下

1.首先我們要把配置抽出來锌俱,用yaml文件放配置晤郑。所以我們要在config層添加配置文件config.yml,在utils層添加file_reader.py與config.py來管理贸宏≡烨蓿——怎樣從0開始搭建一個(gè)測(cè)試框架(1)

2.然后我們將python自帶的logging模塊封裝了一下,從配置文件讀取并設(shè)置固定的logger吭练。在utils中創(chuàng)建了log.py诫龙。——怎樣從0開始搭建一個(gè)測(cè)試框架(2)

3.然后封裝xlrd模塊线脚,讀取excel赐稽,實(shí)現(xiàn)用例的參數(shù)化』虢模——怎樣從0開始搭建一個(gè)測(cè)試框架(3)

4.然后是生成HTML測(cè)試報(bào)告姊舵,這個(gè)博主修改了網(wǎng)上原有的HTMLTestRunner,改為中文并美化寓落,然后修改其支持PY3括丁。你可以直接拿去用×嫜。——怎樣從0開始搭建一個(gè)測(cè)試框架(4)

5.然后我們給框架添加了發(fā)送郵件報(bào)告的能力史飞。在utils中添加了mail.py尖昏。——怎樣從0開始搭建一個(gè)測(cè)試框架(5)

6.然后我們將測(cè)試用例用Page-Object思想進(jìn)行封裝构资,進(jìn)一步劃分test層的子層抽诉。——怎樣從0開始搭建一個(gè)測(cè)試框架(6)

7.接下來為了接口測(cè)試封裝client類吐绵。在utils中添加了client.py迹淌。——怎樣從0開始搭建一個(gè)測(cè)試框架(7)

8.然后添加了一個(gè)簡(jiǎn)單的自定義斷言己单,在utils中添加assertion.py唉窃,可用同樣的方法自行擴(kuò)展。——怎樣從0開始搭建一個(gè)測(cè)試框架(8)

9.接下來我們?yōu)榱顺槿№憫?yīng)結(jié)果纹笼,用JMESPath封裝Extractor纹份,在utils中添加extractor.py。——怎樣從0開始搭建一個(gè)測(cè)試框架(9)

10.然后是生成器廷痘。為我們自動(dòng)生成固定類型的測(cè)試數(shù)據(jù)蔓涧。utils下創(chuàng)建了generator.py。——怎樣從0開始搭建一個(gè)測(cè)試框架(10)

11.最后為了一些項(xiàng)目中的支持方法牍疏,如加密蠢笋、簽名等,創(chuàng)建支持庫support.py鳞陨。——怎樣從0開始搭建一個(gè)測(cè)試框架(11)

整個(gè)流程下來我們一個(gè)簡(jiǎn)單的框架就像模像樣了,在此基礎(chǔ)上可繼續(xù)完善瞻惋,實(shí)際用在項(xiàng)目中也沒有什么問題厦滤,再簡(jiǎn)單結(jié)合Jenkins部署起來,定期或每次代碼提交后可自動(dòng)運(yùn)行測(cè)試歼狼,直接把測(cè)試報(bào)告發(fā)送到項(xiàng)目成員手中掏导,妥妥的!接下來就跟我一塊學(xué)習(xí)吧羽峰。

所有的代碼我都放到了公眾號(hào) 頭條號(hào)傳送趟咆,可以自己下載去學(xué)習(xí)。

有什么好的建議或者問題梅屉,可以留言或者加QQ群:330374464?



作者:西邊人

頭條號(hào)值纱、公眾號(hào)請(qǐng)搜索(軟件測(cè)試資源站)

關(guān)注后私信回復(fù) 入群,加入自學(xué)社群聯(lián)盟坯汤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虐唠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子惰聂,更是在濱河造成了極大的恐慌疆偿,老刑警劉巖咱筛,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異杆故,居然都是意外死亡迅箩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門处铛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沙热,“玉大人,你說我怎么就攤上這事罢缸「菝常” “怎么了?”我有些...
    開封第一講書人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵枫疆,是天一觀的道長(zhǎng)爵川。 經(jīng)常有香客問我,道長(zhǎng)息楔,這世上最難降的妖魔是什么寝贡? 我笑而不...
    開封第一講書人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮值依,結(jié)果婚禮上圃泡,老公的妹妹穿的比我還像新娘。我一直安慰自己愿险,他們只是感情好颇蜡,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辆亏,像睡著了一般风秤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扮叨,一...
    開封第一講書人閱讀 50,043評(píng)論 1 291
  • 那天缤弦,我揣著相機(jī)與錄音,去河邊找鬼彻磁。 笑死碍沐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衷蜓。 我是一名探鬼主播累提,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼恍箭!你這毒婦竟也來了刻恭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鳍贾,沒想到半個(gè)月后鞍匾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骑科,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年橡淑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咆爽。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梁棠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出斗埂,到底是詐尸還是另有隱情符糊,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布呛凶,位于F島的核電站男娄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏漾稀。R本人自食惡果不足惜模闲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望崭捍。 院中可真熱鬧尸折,春花似錦、人聲如沸殷蛇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晾咪。三九已至收擦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谍倦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來泰國打工泪勒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昼蛀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓圆存,卻偏偏與公主長(zhǎng)得像叼旋,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沦辙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容