聊聊Python在我工作中的应用
这篇文章介绍了我在工作中接触的python的使用场景,就当作回忆录了吧。
我用python做了哪些项目
到目前为止,主要用在了自动化测试、运维、爬虫这三个方面。
自动化测试
unittest+requests+httprunner
完成, 具体的框架后面文章会逐步介绍。基本是基于上一个项目框架做的。接触python后,涉及接口我基本上喜欢用代码写测试了,灵活方便。甚至于后来学习go,我用go写的项目,python来测。比postman
灵活的多。且能测出很多问题。我喜欢用python写代码去测试,而不是用各种工具。大多数情况下,使用python足够且能灵活的满足需求了。
目前市面上不少工具是基于这两个进行了封装,形成了所谓的自动化测试平台。很多工具,如RobotFramework
,SoupUI
,apipost
和SAT
(我在某公司时内部使用的)、web自动化平台等,这是我刚参加工作时使用的,不怎么需要写代码,最本质的就是发送post
和get
请求,然后传参回参的处理。虽然有这些方便的工具,但我还是喜欢用python写代码去测试。这类工具本质上都一样,用的顺手就可以。
代码因为涉及隐私,不会开源。但后面会用我自己敲的项目为例进行框架式的使用, 基本路子是一样的。
运维
我基于centos8.3.2011操作系统版本和kolla-ansible定制了openstack victoria版本的自动化部署脚本,这套脚本是我花费了很长时间一步步调试出来的。可以极大的提高部署openstack 效率,并在现网部署的时候使用。代码已经开源出来,希望能帮到有用的小伙伴。
除此之外,在云桌面项目,我也有使用python编写了十分简便的批量链接工具,
比如批量建立spice链接,同时测试60到70台虚拟机;
比如批量登录APP客户端;
批量并发测试接口,根据日志判断开发的消息队列等等…
这些就不详细介绍了,流程稍有复杂且是针对项目定制的。但在当时,我就用那台只有4G内存的笔记本,写出这样的代码,极大的提高了测试的效率,并且如果没有这些代码,手工进行操作是不可能也是不现实的。
爬虫
爬虫是python的强项
- 当时我根据B站视频,写了豆瓣爬取,
- 后来还给公司项目写了SIM数据流量采集和定时发送企业微信。利用的也是爬虫技术里的一种。
爬虫是python很重要的领域,爬取视频,音乐,批量获取数据,简历模板,爬取各种平台的数据等等,太多太多了。后面会详细介绍这个系列的文章。
locust压测
使用过python里的locust测试过接口,让我记忆深刻的是,我写好locust进行测试,跑起来后,第二天一早回来被测的系统登不上了。最后查到是日志把磁盘空间撑爆了!开发人员把日志文件配置配错了。locust进行压测虽然没有Jmeter效率高。但还是能说明一定问题的。包括它的图形变化等,到现在我都依稀记得。
其他
数据采集:我在做智慧盾构项目接触的,用python写盾构机数据采集程序,传输到云。今年面试的时候接触过斯菲尔电气,他们的数据采集用的Go写的,基于MQTT协议。但是面试官提到过模拟程序是py写的,这一点,和我当时类似,当时我为了测试,在原有真实采集的基础上,修改了代码,做模拟测试。
自动化测试客户端 : 在上一份工作中有接触到,基于PYQT写的,有windows平台,还有针对国产操作系统的。
web:基于openstack的云桌面管理系统,用的FastAPI框架。这个项目刚开始时我参加了一些简单功能的研发,印象深刻。尤其是接口写的不符合restful api风格,还被说了。
总结
上面列举了py在我实际工作中的应用场景,事实上不止这些,可以说是无处不在,后面会专门介绍。
由于时间关系,我不会单独整理py相关的知识点,之前的笔记也没保存下来,但有时间的话边复习边整理。作为辅助工具,它是很好的语言,可以当之无愧的作为神辅助,py相关的生态和知识点还是要继续学习的,语言基本功要打好,才能做到能想到,能迅速写出来。