两个月学习Python的胡言乱语
露珠是一名爱好养花的测试员,熟悉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环境,在虚拟环境中所安装的库不会影响本地,虚拟环境可以搭多个,用完删掉虚拟环境即可。
两个月的学习大体就这些了 ^_^,露珠第一次写博文,有帮助给赞哦,另外,有错误的地方请指正 ^_^~~