導言

隨著Python語言的熱度不斷攀升,使用人數不斷增加,很多大企業像谷歌、百度、騰訊、阿里都在使用Python構建企業級應用,它也逐漸成為了測試人員學習腳本語言的首選。本期專訪有幸邀請到一位有著多年測試開發及管理經驗的測試大牛,圍繞三個部分結合實際工作進行深入淺出的講解,讓大家輕松掌握Python,全面實現測試自動化。

專訪內容

為什么學Python篇:

1、看到您在個人簡介中寫花了5年時間,自學Python并帶領團隊從一個純黑盒手動測試升級為一個既能測試又能開發的"測試研發團隊",這中間是否遇到過哪些難題?又是如何克服的?

近期一直在看王陽明的相關書籍,他的一個觀點我非常贊同,不管要學習什么一定要立志,立志是非常非常重要的,但是立志前一定要有動機,或者說要有“打擊”,那種讓你內心感到瓦涼瓦涼的打擊!我在軟件測試這個行業工作了12年之久,截至5年前,我一直很愉悅地,內心充盈地做著黑盒測試,曾幾何時我也覺得最好離“開發”遠遠的,因為很多人都說:女孩子做測試挺好的~~ 但是,我遇到很一個非常現實而殘忍的問題:“裁員”,想想自己也挺奇葩的,在一個公司竟然待了12年之久,在這12年里,因為各種原因,我經歷了大大小小的裁員有5次之多,一有裁員需求,老板第一個考慮的就是測試人員。每一次裁員,都是自己團隊里的兄弟姐妹,我要親自告訴他或她,因為公司現在裁員,需要你離開公司,雖然你的工作是合格的,甚至是優秀的~~然后我要鼓起勇氣陪著哭泣的他或她去立刻辦理離職手續,一刻也不能停留~~你能想象我內心的崩潰嗎?每一次我都會問為什么又是我們?每一次老板都會坦率地告訴我,為什么裁員考慮的是我們測試團隊:就是因為可取代性太強了!!我真的實實在在意識到了黑盒測試的無力。

公司在寒冬時,需要“蓄積能量”,也就是需要減少開支,老板就要開始衡量,哪類研發人員被裁,后續如果公司渡過難關后補起來比較容易,很不幸,每一次評估下來都是測試人員。有個聲音在我腦海里越來越清晰:不能這樣,我們團隊不能總是做可取代性強的工作!!所以測試的發展方向是什么?我要有什么樣的技能才能改觀老板對我們的認知??我開始在網上找,當然也在51testing這樣專業的網站上找尋,我找尋的結果是:未來的測試應該是以自動化為主,手動測試為輔。所以測試人員必須要學會編程,因為測試是一個無窮盡的工作,如何體現測試人員的價值,就是在單位時間內能有更多的產出,有讓老板瞠目結舌的產出......[詳情]

2、您前面說到未來的測試應該是以自動化為主,手動測試為輔,但現在還有一種說法,"在國外,資深的軟件測試人員大多是手動測試,他們厲害之處在于測試用例的設計,但在國內,很多測試人員都把自動化測試當成很厲害的資本"您對此有何看法?

這個問題非常有意思,首先我不太認同這種簡單粗暴的對比方式,不能只是“國外”,“國內”這樣的一元的對比,我認為需要多角度考慮問題:例如不同類型的公司,不同規模的公司,不同的待測物,都會影響對比的結果。還有最近聽到一個非常有意思的說法:如果你手里只有一個錘子,那你的眼里只能看到釘子。這句話是什么意思?就是說如果你手里的工具非常有限,你所看到的世界就是非常局限的。所以我們要盡可能的多掌握一些工具,這樣我們看到的世界才能使多維的世界,這個多維的世界,才是比較接近真實的世界。所以,為什么糾結是手動測試比較厲害還是自動化測試比較厲害呢?對于資深的測試人員,難道這些不都應該被掌握嗎?

說到國外,我最近聽一個在美國工作10多年的主管跟我講他所見到的非常厲害的測試團隊,他之前所負責的項目是由一個15個人左右的測試團隊測試了2-3個月的全面測試當然期間也會與開發團隊配合進行debug,而且期間經常加班,工作得非常辛苦,就這樣辛苦了2-3個月最后剩下大概30多個已知bug,項目團隊經過商議,這些bug隱藏較深,應該不影響認證......[詳情]

如何學習Python篇:

您之前提到了自學Python的經歷,我們有很多會員也是目前正在從事功能測試,想轉自動化測試,如果他們現在學習Python,您是否能介紹一些好的學習方法介紹給大家呢?

首先明確Python是一個語言,一個腳本語言,所有的語言都是從Hello world開始,就是說首先都要學習它的基本語法,變量;它的數據結構;它的各種語句寫法等等,然后對于這些基本語言,寫各種對應的代碼,目的是幫助我們更好理解這些基礎的知識。這部分就像蓋房子時搭建房子的框架,無論是什么類型產品的自動化開發,這些框架都是需要的。學習基本語法,真的與學習其它的語言相比并沒有什么特殊之處。但是我想強調的是:看一萬遍都不如自己實際手動試一遍,實踐非常重要(所以千萬不要輕視Hello world,它就是開啟你美妙人生的鑰匙)。網上有很多很多很好的課程,甚至是免費的課程,也有很多資料,免費的資料,這個只能靠自己耐著性子去讀,去實踐了……,這部分誰也幫不了你,只能靠你自己了。如果一定要我推薦,我建議可以在網上找“超級無敵Python教程”,當然還有很多優 秀的python書籍和教程,可以根據自己的需要進行選擇。

基礎知識學完了,就可以問問自己學它是為了什么,目的性一定要強,我們總不會為了考試是嗎,總歸有相關的工作需求你才會想學python,根據你的工作需求確認一下你需要學習什么模塊,python是有非常非常豐富的第三方模塊,可以幫助你快速完成你所需要的自動化開發工作。這部分就比較讓人激情澎湃,這就是你需要偏重的學習的方向,首先要搞清楚你的需求是什么,然后再選擇用什么模塊,用什么模塊學什么模塊!接下來就會有實實在在的產出了,哈哈,可以說,接下來是見證奇跡的時刻!!Python有很多模塊,這些模塊可以幫你實現很多功能,所以千萬不要嘗試自己寫測試庫,請先嘗試找相關的模塊,這些模塊可以讓你事半功倍!例如手機測試可以用它的Monkeyrunner模塊,路由器項目可以用它的selenium模塊,需要調用運行在操作系統上的軟件可以用pywinauto模塊。。當然一個項目需要有自己的架構,連架構Python的模塊也幫你解決了:unittest模塊,所以Python是個多么貼心的人兒啊~~所以千萬千萬不要上來就想所有的功能都要靠自己寫......[詳情]

Python自動化實際操作篇:

前面聊到了為什么要學習Python和具體學習Python的方法,下面有幾個51Testing會員在實際測試工作中應用Python遇到的問題,你能幫他們解答一下嗎?
1) Python如何實現對系統的API接口功能實現自動化測試?
2) 如何對Python寫的程序進行 GUI 自動化測試?
3) Python用于工業控制自動化測試怎么樣?
4) 移動APP的UI和接口自動化測試怎么進行?

就像上面的4個問題,其實可以參考我在網校上的“Python系列課程”,這個課程就是解答了不同類型的產品需要使用哪些第三方模塊,課程是根據我在工作中的實際的項目進行講解,并給大家總結了一套方法,供大家在自己的工作進行應用。如果真的感興趣的童鞋,可以去看一下這個課程。

這里我簡單講解一下常用的幾個第三方模塊:

a. 基于網頁的測試的項目,例如路由器測試的自動化,用到的模塊Selenium (說人話:就是你在做黑盒測試的項目,需要打開瀏覽器,需要測試的功能都是在網頁上。)而我們這個Selenium這個模塊提供了很多用于控制網頁以及網頁上各種控件的函數,所以在有了一定的Python的基礎上再結合Selenium模塊就可以達到我們的目的(說人話:對于Python的基本語法有了解,做過簡單的Python的項目即可,不需要太深入的了解,要問為什么,因為你只有函數沒有其它代碼如何將這些函數組織起來,實現你想實現的功能呢?)

b. 基于運行在Windows OS上的程序的自動化,例如硬件的測試需要控制,用到的模塊Pywinauto(說人話:就是不管是我們軟件測試還是硬件測試,只要用到運行在windows系統上應用軟件,就可以通過控制這個軟件進而實現自動化)我們這個Pywinauto這個模塊提供了很多控制應用軟件以及應用軟件上各個控件的函數。

c. 補充模塊:Pymouse和Pykeyboard,這兩個模塊就是控制鼠標和鍵盤的,一定要慎用這兩個模塊,它們只是上述兩個模塊的補充......[詳情]

5) Python常用的測試框架有哪些?

1) 是的在開發一個相對來說比較復雜完整的項目就要考慮“測試框架”的問題了,在我們實際工作中,使用較多的就是unittest框架了,因為不管是什么類型的測試,都需要搭建測試框架,即test case怎么組成的,怎么執行,最后怎么生成test report。

接下來給大家簡單介紹一下unitest框架,首先它是python自帶的模塊,所以不需要另外安裝。它的基本構造是將一個個test case打包成一個個獨立的“模塊”,然后根據需要再將這些test case使用test suit繼續歸類,然后再使用test runner運行,可以以模塊為單位進行運行,然后再根據Assert方法判斷你的每個case的執行結果,最后使用網上開源的免費的模塊:HTMLTestRunner.py生成一個漂亮的測試報告......[詳情]

6) 在實際項目中Python可以結合哪些測試工具做自動化測試?

這個問題,其實很難回答:因為實際上python可以結合很多測試工具,哪怕這些測試工具是你們公司自己獨立開發的測試工具,我們也可以將其搭配我們的python進行自動化測試。關鍵看是什么樣的測試工具,因為python主要是靠第三方模塊來實現具體的可用于實際工作自動化開發,我們已經學習的第三方模塊是:Selenium,可以用于控制瀏覽器(市面上主流的瀏覽器均可使用);pywinauto,可以用于控制運行在windows OS上的軟件;pykeyboard以及pymouse均是控制鼠標和鍵盤的模塊......[詳情]

感謝王平平老師為大家帶來這么豐富的內容分享,詳細大家看完這些內容對于學習Python自動化應該不在迷茫了,最后您還有什么話想對我們會員說的嗎?

時間有限只能與各位分享到這,我最近因為公司的發展需求,需要學習前端開發,哈哈后端也是Python實現的哦,所以Python真的是一個應用非常廣泛的語言。嗯,有點扯遠了,我近期學習的前端開發,非常酸爽,痛并痛著,但是我秉持著與學習Python一樣的理念,一樣的思路:首先先將所學知識在頭腦中搭建框架,然后再對這個框架中慢慢添加磚塊,哈哈像極了蓋房子是嗎,真的,這樣思路清晰的學習,會讓你事半功倍,本周已經寫了一個小項目,所以,相信我,不管學習什么語言,都是有一套相同的方法的,對了,后續有機會我會寫有關前端開發的相關文檔,或者出一些相關的課程,呵呵,我就是一個這么愛分享的好孩子^_^。

專家簡介

13年軟件測試經驗,12年測試團隊管理經驗,5年Python自學及開發經驗并帶領團隊從一個純黑盒手動測試升級為一個既能測試又能開發的"測試研發團隊"。兩年的C++自學以及開發經驗,對于統計學如何應用到實際工作有獨到的見解。并在《51測試天地》連續發表10余篇文章。

專家在線視頻

評論


關于我們 | 廣告服務 | 招聘信息 | 會員注冊 | 聯系我們 | 站點地圖 | | 滬ICP號05003035號
意見反饋/投稿郵箱:editor#51testing.com(請將#修改為@)
Copyright?51testing.com 2003-2017 All Rights Reserved

日本av