【工作经历分享】软件测试求职真的难,但是我还是从7K涨到了14K_软件测试二年的工作经验是不是不好找工作(1)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在这里插入图片描述

2020年那会,找工作真的太难了。。。

后来还是找到了,就是我上一家公司,电商行业,自研的saas平台。20年5月份入职,还记得入职那会,他们测试就只有一个小姐姐,后来才知道因为项目即将上线,他们才招了我进来。

入职第一天,小姐姐直接把一份测试用例、以及原型发给我,让我在两个星期内把用例过完一遍,有问题直接提禅道上。

说真的,我一头雾水,他们都没有对我进行培训,就直接让我负责这个新项目的测试了,但我新来的,对这个项目真的不熟悉啊,主流程是什么?不知道。如何业务闭环?不知道。

幸好我还应付得了,凭借之前实习以及第一份工作积累下来的经验,自己慢慢摸索,两个星期内就基本了解了主流程、基本业务,也顺利把测试用例跑完了,提交了N多个BUG。

其实这个电商平台刚上线那会,做的只是一期功能,看上去很庞大,涉及web、APP、小程序,但现在看起来,也不过如此。

在公司站稳之后,顺利转正,因为我从入职第一天就开始负责这个saas电商平台的测试,后来公司组织架构调整后,他们就让我专门负责这个项目,另一个同事小姐姐,负责其他杂七杂八项目的测试。

整个2020年,都在一种无聊又安静的环境中度过,那时候客户并不是很多,每次迭代功能比较少,我一个人负责全平台测试,还是可以的。真正转折点应该是2021年,电商行业火爆,公司业务扩展迅速,基本上客户量每个月都以一种指数级的速度来增长,需求自然就多了,往往一次迭代就有10个功能,有些还是大的功能,需要开发这边改动很大的代码量,新添加接口,所以BUG就很多,往往都是一边开发,一边测试,有BUG就迅速提给开发,火速修复,发布测试环境,再验证。

然后是加班,2021年开始,加班很多,特别是上线前几天,项目组往往加班到八九点,上线当天加班到11点。累是肯定的,但主要还是我一个人负责整个项目的测试,从web、APP、小程序,都是我一个人搞,其实公司中途也尝试过给我招人,不过都因为某些原因跑路了,有些人干了一个月跑了,有些刚好准备转正,又跑了,所以这两年来,终究还是我一个人扛了下来,就自然而然变成我一个人负责整个项目的测试,以及相关的工作。

有的人会问,不是还有一个小姐姐的嘛?是呀,整个公司就只有我们两个测试,但她也和我一样,忙,各自负责一些项目。

21年的时候,心力交瘁,迭代频繁、新需求源源不断、加班严重(没加班费),虽然我公司是双休的,但我还是累得像狗,拿着7K的工资,整个项目都是我一个人测试,相当于一个人干着两三个人的活了。

在这里插入图片描述
那一年,我都有无数次提桶跑路的想法。

但仔细想了一下,发现自己还是不够资格,因为我在这家公司做了这么久功能测试,单纯的点点点,就算跑路了,那下一份工作呢?还是重复这样的点点点吗?

痛定思痛,也就是这一年开始,下定决心要把自己的专业技能提升上去。

jmeter

比如jmeter、postman,2018年我实习的时候跟着部门老大学的,大学那会儿老师可没教这些。因为这份工作单纯就是点点点,我几乎没用过这些,我就去网上自学,还有B站,我就是在B站白嫖了某一个机构的公开课,把jmeter的入门都学会了,比如接口的上下关联、token跨线程调用、参数化、正则表达式、json提取、jmeter+ant+jenkins、压力测试、jp@gc监控,等等,学了之后,自己把jmeter应用到公司的项目,把项目中将近1000个主流程接口全部集成到jmeter中,每次迭代上线前两天我都会跑一遍脚本,来检验有哪些接口又被开发搞坏了(防止背锅,你懂的)…

而且学会jmeter接口测试之后,确实大大降低了压力,提高效率,比如说有时候开发改了某些逻辑,只是后端修改了接口,前端没改,那我只需要测接口就知道有没有BUG了。

然后是postman,因为熟悉了jmeter,postman做起来就简单多了,因为他俩差不多的。所以很多事情往往没有大家想得那么困难,只要你学会了其中一种,另一种就很容易上手了。

python

python是一定要学的,这是我个人理解,不信大家可以去主流的几家招聘APP查一下,你想拿15K以上,必须要会python、java其中一门语言,而python相对简单、容易入门,所以绝大多数测试都是以python为切入点,用它来做接口自动化、UI自动化。

我自己是在博客园、CSDN这些论坛学的,看大佬们的文章。但我并没有从零开始学python,我是直接copy大佬们的代码,自己一点一点修改,把它应用到公司项目去。

我最开始学的是python+unittest+requests这个自动化框架,遇到不懂的,就直接网上查,比如说我在学这个框架的时候,最开始就遇到一个跨不过去的难题,token如何跨.py文件传参? 我就论坛上查,学到了两个方法,一个是通过global设置全局变量,另一个是把登录接口传出来的token写入一个文件里面,遇到需要token的时候就取出来。

所以网上自学,基本都是这样的,你想学基本的、入门的,网上肯定有,论坛、B站,都行,自学过程中遇到很多问题,也是可以通过网上查,通过大佬们的文章,自己慢慢领悟,比如上面提到的token如何跨.py文件传参? 我查到的文章,他们写的代码和我的不太一样,我是参照他们的,然后自己改了,但最后的效果都是一样的,所以自学的过程,提升的速度是非常快的,因为自己是带着问题去学的,事前思考,事后复盘,往往会更有见效。

mysql

linux

Fiddler/charles

这些就更不用说了,作为一名测试,肯定是要学会的。像数据库mysql,我个人总结是:面试必问、不懂必挂。

linux在面试中也是问得比较多。

fiddler、charles这些是抓包工具,一定要掌握的。我在上一家公司的时候,一开始其实是没那么在意抓包这种,后来我就学着一边测试,一边打开F12,时刻关注接口的变化,就在这种潜移默化中,对抓包、接口的分析也懂了很多,对于提升自己的接口测试、定位前后端BUG,确实有很大的帮助。

我后来吧,还自学了charles的其他小功能,比如弱网测试、打断点、映射,都是非常实用的,都在实际测试中用处很大,比如说之前一直有客户反馈我们的APP偶尔有闪退,但是开发暂时没法定位是啥原因,后来我用charles的弱网,终于把BUG重现出来了,因为网络很差的时候,前端没法处理一些数据,安卓APP自带的机制,直接就报crash了。


另外,我还自学了adb+monkey,用于APP测试。因为上一家公司的时候,我们是有APP的,加上两年前我面试过一家公司,面试官问我会monkey吗?那时候我听都没听过,又挂掉了…所以我就干脆把这个也学了。

除了上面这些,在2021年的时候,我还跟着项目组的架构师,学了性能压测、了解了微服务、分布式、k8s、nginx负载均衡、linux服务器,等等。然后自己通过网上自学,用目前比较流行的jmeter+grafana+influxdb搭建了一套性能测试的框架。

虽然没有进行过很正规的性能测试,但起码知道了很多关于性能压测的东西,比如全链路压测、分布式压测、中间件、redis等等

所以,2021年的时候,我一边工作,一边在空余的时间里自学,一个测试工程师所需要掌握的技能,我基本都学了,在学习的同时,还把自己学到的知识应用到公司的项目中,一方面确实提高了测试效率,另一方面也提升了个人水平,找下一份工作的时候,底气也足了。


顺便说一下自己这份14K的工作是如何找到的。

我是今年五月换的工作,上一份工作刚好做满了2年。

经过2021年的自学,感觉自己的能力已经有了质的提升,像jmeter、postman、python、mysql、linux都学了,还学会用jmeter+ant+jenkins、python+unittest+requests搭建了自动化测试框架,基本上达到了一个自动化测试工程师的水平吧,觉得找一份12以上的工资应该不难。

起码我当时是这样想的,预期薪资是12K。

万事俱备,只欠东风,今年4月开始在五百丁更新自己的简历,有了上一份工作的经验,自己简历也多了很多亮点,比如独立负责过大型互联网saas平台的测试流程、使用jmeter+ant+jenkins、python+unittest+requests搭建过自动化测试框架。

投简历的时候我是有针对性地去投,凡是薪资低于12的一律不投递,集中投递15-20这个范围的。

投了没几家,就开始有公司约面试了,当然也有不少外包,疯狂主动找上门,比如我在boss、拉钩上设置了简历公开,最开始目的是为了让其他HR可以看到我的个人简历,但设置简历公开之后,每天都收到20、30多个HR主动打招呼,其中90%都是外包公司的。。。

在这我给大家总结一下为什么外包会主动找我,因为我2019年毕业到现在,已经有三年测试经验,上一家公司我是独立负责大项目的全流程测试,会接口测试、会jmeter、python、mysql,外包公司是非常青睐这些,加上大多数外包的测试岗位,其实还是手工点点点,所以在她们看来,我就是一个相当不错的候选人。这不是我吹,事实就如此,我也有不少同学在网易、平安做测试,同样拿着十几K的薪资,干的还是功能测试。

但我个人不是很喜欢外包,所以就拒绝了。

最后相中了一家,三轮面试,电话面试、网上笔试、视频面试,一炮而过。视频面试的时候,个人感觉挺好,面试官问的问题,全部都回答上来了,而且很多问题都是在以前实际工作中遇到的,结合自己的感受,自己概括出来,回答的效果就非常好,这种肯定不是培训出来的小伙伴所能到达的境界。比方说,面试官问了我一个印象中最深的BUG,哈哈,这个问题还真是遇到了,我不知道面试官是不是也是第一次面试,还是照搬网上面试题。

我个人回答是,不止一次遇到过一些印象深刻的BUG,我就举例其中一个,去年国庆、今年元旦的时候,我公司服务器宕机了十几分钟,当然宕机的原因有很多,比如常见的就是节假日流量太大了,服务器集群本身配置很低,扛不住大流量访问、或者是代码有问题某些死循环耗尽了资源、又或者是不合理的查询导致内存大幅度飙升,比方说后端接口在查询时没有做分页,我在测试的时候,直接使用DataFactory给测试环境造了几十万条数据,然后查询某个操作日志的时候,后端直接返回了几十万条数据,这种情况,服务器不崩才怪呢,所以我在日常测试中,但凡是碰到有查询功能的,一律要求后端做分页,一次加载300到500条数据就够了,后来我们还优化了查询的方式,每次只能查询三个月以内的数据,尽可能减少查询的数据量。ps:每次只能查询三个月以内的数据,并不是说你只能查过去三个月的,比如6-8月的,不是这样的,你还可以查今年1-3月的,还可以查去年10-12月的,只不过做了限制,日期输入只能选三个月的范围。这样一来,服务器压力就比较小了,特别是我们做电商行业的,数据量真的是太大了,并发量又高,10万以上的TPS,对数据的访问一定是慎之又慎。

当我这样回答的时候,我相信面试官是非常肯定我的答案的,因为这种答案结合了自己公司的项目,实际发生的现象,最后如何解决、优化,全都有,肯定不是那些培训出来的小伙伴能想得到的。

第三轮的视频面试,除了有点小紧张,因为我是第一次线上视频面试的,面试官说话又有点听不清楚,哈哈,不过还好,总体感觉良好,问的问题都回答上来了,除了刚才那个“低级”问题,面试官还问了我linux常用命令,比方说 如何动态查看日志? 这个当然是tail,例如tail -n10 -f xx.log。

还问了对python熟悉吗?测试中有没有用python做过什么? 这个刚好问到我熟悉的点,去年到今年,一直在学python,我就回答有用过python+requests+unittest框架做接口自动化,直接封装项目接口,再结合jenkins做了持续集成,在日常的时候跑一遍接口,检验有没有问题,上线前两天也会跑几次接口,确保主流程、重要的业务场景没有任何问题。

在聊到python自动化时,面试官又问了 “你在做自动化的时候,有没有尝试对一些测试数据进行处理?”、“你的自动化是如何分层的?”

第一个问题我可以回答上来,无非就是ddt呀,就是测试数据和用例要分开,方便不同的数据来测试而不用改动代码,或者结合csv数据表也行的。

第二个问题,我一开始不是很理解,我就问对方这个“分层”指的是什么?我以为是项目架构的分层。面试官说你的用例、还有一些你写的方法、全局引用等等是如何分开的,以及用例是如何执行的?哈,他这么一说我就立马懂了,这无非就是unittest框架的分层嘛。太简单了,直接上图。

在这里插入图片描述

类似于上面这种,其实就是一个接口自动化的框架,unittest的。

分层指的就是公共方法、测试数据、测试用例、测试报告、日志等等,分层,比如说:

commom里面我就写了一些get、post请求的公共方法、读取文件的方法;data里面我放的是测试过程中生成的数据,可以给到下一个接口调用的;gol放的是全局引用,典型的就是token传参;report就是测试报告;test_case就是测试用例,按功能或业务模块划分;run_all就是执行测试的主方法,上面截图就有完整的代码,通过discover查找测试用例,批量执行,最后HTMLTestRunner输出测试报告。

反正就是巴拉巴拉地说了一通,按照自己的理解和平常玩unittest的经验,给面试官总结性说一下。除了以上这些问题,其实视频面试时,问的问题还挺多的,从基本的常识、问到mysql、linux、python、自动化、测试流程,等等。不过我都能顺利回答上来,哈哈。

面完之后,还不到15分钟,他们的HR小姐姐给我打了电话,说我目前是离职还是在职状态,听到这个,我就知道稳了,刚好那时候我已经和公司提了离职,也都在交接工作中,所以就直接回答在职中,但已经提了离职申请,在交接工作,预测最晚下个礼拜三就能入职。HR小姐姐听到后,就“嗯嗯嗯,好的”,我听她的语气我就知道这个offer已经拿定了。

大概又过了半个小时吧,小姐姐正式通知我公司录用我了,然后她就问了我目前手头上还有没有其他的offer,预期薪资是多少…听到这里,我心里就笑了,真的,她一开始就问我手上有没有其他offer,那我肯定回答有啊,哪怕我没有,作为谈薪资的阶段,这位HR小姐姐貌似还有点年轻,居然把筹码丢给了我,让我获得了主动权,我说现在手上有两个offer,一个是15K,13薪,另一个是16K,12薪,但目前还是在考虑中。然后HR小姐姐就说她们这边开出的是14K,13薪,让我考虑一下她们,我跟她说我现在考虑中,因为另两个offer虽然薪资高一点,但一个环境不太符合我,另一个是金融行业外包。(其实这都是假的,你懂的…)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

正的技术提升。**

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值