想了很久瑰谜,覺得還是自己整理一個python做自動測試系列的心得。雖然現(xiàn)在網(wǎng)上很多這樣的文章但我覺得做自己事情讓別人說去吧贮庞,養(yǎng)成寫文章的習(xí)慣,你也能從小白晉升為大神究西。我為什么選擇python做測試窗慎? 其實沒特別的理由,就是覺得python比較簡單,可讀性也很好遮斥。因為我發(fā)現(xiàn)峦失,現(xiàn)在python的應(yīng)用很廣泛,人才需求也很大术吗,這個得益與這幾年互聯(lián)網(wǎng)公司敏捷開發(fā)模式的興起尉辑,python正好符合互聯(lián)網(wǎng)公司快的需要,如今python應(yīng)用在網(wǎng)站開發(fā)较屿,軟件測試隧魄,爬蟲、大數(shù)據(jù)分析等隘蝎。所以在下在此整理我自己工作中遇到的希望大家多多指點购啄。
Python自動化基礎(chǔ)篇之Python基礎(chǔ)知識整理(Python3.6)Python簡介來自廖雪峰的Python教程
Python是著名的“龜叔”Guido van Rossum在1989年圣誕節(jié)期間,為了打發(fā)無聊的圣誕節(jié)而編寫的一個編程語言嘱么。
現(xiàn)在狮含,全世界差不多有600多種編程語言,但流行的編程語言也就那么20來種曼振。如果你聽說過TIOBE排行榜几迄,你就能知道編程語言的大致流行程度。這是最近10年最常用的10種編程語言的變化圖:
總的來說拴测,這幾種編程語言各有千秋乓旗。C語言是可以用來編寫操作系統(tǒng)的貼近硬件的語言府蛇,所以集索,C語言適合開發(fā)那些追求運行速度、充分發(fā)揮硬件性能的程序汇跨。而Python是用來編寫應(yīng)用程序的高級編程語言务荆。
當(dāng)你用一種語言開始作真正的軟件開發(fā)時,你除了編寫代碼外穷遂,還需要很多基本的已經(jīng)寫好的現(xiàn)成的東西函匕,來幫助你加快開發(fā)進(jìn)度。比如說蚪黑,要編寫一個電子郵件客戶端盅惜,如果先從最底層開始編寫網(wǎng)絡(luò)協(xié)議相關(guān)的代碼,那估計一年半載也開發(fā)不出來忌穿。高級編程語言通常都會提供一個比較完善的基礎(chǔ)代碼庫抒寂,讓你能直接調(diào)用,比如掠剑,針對電子郵件協(xié)議的SMTP庫屈芜,針對桌面環(huán)境的GUI庫,在這些已有的代碼庫的基礎(chǔ)上開發(fā),一個電子郵件客戶端幾天就能開發(fā)出來井佑。
Python就為我們提供了非常完善的基礎(chǔ)代碼庫属铁,覆蓋了網(wǎng)絡(luò)、文件躬翁、GUI焦蘑、數(shù)據(jù)庫、文本等大量內(nèi)容盒发,被形象地稱作“內(nèi)置電池(batteries included)”喇肋。用Python開發(fā),許多功能不必從零編寫迹辐,直接使用現(xiàn)成的即可蝶防。
除了內(nèi)置的庫外,Python還有大量的第三方庫明吩,也就是別人開發(fā)的间学,供你直接使用的東西。當(dāng)然印荔,如果你開發(fā)的代碼通過很好的封裝低葫,也可以作為第三方庫給別人使用。
許多大型網(wǎng)站就是用Python開發(fā)的仍律,例如YouTube嘿悬、Instagram,還有國內(nèi)的豆瓣水泉。很多大公司善涨,包括Google、Yahoo等草则,甚至NASA(美國航空航天局)都大量地使用Python钢拧。
龜叔給Python的定位是“優(yōu)雅”、“明確”炕横、“簡單”源内,所以Python程序看上去總是簡單易懂,初學(xué)者學(xué)Python份殿,不但入門容易膜钓,而且將來深入下去,可以編寫那些非常非常復(fù)雜的程序卿嘲。
總的來說颂斜,Python的哲學(xué)就是簡單優(yōu)雅,盡量寫容易看明白的代碼腔寡,盡量寫少的代碼焚鲜。如果一個資深程序員向你炫耀他寫的晦澀難懂、動不動就幾萬行的代碼,你可以盡情地嘲笑他忿磅。
那Python適合開發(fā)哪些類型的應(yīng)用呢糯彬?
首選是網(wǎng)絡(luò)應(yīng)用,包括網(wǎng)站葱她、后臺服務(wù)等等撩扒;
其次是許多日常需要的小工具,包括系統(tǒng)管理員需要的腳本任務(wù)等等吨些;
另外就是把其他語言開發(fā)的程序再包裝起來搓谆,方便使用。
最后說說Python的缺點豪墅。
任何編程語言都有缺點泉手,Python也不例外。優(yōu)點說過了偶器,那Python有哪些缺點呢斩萌?
第一個缺點就是運行速度慢,和C程序相比非常慢屏轰,因為Python是解釋型語言颊郎,你的代碼在執(zhí)行時會一行一行地翻譯成CPU能理解的機(jī)器碼,這個翻譯過程非常耗時霎苗,所以很慢姆吭。而C程序是運行前直接編譯成CPU能執(zhí)行的機(jī)器碼,所以非逞湔担快内狸。
但是大量的應(yīng)用程序不需要這么快的運行速度,因為用戶根本感覺不出來升敲。例如開發(fā)一個下載MP3的網(wǎng)絡(luò)應(yīng)用程序答倡,C程序的運行時間需要0.001秒,而Python程序的運行時間需要0.1秒驴党,慢了100倍,但由于網(wǎng)絡(luò)更慢获茬,需要等待1秒港庄,你想,用戶能感覺到1.001秒和1.1秒的區(qū)別嗎恕曲?這就好比F1賽車和普通的出租車在北京三環(huán)路上行駛的道理一樣鹏氧,雖然F1賽車?yán)碚摃r速高達(dá)400公里,但由于三環(huán)路堵車的時速只有20公里佩谣,因此把还,作為乘客,你感覺的時速永遠(yuǎn)是20公里。
第二個缺點就是代碼不能加密吊履。如果要發(fā)布你的Python程序安皱,實際上就是發(fā)布源代碼,這一點跟C語言不同艇炎,C語言不用發(fā)布源代碼酌伊,只需要把編譯后的機(jī)器碼(也就是你在Windows上常見的xxx.exe文件)發(fā)布出去。要從機(jī)器碼反推出C代碼是不可能的缀踪,所以居砖,凡是編譯型的語言,都沒有這個問題驴娃,而解釋型的語言奏候,則必須把源碼發(fā)布出去。
這個缺點僅限于你要編寫的軟件需要賣給別人掙錢的時候唇敞。好消息是目前的互聯(lián)網(wǎng)時代鼻由,靠賣軟件授權(quán)的商業(yè)模式越來越少了,靠網(wǎng)站和移動應(yīng)用賣服務(wù)的模式越來越多了厚棵,后一種模式不需要把源碼給別人蕉世。
再說了,現(xiàn)在如火如荼的開源運動和互聯(lián)網(wǎng)自由開放的精神是一致的婆硬,互聯(lián)網(wǎng)上有無數(shù)非常優(yōu)秀的像Linux一樣的開源代碼狠轻,我們千萬不要高估自己寫的代碼真的有非常大的“商業(yè)價值”。那些大公司的代碼不愿意開放的更重要的原因是代碼寫得太爛了彬犯,一旦開源向楼,就沒人敢用他們的產(chǎn)品了。