01-Python自動(dòng)化測試-學(xué)習(xí)路線

一、Python常用領(lǐng)域

  • Python用于簡單腳本編程,如編寫2048小游戲或12306的自動(dòng)搶票軟件;
  • Python用于系統(tǒng)編程哎媚,如開發(fā)系統(tǒng)應(yīng)用;
  • Python用于開發(fā)網(wǎng)絡(luò)爬蟲喊儡;

    網(wǎng)絡(luò)爬蟲的用途是進(jìn)行數(shù)據(jù)采集拨与,也就是將互聯(lián)網(wǎng)中的數(shù)據(jù)采集過來。網(wǎng)絡(luò)爬蟲的難點(diǎn)其實(shí)并不在于爬蟲本身艾猜,由于網(wǎng)站方為了避免被爬取回采取各種各樣的反爬蟲措施买喧,而如果想要繼續(xù)從網(wǎng)站爬取數(shù)據(jù)就需要解決這些反爬蟲措施捻悯,所以網(wǎng)絡(luò)爬蟲的難點(diǎn)在于反爬的攻克和處理。

  • Python用于Web開發(fā)淤毛,如個(gè)人博客今缚、在線教育網(wǎng)站以及論壇等;
  • Python用于自動(dòng)化運(yùn)維低淡,如通過寫Python腳本實(shí)現(xiàn)對于服務(wù)器集群進(jìn)行自動(dòng)化管理姓言;
  • Python用于網(wǎng)絡(luò)編程,如Socket編程等蔗蹋;
  • Python用于數(shù)據(jù)挖掘何荚、機(jī)器學(xué)習(xí)等大數(shù)據(jù)與人工智能領(lǐng)域方向的程序開發(fā),如在人工智能領(lǐng)域猪杭;
  • Python用于自動(dòng)化測試餐塘,如UI自動(dòng)化測試(Python+Selenium等)、接口測試(Python requests等)皂吮、性能測試(Python Locust等)戒傻、安全性測試(Python Scapy等)、兼容性測試(Python+Selenium等)等;

二蜂筹、自動(dòng)化測試

  • 什么是自動(dòng)化測試
    廣義上來講需纳,自動(dòng)化包括一切通過工具(程序)的方式來代替或輔助手工測試的行為都可以看做自動(dòng)化,包括性能測試工具(loadrunner狂票、jmeter),或自己所寫的一段程序候齿,用于生成1到100個(gè)測試數(shù)據(jù)熙暴。所以實(shí)際上從廣義上來講:性能測試闺属、接口測試等但凡用到測試工具的測試都稱為"自動(dòng)化測試"。
    狹義上來講周霉,通工具記錄或編寫腳本的方式模擬手工測試的過程掂器,通過回放或運(yùn)行腳本來執(zhí)行測試用例,從而代替人工對系統(tǒng)的功能進(jìn)行驗(yàn)證俱箱。
    當(dāng)然国瓮,行業(yè)中經(jīng)常說的“自動(dòng)化測試”及企業(yè)中要求的“自動(dòng)化測試”大多都是“基于產(chǎn)品或項(xiàng)目UI層的自動(dòng)化測試”。對于性能測試狞谱,接口測試一般不把它們歸納為自動(dòng)化測試的范疇乃摹。

  • 為什么要做自動(dòng)化測試
    根據(jù)51testing的《中國軟件測試從業(yè)人員調(diào)查報(bào)告》,手工測試占到的89% 跟衅,相對開發(fā)來說孵睬,測試的門檻底,薪資普遍較底伶跷,所要求的知識(shí)面雖然有一定廣度掰读,但缺乏深度秘狞。這是測試的普遍現(xiàn)狀。
    正因?yàn)槭止y試人門檻不高蹈集,使大量的畢業(yè)生烁试,甚至是非專業(yè)人員涌入這個(gè)行業(yè)。從而增加了這個(gè)行業(yè)的激烈競爭拢肆。對于工作幾年扔處于手工測試的人員來說都會(huì)有強(qiáng)列的危機(jī)感减响。由于工作的技術(shù)含量不高,薪資的漲幅遇到瓶頸郭怪,另一方面受到新進(jìn)入者的威脅辩蛋,同樣的工作公司花5K招來的人就可以做,那么就不會(huì)花8K 的招移盆。
    這個(gè)問題本不應(yīng)該出現(xiàn)討論技術(shù)的話題中悼院,但他的確是大多測試人員不得不面對的一個(gè)問題。所以咒循,從測試人員自身的發(fā)展來說据途,我其實(shí)非常需要通過自動(dòng)化技術(shù)來增加自己有競爭力。
    自動(dòng)化測試最實(shí)在的優(yōu)勢在于——工作好找:有一個(gè)測試工程師(并不是本人)發(fā)現(xiàn)一個(gè)有趣的現(xiàn)象叙甸,她申請過的幾乎所有測試職位颖医,在招聘時(shí)都需要自動(dòng)化測試經(jīng)驗(yàn)。但當(dāng)她開始工作后裆蒸,就發(fā)現(xiàn)這些公司都試圖做自動(dòng)化測試熔萧,但是結(jié)果大多不怎么地。不過僚祷,盡管她參與的都是一些悲劇的項(xiàng)目佛致,不過她總能把這些悲劇包裝成喜劇以應(yīng)對下一次面試。

  • 自動(dòng)測試的優(yōu)勢

    - 頻繁的回歸測試
    - 快速反饋
    - 幾乎無限制的測試用例迭代執(zhí)行
    - 支持敏捷和極限編程
    - 遵循測試用例的文檔
    - 自定義缺陷報(bào)告
    - 能找出手工測試中沒發(fā)現(xiàn)的缺陷
    
  • 自動(dòng)化測試有那么多優(yōu)勢辙谜,為什么還有那么多項(xiàng)目做失敗了俺榆?

    我個(gè)人推論:
    1、公司自動(dòng)化測試人員能力不夠;
    2装哆、項(xiàng)目難度太大罐脊,功能不穩(wěn)定,需求變化太快蜕琴,就盲目啟動(dòng)自動(dòng)化萍桌,導(dǎo)致自動(dòng)化腳本開發(fā)頻繁改變,更不上需求變化的速度凌简,最終以失敗告終 ;
    3上炎、項(xiàng)目過于復(fù)雜,大部分功能無法實(shí)現(xiàn)自動(dòng)化号醉,僅僅只有小部分功能實(shí)現(xiàn)自動(dòng)化反症,這個(gè)對于項(xiàng)目意義不大;
    4辛块、公司人員流動(dòng)大,導(dǎo)致自動(dòng)化腳本維護(hù)的難度加大铅碍,最終夭折;

  • 什么項(xiàng)目適合做自動(dòng)化測試润绵?
    假如你已經(jīng)決定要學(xué)習(xí)自動(dòng)化測試了,如何學(xué)習(xí)是要面臨的下一個(gè)問題胞谈?這個(gè)問題以被測試產(chǎn)品為出發(fā)點(diǎn)進(jìn)行分析尘盼,假如你所學(xué)的技術(shù)不能得到應(yīng)用(驗(yàn)證),將會(huì)使你的學(xué)習(xí)過程寸步難行烦绳。
    首先考考慮產(chǎn)品是否適合做自動(dòng)化測試卿捎。這方法比較普遍的共識(shí)是從三個(gè)方面進(jìn)行權(quán)衡。

    • 軟件需求變動(dòng)不頻繁
      測試腳本的穩(wěn)定性決定了自動(dòng)化測試的維護(hù)成本径密。如果軟件需求變動(dòng)過于頻繁午阵,測試人員需要根據(jù)變動(dòng)的需求來更新測試用例以及相關(guān)的測試腳本,而腳本的維護(hù)本身就是一個(gè)代碼開發(fā)的過程享扔,需要修改底桂、調(diào)試,必要的時(shí)候還要修改自動(dòng)化測試的框架惧眠,如果所花費(fèi)的成本不低于利用其節(jié)省的測試成本籽懦,那么自動(dòng)化測試便是失敗的。項(xiàng)目中的某些模塊相對穩(wěn)定氛魁,而某些模塊需求變動(dòng)性很大暮顺。我們便可對相對穩(wěn)定的模塊進(jìn)行自動(dòng)化測試,而變動(dòng)較大的仍是用手工測試秀存。
    • 項(xiàng)目周期較長
      由于自動(dòng)化測試需求的確定捶码、自動(dòng)化測試框架的設(shè)計(jì)、測試腳本的編寫與調(diào)試均需要相當(dāng)長的時(shí)間來完成应又。這樣的過程本身就是一個(gè)測試軟件的開發(fā)過程宙项,需要較長的時(shí)間來完成乏苦。如果項(xiàng)目的周期比較短株扛,沒有足夠的時(shí)間去支持這樣一個(gè)過程,那么自動(dòng)化測試便成為笑談汇荐。
    • 自動(dòng)化測試腳本可重復(fù)使用
      自動(dòng)化測試腳本的重復(fù)使用要從三個(gè)方面來考量洞就,一方面所測試的項(xiàng)目之間是否很大的差異性(如C/S系統(tǒng)和B/S系統(tǒng)的差異);所選擇的測試工具是否適應(yīng)這種差異掀淘;最后旬蟋,測試人員是否有能力開發(fā)出適應(yīng)這種差異的自動(dòng)化測試框架。

三革娄、主流自動(dòng)化測試框架

  • 自動(dòng)化測試框架
    桌面程序的工具有:QTP倾贰、 AutoRunner
    web應(yīng)用的工具有:QTP冕碟、AutoRunner、Robot Framework匆浙、watir安寺、selenium

  • 測試框架選擇
    由于B/S架構(gòu)的諸多優(yōu)勢,早幾年前大量C/S架構(gòu)的應(yīng)用轉(zhuǎn)為B/S結(jié)構(gòu)首尼。從而也推動(dòng)了web開發(fā)與測試技術(shù)的發(fā)展挑庶。這也導(dǎo)致QTP框架的落寞,Selenium框架及Robot Framework框架的大量興起软能。

    被測試有產(chǎn)品是C/S架構(gòu)的迎捺,那么推薦QTP ;
    被測產(chǎn)品是B/S 結(jié)構(gòu),那么推薦selenium ;

  • 市面主流自動(dòng)化測試框架
    RFS: Robot Framework + Selenium
    Selenium+unittest框架

    為什么不是QTP 或其它工具查排?因?yàn)閟elenium 對B/S應(yīng)用支持很好凳枝,更重要的一點(diǎn),它支持多語言的開發(fā)跋核,真正的試用selenium 范舀,你所要掌握的不僅僅是一個(gè)工具而已,你還需要學(xué)習(xí)一門語言了罪。

四锭环、我們該學(xué)什么

自然選擇主流框架,假如你決定使用selenium 了之后泊藕,你又面臨了一個(gè)新的問題辅辩,選擇一門語言。selenium 是支持java娃圆、python玫锋、ruby、php讼呢、C#撩鹿、JavaScript 。

從語言易學(xué)性來講: ruby悦屏、python;
從語言應(yīng)用廣度來講: python节沦、java、C#础爬、php;
從語言相關(guān)測試技術(shù)成熟度及資料來講: python甫贯、java、ruby;
備注: 你可以考慮整個(gè)技術(shù)團(tuán)隊(duì)主流用什么語言看蚜,然后選擇相應(yīng)的語言;
備注: 我們在這里自然選擇目前市面上最火叫搁,使用范圍廣,技術(shù)成熟度大的Python講解;

五渴逻、Python自動(dòng)化測試-學(xué)習(xí)路線

學(xué)習(xí)路線規(guī)劃:
1.python(python不過關(guān)疾党,別談自動(dòng)化);
2.Web基礎(chǔ)(網(wǎng)頁基礎(chǔ))
3.Selenium框架
4.unittest框架
5.Robot Framwork框架
6.項(xiàng)目

Python自動(dòng)化測試

六、Python篇

Python 是一個(gè)高層次的結(jié)合了解釋性惨奕、編譯性仿贬、互動(dòng)性和面向?qū)ο蟮哪_本語言。
Python 的設(shè)計(jì)具有很強(qiáng)的可讀性墓贿,相比其他語言經(jīng)常使用英文關(guān)鍵字茧泪,其他語言的一些標(biāo)點(diǎn)符號,它具有比其他語言更有特色語法結(jié)構(gòu)聋袋。

  • 環(huán)境搭建
    Python版本選擇: 3.5版本64位队伟、3.5版本32位
    Python IDE: PyCharm社區(qū)免費(fèi)版

  • 基礎(chǔ)語法
    注釋
    標(biāo)識(shí)符
    保留字
    行和縮進(jìn)
    輸入輸出
    運(yùn)算符

  • 數(shù)據(jù)類型
    Numbers數(shù)字
    String字符串
    List列表
    Tuple元組
    Dictionary字典
    數(shù)據(jù)類型轉(zhuǎn)換

  • 控制流
    if語句
    while語句
    for語句
    循環(huán)嵌套

  • 函數(shù)
    函數(shù)定義
    函數(shù)調(diào)用
    函數(shù)參數(shù)
    匿名函數(shù)
    作用域

  • 模塊
    import 語句
    From…import 語句
    From…import* 語句
    定位模塊
    命名空間與作用域
    dir()函數(shù)
    globals()和locals()函數(shù)
    reload()函數(shù)

  • 正則表達(dá)式
    re.match函數(shù)
    re.search方法
    檢索和替換
    字符類和特殊字符類

  • 文件I/O
    讀取鍵盤輸入
    打開和關(guān)閉文件
    File對象的屬性
    Close()方法
    Write()方法
    目錄操作

  • 異常處理
    標(biāo)準(zhǔn)異常
    try/except語句
    try-finally 語句
    異常的參數(shù)
    觸發(fā)異常
    用戶自定義異常

  • JSON處理
    encode函數(shù)
    decode函數(shù)

  • 面向?qū)ο?br> 類(Class)
    類變量
    數(shù)據(jù)成員
    方法重載
    實(shí)例變量
    繼承
    實(shí)例化
    方法
    對象

七、Web篇

Web就是在Http協(xié)議基礎(chǔ)之上, 利用瀏覽器進(jìn)行訪問的網(wǎng)站幽勒。網(wǎng)頁開發(fā)會(huì)涉及到HTML超文本標(biāo)記語言嗜侮、CSS層疊樣式表、Javascript腳本語言啥容。

  • 環(huán)境搭建
    編輯工具: Hbuiderl
    瀏覽器: 火狐/谷歌

  • HTML基礎(chǔ)
    基本結(jié)構(gòu)
    常用元素
    元素屬性
    層次結(jié)構(gòu)

  • CSS基礎(chǔ)
    樣式表
    選擇器
    核心屬性

  • Javascript基礎(chǔ)
    變量類型
    if語句
    while語句
    for語句
    數(shù)組
    DOM操作

八锈颗、Selenium篇

Selenium 誕生于 2004 年,當(dāng)在 ThoughtWorks 工作的 Jason Huggins 在測試一個(gè)內(nèi)部應(yīng)用時(shí)咪惠。作為一個(gè)聰明的家伙击吱,他意識(shí)到相對于每次改動(dòng)都需要手工進(jìn)行測試,他的時(shí)間應(yīng)該用得更有價(jià)值遥昧。他開發(fā)了一個(gè)可以驅(qū)動(dòng)頁面進(jìn)行交互的 Javascript 庫覆醇,能讓多瀏覽器自動(dòng)返回測試結(jié)果。那個(gè)庫最終變成了 Selenium 的核心炭臭,它是 Selenium RC(遠(yuǎn)程控制)和 Selenium IDE 所有功能的基礎(chǔ)永脓。
Selenium 2(又叫 Selenium Webdriver),Selenium 1 (又叫 Selenium RC 或 Remote Control)鞋仍,Selenium RC 都是最主要的 Selenium 項(xiàng)目常摧,直到 WebDriver 和 Selenium 合并而產(chǎn)生了最新且最強(qiáng)大的 Selenium 2.
Selenium IDE (集成開發(fā)環(huán)境) 是一個(gè)創(chuàng)建測試腳本的原型工具。它是一個(gè) Firefox 插件威创,提供創(chuàng)建自動(dòng)化測試的建議接口落午。

  • 框架原理

  • 自動(dòng)化測試流程

  • python+selenium環(huán)境搭建

  • Selenium WebDriver API實(shí)戰(zhàn)

  • 自動(dòng)化測試用例設(shè)計(jì)

  • Jenkins+SVN持續(xù)集成管理

九、unittest篇

自動(dòng)化測試的最后一步需要判斷結(jié)果是否正確那婉,而正確設(shè)置斷言可以幫助判斷測試用例的執(zhí)行結(jié)果板甘,從而提高自動(dòng)化測試的效率,python unittest 提供了一個(gè)比較完整的斷言方法详炬。

  • Python+Unitest測試框架
    生成HTMLTestRunner測試報(bào)告
    測試套件
    測試套件實(shí)例
    整合HTMLTestRunner測試報(bào)告
    易讀的測試報(bào)告

十、Robot Framwork篇

Robot Framework是一個(gè)基于Python可擴(kuò)展地關(guān)鍵字驅(qū)動(dòng)的測試自動(dòng)化框架,使用Apache License 2.0呛谜,由Robot Framework Foundation開發(fā)和贊助在跳。Robot Framework被廣泛地使用在端到端地驗(yàn)收測試以及ATDD(acceptance-test-driven development)中,生態(tài)體系非常豐富隐岛。

  • Robot FrameWork原理
  • Robot FrameWork環(huán)境搭建
  • Robot FrameWork工具使用
  • Robot FrameWork系統(tǒng)關(guān)鍵字
  • Robot FrameWord用戶自定義關(guān)鍵字封裝
  • RFS Web自動(dòng)化測試實(shí)戰(zhàn)
  • RFS集成JQuery
  • 數(shù)據(jù)庫自動(dòng)化測試實(shí)戰(zhàn)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猫妙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子聚凹,更是在濱河造成了極大的恐慌割坠,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妒牙,死亡現(xiàn)場離奇詭異彼哼,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)湘今,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門敢朱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人摩瞎,你說我怎么就攤上這事拴签。” “怎么了旗们?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵蚓哩,是天一觀的道長篡诽。 經(jīng)常有香客問我忆肾,道長烟很,這世上最難降的妖魔是什么椅贱? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任填硕,我火速辦了婚禮颠区,結(jié)果婚禮上娜饵,老公的妹妹穿的比我還像新娘瞻惋。我一直安慰自己括袒,他們只是感情好次兆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锹锰,像睡著了一般芥炭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恃慧,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天园蝠,我揣著相機(jī)與錄音,去河邊找鬼痢士。 笑死彪薛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播善延,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼少态,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了易遣?” 一聲冷哼從身側(cè)響起彼妻,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎豆茫,沒想到半個(gè)月后侨歉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揩魂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年幽邓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肤京。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颊艳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出忘分,到底是詐尸還是另有隱情棋枕,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布妒峦,位于F島的核電站重斑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肯骇。R本人自食惡果不足惜窥浪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笛丙。 院中可真熱鬧漾脂,春花似錦、人聲如沸胚鸯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姜钳。三九已至坦冠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哥桥,已是汗流浹背辙浑。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工拟糕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人硼一。 一個(gè)月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像愧哟,于是被迫代替她去往敵國和親蕊梧。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

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