目录

聊聊Python在我工作中的应用

这篇文章介绍了我在工作中接触的python的使用场景,就当作回忆录了吧。

我用python做了哪些项目

到目前为止,主要用在了自动化测试、运维、爬虫这三个方面。

自动化测试

RDRS系统全流程自动化测试
说起这套代码,我要十分感谢当时把我招进去的项目经理,当时他把我喊到座位上,给我演示他写的这一套代码,运行起来后,页面上也有了变化。总之,我当时的感觉很神奇!后来他给我讲了一个多小时的python基础(字典,列表等)。然后我就回去开始写了!不到一周我就可以上手去一点点修改和优化他写的这套代码,到生成自动化报告,自动发送邮件等。这是我第一次接触python,在此之前,我一直钟情于Java。学了python后,一发不可收拾!
OcloudView 平台的全流程测试
这套代码是我独立完成的,主要基于unittest+requests+httprunner完成, 具体的框架后面文章会逐步介绍。基本是基于上一个项目框架做的。

接触python后,涉及接口我基本上喜欢用代码写测试了,灵活方便。甚至于后来学习go,我用go写的项目,python来测。比postman灵活的多。且能测出很多问题。我喜欢用python写代码去测试,而不是用各种工具。大多数情况下,使用python足够且能灵活的满足需求了。

目前市面上不少工具是基于这两个进行了封装,形成了所谓的自动化测试平台。很多工具,如RobotFrameworkSoupUIapipostSAT(我在某公司时内部使用的)、web自动化平台等,这是我刚参加工作时使用的,不怎么需要写代码,最本质的就是发送postget请求,然后传参回参的处理。虽然有这些方便的工具,但我还是喜欢用python写代码去测试。这类工具本质上都一样,用的顺手就可以。

代码因为涉及隐私,不会开源。但后面会用我自己敲的项目为例进行框架式的使用, 基本路子是一样的。

运维


基于kolla-ansible部署openstack V版本自动化脚本

我基于centos8.3.2011操作系统版本和kolla-ansible定制了openstack victoria版本的自动化部署脚本,这套脚本是我花费了很长时间一步步调试出来的。可以极大的提高部署openstack 效率,并在现网部署的时候使用。代码已经开源出来,希望能帮到有用的小伙伴。

online_deploy_victoria

云桌面相关脚本

除此之外,在云桌面项目,我也有使用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相关的生态和知识点还是要继续学习的,语言基本功要打好,才能做到能想到,能迅速写出来。