露珠是一名愛好養花的測試員,熟悉python,減少了很多重復性的工作。扯一扯這兩個月的學習總結:
基礎
語法,數據結構什么的翻一遍手冊足夠了,用到的時候不會了再查,相信只有你想不到的沒有python不支持的(此處忽略老牛)。
文件
嘛,作為一名測試,起初最需要用到的就是python的文件操作,各種讀寫文件,分析數據神馬的。。這里需要用到的就是python file操作、以及各種數據結構的用法了,比如List,dict 等等,,至於后台數據生成的文件,大多是json啦,excel啦,cpickle啦,這些都有現成的庫支持。
比如, json的用法
import json
#data獲取到的是一個dict或者list結構的數據
data = json.load(open(filename, 'r'))
#將dict dump進一個文件,存儲格式為json格式
json.dump({'x':1, 'y':2}, open(filename, 'w'))
其他的類似。。
異常處理
在文件讀寫或數據分析時,經常會因為各種原因導致程序不能正常運行,比如,json文件可能由其他語言生成,空數據是null,但python中沒有null,只有'',這個時候數據分析就會出現異常,但是大多情況下,我們一條或幾條數據的異常並不影響我們的結果,所以,我們需要對這些異常進行捕獲。
try:
except Exception:
可以幫助你跳過這些異常,即便這樣了,或許你需要有個Log來記錄下這些異常,不影響結果但可能需要了解出現了哪些異常,露珠用了logging module來生成log,python的log module有很多種, ^_^ 功能強不強大不要緊,夠用就行。
這些只是對程序已知可能出現的異常進行了處理,但往往,最頭疼的是程序中不可知的一些異常,導致程序崩潰,甚至崩潰時不留下一點痕跡,嘛,露珠在自己電腦上跑了個文件解析的程序,跑了24h+,突然就崩潰了,,哭了,好在最后各種辦法查到了崩潰的位置,然后更改下代碼接着跑,更改之后再也不怕它崩潰了 ^_^。
用到的方法就是:atexit。用法:
import @atexit.register
def atexit_fun():
##
do_my_work()
在程序崩潰退出前做好善后工作,以防措手不及 ^_^。
資源分配
露珠的這個文件分析程序,之所以跑了那么那么久,一開始露珠也不知道瓶頸在哪,不過通過profile工具,就能很方便的看到程序運行時資源的分配(嘛,這里要說下,分析資源分配時只用少部分數據即可,不需要跑一天一夜)。至於profile具體用法,自行百度哦 ^_^。。
有些時候,多線程可能會對程序的執行效率有所改善。Python自帶有thread庫,但是注意線程安全哦,python的原生數據結構都不是線程安全的,需要搭配thread.lock使用。這里python threading.thread露珠需要提醒下童鞋們,threading.thread重寫了run()方法,但是調動線程用的是start()方法,反正我是犯2了 =O=
以上說的是作為一名測試開發會用到的技能,下面扯一扯測試人員需要的技能:
單元測試
這里露珠用的unittest,還有個庫叫做coverage,是做代碼覆蓋率統計測試的,具體用法百度哦 ^_^,見諒見諒~~
測試中,不同的項目或者功能需要我們安裝不同版本的庫,如果在一台機子上一直這么搞的話,估計要瘋了,露珠推薦virtualenv,一個虛擬的python環境,在虛擬環境中所安裝的庫不會影響本地,虛擬環境可以搭多個,用完刪掉虛擬環境即可。
兩個月的學習大體就這些了 ^_^,露珠第一次寫博文,有幫助給贊哦,另外,有錯誤的地方請指正 ^_^~~