随着测试行业的发展,"会代码"越来越成为测试工程师的一个标签。打开各大招聘网站,测试工程师月薪一万以上基本都有一个必备技能,那就是自动化测试。那么自动化测试到底难不难呢?下面我将会将我的经历讲给大家听,希望听完后,大家会有自己的一个判断。
1、我是谁
大家好,我是软件测试汪。不知不觉,入行软件测试也有小5个年头。待过创业公司也待过上市公司。做过功能测、自动化测试也做过性能测试。做过测试新人也做过测试组长。如果要是从这5年中说出最宝贵的经验,我想应该是知识体系化。那么什么是知识体系化,每个人都有不同,下面简单来谈一下我的知识体系化。
2、我的成长路线
功能测试——>UI自动化
回想刚入行那会,功能测试都玩不溜。所以花了很多时间在功能测试用例的设计上,随着项目越做越多。用例设计也变得手到擒来。自己的内心也不满足于只做功能测试,觉得自动化测试很厉害的样子。后来去学了代码基础。但是有一个问题,学了代码基础还是不会做自动化测试,因为那时候还傻傻分不清自动化到底有哪几种。随着学习的深入,知道软件测试中常见的自动化主要分为2种,一种是UI自动化,一种是接口自动化。那么先学哪个呢?当时觉得UI自动化有点不明觉厉,因为可以代替手工点点点,非常酷炫。后来又花小半年时间学习UI自动化。到这里可能有点人会说,UI自动化要学这么久吗?对于我当时来说,是的。虽然是计算机专业出身,但是大学学的东西基本都忘差不多了。我们先来看UI自动化要学哪些内容(以selenium举例),下面用个思维导图简单列一下:
当然UI自动化需要学的内容远不止以上这些,这些东西算是比较核心的。学习过程中所有的知识都是零散的,想要组合起来对一个小白来说却是很难。后来有机会加入一个新的公司,需要用到UI自动化,然后去GitHub上找了很有优秀的代码以及看一些博客,终于实现了第一个自动化项目。那种感觉是非常棒的,但是也被个大神说这有啥,不就是按键精灵吗(捂脸哭)
UI自动化——>接口自动化
当然,也是被这个大神带上走接口自动化之路,有了UI自动化学习经验,学习接口自动化基本没有费什么功夫。如果让我说UI自动化和接口自动化各有哪些优缺点,这是不好比较的,其目的都是为了软件质量。但是如果让我选择,我会选择接口自动化,因为接口一般是不容易变得的,UI界面是经常变的,所以接口自动化的维护成本相对较低。
接口自动化——>性能测试
UI自动化,接口自动化学完了,学什么呢?我又去学了性能,为什么学性能,完全是工作需要,后来发现性能真的是个无底洞,需要了解开发知识、服务器架构、操作系统、测试监控工具、容器知识等等。知识面太广,现在还在苦苦挣扎。当然在性能测试过程中,也去学了一些开发知识,之前做UI/接口自动化或者功能测试时只能从黑盒/灰盒层面去判断BUG原因,学了开发知识后,大概就知道这个bug是如何产生了。这对我自己的测试生涯也算是有了一个提高。
说了这么说,其实我们软件测试人员的知识体系常见的就以下几点:
当然这个体系要细可以很细,每个点可能都需要串很多知识,但是当我们真正用到的时候,发现其实很多知识都可以串起来的。当我们有了自己的知识体系,我想,不论在哪家公司,不论什么项目,基本都可以做到游刃有余。当然这个体系里面有一个最重要一点,就是记笔记!这也是我为什么花3个月时间整理《测试开发之Python Django 接口自动化测试框架实战》路线图的原因。
3、我整理的接口自动化测试
下面来看一下我整理的《测试开发之Python Django 接口自动化测试框架实战》有哪些内容:
《测试开发之Python Django 接口自动化测试框架实战》路线图分为7个部分
第一部分python、python IDE 以及本地数据库环境安装。
第二部分django的基础,让大家对django有一个快速的认识。
第三部分http协议以及cookie和session,然后根据前面所学知识开发一个博客系统以及教会大家如何编写接口测试文档。
第四部分Python下面的requests库,是接口自动化必备技能。
第五部分unittest单元测试框架,如何使用参数化编写接口测试用例,如何初始化我们的数据库,如何批量运行我们的测试用例以及生成测试报告。然后带大家开发一个属于自己的接口自动化测试框架。
第六、七部分git/GitHub基础,带领大家对项目进行持续集成。
那么为什么是这7个部分?
1)虽然是如何使用python做接口自动化测试。但是我们为什么讲开发?我们常常说接口测试接口测试,那么什么是接口?接口如何开发?想一下,如果我们连接口都会开发了,接口测试对于我们测试人员来说是不是小菜一碟。
2)一定要有python基础。因为Django本身也是python下的一个框架。
3)好了,接口开发出来了,也会使用python做接口自动化测试了,这样就够了吗?答案是当然不够。为了满足企业级需求,我加入了Git/GitHub以及持续集成的部分。
4.技术基础及如何进阶?
技术要求:
Python基础!Python基础!Python基础!重要的事情强调3遍。
比如简单的接口我们会开发了,那么如何去开发一个完整的系统(接口测试平台)?就需要我们深入学习前端知识和Django开发知识了。这也是我们成长为测试开发的必经之路。再比如我的路线图中用的是MySQL数据库,如果我们项目用的是oracle数据库,我们应该如何连接以及如何初始化我们的数据库呢?学习无止境,搜索引擎会是我们最好的工具。
5.收获
有了代码量,不论是在公司还是出去找工作也会更加自信。回到我们开始提出的问题,自动化测试到底难不难?我的答案是看你想不想学。4G的普及,带动了APP的快速发展,同时也养活了我们很多测试工程师。5G就在眼前,我们很难预知5G是否会是测试人员的一个机遇。但是我们可以肯定,如果我们止步不前,未来一定会离我们越来越远。
资源分享
对于开始学习【软件测试】或是技能进阶的朋友来说,绝对是最全面的教程仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
关注【程序媛木子】微信公众号获取测试资源,技术交流群(644956177)