如何從 0 開始學 Python 自動化測試開發(一)

本文是「如何從 0 開始學 Python 自動化測試開發」專題系列文章第一篇,適合零基礎入門的同學。

作者方程老師,是前某跨國通信公司高級測試經理,目前為某互聯網名企資深測試技術專家,也是霍格沃茲測試學院「測試開發從入門到高級實戰」特邀講師。有十餘年大型電信系統測試、管理經驗,自主研發自動化測試工具的經驗,其主筆 CSDN 博客專欄《用 Python 做自動化測試》是測試類訪問量最大的專欄。

Python :「TIOBEs 2018 年度編程語言」

Python 作為大數據工程和 AI 的主流開發語言,近年來一直保持強勁的上升趨勢。即使目前 AI 領域還沒有大量的成功商業案例(盈利的)出現,Python 語言就已經空前火爆了。

2019 新年伊始,Python 果然不負眾望,以「AI 時代全棧語言」身份,輕鬆拿下全球知名的編程語言流行度排行榜網站 「TIOBEs 2018 年度編程語言」榮譽。相信等成功的 AI 應用和商業模式建立起來之後,市場對 Python 開發和測試技術人才的需求會有更加爆發性的增長。

「人生苦短,我用 Python」,Python 語法簡潔而清晰,並具有豐富和強大的類庫,可以輕易實現很多功能。對於初學編程者來說,Python 是最好的入門語言,沒有之一。

用 Python 開發小工具,編寫速度快且非常輕量級,實際工作當中,非常適合團隊在測試資源不充足的情況下,快速開發測試工具。而且通常實現一個功能,Python 的代碼量是別的語言如 Java 的 1/3-1/5。目前,越來越多大廠新工具的開發,技術棧都選擇了 Python。因此,通過掌握 Python 自動化測試技術進入軟體測試和質量保障領域,已經是測試行業新人的入行路徑最佳選擇。

在這裡,我想首先強調的是,學習任何一門新的東西,信心和毅力一樣重要。 只要掌握了正確的方法並加以刻意練習,就連初中的小孩都可以熟練掌握 Python。筆者身邊有兩位非 IT 行業的朋友,他們的孩子在初中就參加培訓班,已經學會用 Python 寫簡單遊戲和機器人程序了。難道你的邏輯思維和動手能力還比不過初中生嗎?

有時候,所有的學習方法都不如鼓起勇氣,狠狠的逼自己一把。筆者自己就是完全通過自學掌握 Python 的。其實筆者從初中到大學就不怎麼聽老師講課,基本全靠自學。背後緣由說來話長,初二時與班主任老師關係不好,為了凸顯自己 NB,無師自通,上課就故意睡覺不聽課,但考試成績又必須要好,否則就丟人了??。所以,每次寒暑假,我都會提前半學期把班主任的課程自學一遍。在少年自尊心驅使下,不自覺的鍛煉了自學能力,後來效果越來越好,到了高中和大學的時候,幾乎所有課程我都會提前自學。這也算是逆風生長,在壓力下收穫了出乎意料的成長。

Python 自動化測試學習路徑和建議

作為過來人,筆者也簡單分享下「學好 Python 自動化測試開發的路徑和建議」

  1. 首先,學好 Python 語言基礎,這個是你以後深入自動化測試開發基礎的基礎。

    很多初學者肯定會懼怕數據結構、演算法等知識。我的建議是,初學者開始階段完全可以先跳過對數據結構和演算法的深究,而將精力放在先學會怎麼用 Python 編程,歷練幾個較大的項目,熟練掌握編程技能之後,再回過頭去深入學習數據結構和演算法。

    其實對很多測試開發崗位來說,你不會演算法都沒事,一般的自動化測試工具對性能要求是比較低的,能把業務邏輯實現了才是關鍵。
  2. 其次,熟悉 Python 常見內庫。這樣你在實現一些業務邏輯或者功能的時候,能很快想到用哪個內嵌的模塊,或者第三方模塊。Python 開發速度快很重要的一個原因就是有非常豐富的自有庫和第三方庫。
  3. 然後,熟悉介面測試中的 Requests,APP 自動化測試 Appium, Web自動化的 Selenium,資料庫的連接和操作庫 pymysql,還可以簡單的了解下 Windows 下 GUI 的自動化測試庫 pywinauto。
  4. 接著,學習 UnitTest, pytest, page object 的設計模式,掌握大型的自動化測試工具的設計思路。當然,最後要實現持續集成,快速測試、迭代,你還需要學習 Jenkins。
  5. 最後,Just Do It! 實踐是檢驗真理的唯一標準,代碼是檢驗你學習效果的最好途徑,把你實際工作中重複的、或者手工很麻煩的事情,嘗試用 Python 來實現它!
  6. 另外,最好能找到一個既懂 Python 又懂測試開發的導師或朋友,請教學習規劃和建議,最重要是在遇到卡殼的地方請他指點,這樣會事半功倍,少走很多彎路。

現在市面上有不少 Python 相關的基礎培訓課程,質量不錯價格也不貴,一般都在 1000-2000 左右,甚至幾百塊錢。其實掌握了 Python,跳個槽,這些課程消費相比工資漲幅是微不足道的。

最重要的成本其實是學習時間成本,投資自己的大腦是性價比最好的投資。


Python 入門資料推薦

在 Python 自動化測試之旅中,最重要的一點是「學習好 Python 語言基礎」,所謂磨刀不誤砍柴功

在入門過程中,選擇一本好的入門書是非常關鍵的事情,這直接關係到你是從入門到精通還是從入門到放棄

筆者推薦 2 本不錯的入門學習材料:

《簡明 Python 教程》

  • 介紹:《A Byte of Python》這本書是一本免費開源的學習資料,有中文譯本叫做《簡明 Python 教程》,感謝作者 Swaroop C. H. 及兩位譯者沈潔元,漠倫的工作和分享精神。書中語言真的很簡明,沒有多餘的的廢話,全是非常實用的內容。全身心投入學習的話,大多數人 1-2 周時間可以學完。

《父與子的編程之旅》

  • 介紹:據說這本書是非常適合 0 基礎的人學習(家長與孩子共同學習編程的入門書),作者是一對父子,希望能幫助普通人在輕鬆愉快的氛圍中學會編程。豆瓣的評價 8.5分。筆者自己沒有看過,大家可以試試看,看過的同學可以留言反饋。

入門的書建議大家不要選擇太多,這 2 本就足夠了。

在學習的過程中,大家可以參考對照下面的 Python 知識圖譜。這些技術點都是將來測試開發工作中經常用到的語言技能。

Python 進階學習材料

學完了 Python 基礎後,需要更進一步系統學習 Python 技術體系,可以參看下面 2 本書。

《Python 核心編程》

  • 書籍介紹:此書是中國 Python 社區翻譯的,質量沒的說,知識點很全面,但關於 Web 開發部分,比較老了,大家可以忽略。

《Python標準庫》

  • 介紹:其實在我們的實際工作當中,要用到很多 API 都來源於 Python 標準庫。把這本書瀏覽一遍,了解下標準庫提供了哪些模塊,有哪些功能,做到心中有數,對於以後加快編碼速度是很有幫助的。

其他常見問題

Q:Python 2 還是 Python 3?

A:如果是去年這個時候,我可能還會建議初學者學習 Python 2,但現在,我會毫不猶豫的建議大家學習Python 3,官方已經聲明 Python 2 在 2019 將不再支持。很多人可能會擔心,現在看的書都是以Python 2 為例子的,在 Python 3 裡面有語法錯誤。

其實 Python2 和 Python 3 語法上差別不是很大,遇到一些小差異,大家 Google 一下,或者去相關論壇上查找,或請教老司機,是可以解答的。

Q:IDE 的選擇?

A:Python 免費 IDE 很多,Linux、Windows、Mac 下的 IDE 都不少,筆者用過很多 IDE,但沒有一款可以和 Pycharm 相提並論。Pycharm 有社區版和專業版,社區版是免費的,功能可以滿足大多數人的需要了。專業版請根據個人情況購買。

尾語

「如何從 0 開始學 Python 自動化測試開發」系列專題後面的內容里,筆者將會逐步分享很多實用的模塊和方法,以及技術學習和工程實踐中常見的難點問題。

希望能幫助大家在測試開發道路上走的更快更穩更遠。我們的口號是,學會 Python,升職加薪

也期待各位同學分享文章到朋友圈推薦給更多小夥伴,有任何問題也歡迎留言交流!

推薦閱讀:

TAG:Python | 軟體測試 | 自動化測試 |