第 13 章 用爬蟲測試網(wǎng)站

在這一章里,我將介紹測試的基礎(chǔ)知識蝉揍,以及如何用 Python 網(wǎng)絡(luò)爬蟲測試各種簡單或復(fù)雜的網(wǎng)站。

13.1 測試簡介

運(yùn)行一套測試方法能夠保證你的代碼按照既定的目標(biāo)運(yùn)行,不僅可以節(jié)約你的時間泰偿,減少你對 bug 的憂 慮,還可以讓新版本升級變得更加簡單蜈垮。
什么是單元測試
一個單元測試通常包含以下特點(diǎn)耗跛。
? 每個單元測試用于測試一個零件(component)功能的一個方面。
通常窃款,一個零件的所有單元測試都集成在同一個類(class)里课兄。
? 每個單元測試都可以完全獨(dú)立地運(yùn)行,一個單元測試需要的所有啟動(setup)和卸載 (teardown)都必須通過這個單元測試本身去處理晨继。單元測試不能對其他測試造成干擾烟阐,而且不論按何種順序排列,它們都必須能夠正常地運(yùn)行紊扬。
? 每個單元測試通常至少包含一個斷言(assertion)蜒茄。
? 單元測試與生產(chǎn)代碼是分離的。雖然它們需要導(dǎo)入然后在待測試的代碼中使用餐屎,但是它們一般被保留在獨(dú)立的類和目錄中檀葛。

13.2 Python 單元測試

Python 的單元測試模塊 unittest,所有標(biāo)準(zhǔn)版 Python 安裝后都有腹缩。只要先導(dǎo)入模塊然后
繼承 unittest.TestCase 類屿聋,就可以實現(xiàn)下面的功能:
? 為每個單元測試的開始和結(jié)束提供 setUp 和 tearDown 函數(shù)
? 提供不同類型的“斷言”語句讓測試成功或失敗
? 把所有以 test_ 開頭的函數(shù)當(dāng)作單元測試運(yùn)行空扎,忽略不帶 test_ 的函數(shù)
需要注意的是,這兩個函數(shù)在每個測試的開始和結(jié)束都會運(yùn)行一次润讥,而不是把類中所有測 試作為一個整體在開始或結(jié)束時各運(yùn)行一次转锈。

13.3 Selenium 單元測試

Selenium,它是一個可以解決網(wǎng)站上各種復(fù)雜問題的優(yōu)秀測試框架;其實楚殿,它的初衷就是用來做網(wǎng)站測試
1. 鼠標(biāo)拖放動作
單擊按鈕和輸入文字只是 Selenium 的一個功能撮慨,其真正的亮點(diǎn)是能夠處理更加復(fù)雜的網(wǎng)絡(luò) 表單交互行為。Selenium 可以輕松地完成鼠標(biāo)拖放動作(drag-and-drop)脆粥。
很多驗證碼里使用拖放動作證明訪問者不是一個機(jī)器 人砌溺,這是一種常用手段。
2. 截屏
除了普通的測試功能变隔,Selenium 還有一個有趣的技巧可以讓你的測試更容易(或者讓你老 板更喜歡):截屏规伐。截屏可以在單元測試中創(chuàng)建,不需要點(diǎn)擊截屏按鈕就可以獲取

13.4 Python 單元測試與 Selenium 單元測試的選擇

Python 的單元測試語法嚴(yán)謹(jǐn)冗長弟胀,更適合為大多數(shù)大型項目寫測試萍鲸,而 Selenium 的測試方 式靈活且功能強(qiáng)大吁断,可以成為一些網(wǎng)站功能測試的首選笆包。那么應(yīng)該使用哪個呢?
答案是:不需要選擇憾股。Selenium 可以輕易地獲取網(wǎng)站的信息,而單元測試可以評估這些信息是否滿足通過測試的條件夏哭。因此检柬,你沒有理由拒絕把 Selenium 導(dǎo)入 Python 的單元測試, 兩者組合是最佳拍檔竖配。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末何址,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子进胯,更是在濱河造成了極大的恐慌用爪,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胁镐,死亡現(xiàn)場離奇詭異偎血,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)盯漂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門颇玷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人就缆,你說我怎么就攤上這事帖渠。” “怎么了竭宰?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵空郊,是天一觀的道長份招。 經(jīng)常有香客問我,道長渣淳,這世上最難降的妖魔是什么脾还? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮入愧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗤谚。我一直安慰自己棺蛛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布巩步。 她就那樣靜靜地躺著旁赊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪椅野。 梳的紋絲不亂的頭發(fā)上终畅,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機(jī)與錄音竟闪,去河邊找鬼离福。 笑死,一個胖子當(dāng)著我的面吹牛炼蛤,可吹牛的內(nèi)容都是我干的妖爷。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼理朋,長吁一口氣:“原來是場噩夢啊……” “哼絮识!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嗽上,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤次舌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后兽愤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彼念,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年烹看,在試婚紗的時候發(fā)現(xiàn)自己被綠了国拇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡惯殊,死狀恐怖酱吝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情土思,我是刑警寧澤务热,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布忆嗜,位于F島的核電站,受9級特大地震影響崎岂,放射性物質(zhì)發(fā)生泄漏捆毫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一冲甘、第九天 我趴在偏房一處隱蔽的房頂上張望绩卤。 院中可真熱鬧,春花似錦江醇、人聲如沸濒憋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凛驮。三九已至,卻和暖如春条辟,著一層夾襖步出監(jiān)牢的瞬間黔夭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工羽嫡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留本姥,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓厂僧,卻偏偏與公主長得像扣草,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子颜屠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

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