测试工程师如何进阶(自动化、性能、测开)
简介
功能测试(所谓“点点点”)但是你不可能一直点。入行3年后,你需要拥有不止点点点的技能,否则出去面试,你会就会感受到竞争者给你带来的压力,你需要拿出更高级的技能,在这个越来越卷的测试行业,持续学习是一门必修课。学什么,如何学,每个人有每个人的看法,在这里,我从个人的角度来谈谈。
自动化测试,性能测试,测开。相信每个人或多或少都听过这些词汇,对于刚入行的测试工程师来说,这些词汇都具备非常大的诱惑力,因为它代表更高的技能水平,代表更好的薪水,也是个人标签的认定。这三个词汇到底代表什么含义。这里需要好好的来解释一下。
自动化测试
自动化测试可以理解为先用工具或者代码编写好可运行的测试脚本,一键执行。执行完成后会有测试结果出现告诉你成功了多少,失败了多少。自动化测试的意义是减少重复的人力劳动,一般是业务稳定之后,用来做回归测试,模拟手工测试的过程。但不能说自动化是万能的,它不能代替手工测试。而且属于前期消耗人力的一种测试行为,需要测试人员去维护和更新脚本。
当前行业内的自动化测试主要分为Web端的UI自动化(浏览器网页),APP端的UI自动化(移动app),接口自动化。UI自动化主要是模拟用户在网页上的操作行为,比如点击按钮,填写内容,主要测试对象为网页。接口自动化是模拟网页调用后台接口的行为,测试的对象主要为服务端接口。下面分别来介绍自己接触的工具和框架。
- Web端UI自动化框架介绍,排名分先后:
- Python+selenium+unittest,行业内的主流UI自动化框架,python语言简单易懂。学习起来非常容易上手
- Java+selenium+TestNg,以java语言为主的UI自动化框架。和上面的区别主要是编程语言的区别。
- python+RobotFramework,在测试行业有一定的比例,关键字驱动进行的自动化。robot为可视化的工具,引入selenium包后即可进行UI自动化。
- APP端的UI自动化工具介绍,排名分先后:
- Python+Appium+unittest,行业内的主流自动化框架,python语言简单易懂。学习起来非常容易上手。
- Java+Appium+TestNg,以java语言为主的自动化框架。和上面的区别主要是变成语言的区别。
- 接口自动化框架介绍,排名分先后:
- python+unittest,接口测试不借助第三方包,所以纯代码即可实现,python语言简单易懂,加上python自带的unittest断言工具即可实现接口自动化。当然,现在python+pytest也是非常火了。更建议学习。
- Java+TestNg,java语言的自动化框架,TestNg为java自带的断言工具。
- python+RobotFramework,robotframework为可视化工具,引入python requests包,可以实现接口自动化。
- Jmeter+Ant,此工具行业内一般用来做压力测试工具,但是也可以做接口自动化。优势为可视化工具,学习难度成本低。
补充一下:自动化测试不可缺少Jenkins,所以以上的自动化都是要结合Jenkins去运行的,所以Jenkins也是必不可少要学习的。
性能测试
性能测试主要解决的是测试公司的当前服务器(Linux操作系统)能力如何,保障服务器能满足XX的压力,发现服务器当前的瓶颈和解决方案。公司里专职的性能测试并不多,专职的性能测试一般在对外服务的公司里(公司卖服务)以及大公司(用户量大,交易量大)居多。创业公司,普通公司一般不会做性能测试。
性能测试工具介绍:
- Jmeter:行业内开源的工具,易上手,扩展性强。学习者需要学习jmeter常用组件用法,脚本的编写。
- loadrunner:历史主流工具,会逐渐被jmter取代。
学习建议:学jmeter即可,工具会用不代表会了压力测试,仍需要学习常用压力指标比如:TPS、错误率、90%平均,常用的Linux监控命令比如:top、vmstat。可视化工具比如:influxdb。性能测试是一门高深的测试内容,需要熟悉Linux服务器相关知识,还需要了解运行在服务器上的应用原理。初学者只能学个皮毛,需要在公司内实践才能逐渐提升。
测试开发
测试开发这个词可以解释为既要会测试,又要会开发。测试开发在公司里主要的职责为开发方便测试的系统用来提升测试和工作效率。我就在公司里开发了一个用于流程管控的系统,将提测,上线的流程系统化。然而大多数公司是没有测试开发岗位的。因为对测试的技能要求高。但是测试开发的薪水都普遍很高。下面介绍测试开发学习路线。
- 前端知识:html、css、js、vue,既然要做系统,前端知识一定不可或缺。
- 后端知识:以python为主的开发框架,比如flask,Django。以java为主的开发框架,比如springboot。
- Linux知识:你需要将系统部署到Linux系统,所以Linux系统是需要非常熟悉的,可不是简单的那些Linux操作命令。
- 数据库知识:开发系统,数据库知识也是必不可少,建表,sql语句都是要去要会的。
- 其它知识:以上学习过程中需要的其它知识,比如maven,docker等
本文来自博客园,作者:love_x,转载请注明原文链接:https://www.cnblogs.com/love-x/p/18185950