3年测试越来越迷茫... 技术跟不上接下来是不是要被淘汰了?
Posted 测试界的彭于晏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3年测试越来越迷茫... 技术跟不上接下来是不是要被淘汰了?相关的知识,希望对你有一定的参考价值。
这两天和朋友聊到了软件测试的发展:这一行的变化确实蛮大,从开始最基础的功能测试,到现在自动化、性能、安全乃至于以后可能出现的大数据测试、AI测试岗位需求逐渐增多。我也在软件测试这行摸爬滚打有些日子了,正好有朋友问我:如何快速成为互联网时代优秀的测试工程师呢?趁着最近终于有了些闲余时间,遂总结了下自动化测试的成长线路图和职业必备技能,希望可以帮助各位少走弯路、破茧成蝶、迈向成功。
下面我来分享下我的自动化测试经验及发展方向,或许能帮助你解决很多工作中的迷惑。
一、技术型路线发展方向
1、自动化测试工程师
自动化测试工程师细分可以有UI自动化测试工程师,APP自动化测试工程师、接口自动化测试工程师等等。
那么怎么才能成为一个合格的自动化测试工程师呢。
首先,必须要掌握一门编程语言,应该以Java或者python为主,虽然什么语言都可以用来做自动化测试,但毕竟这个两个最流行嘛,如果不想成为自动化测试工程师里的非主流自动化测试工程师,那我还是强烈推荐大家选择这两门语言。
编程语言是自动化的核心,不会编程,都是白搭。然后要会主流的测试框架,和一些辅助工具。
主流的框架啊,不外乎selenium,appium,monkey,monkeyrunner之类的,基本上掌握了这个几个APP和U
自动化都可以玩的转了。
然后接口自动化的话当然各位要知道什么是接口啊,不然玩个什么鬼。
辅助工具就太多了,大家各有各的喜好,没什么是必须要会的,这里就给大家推荐几个常用的工具。
postman,接口测试工具。
fiddle,抓包工具。
navicat,数据库管理工具。
HTTPwatch,网页监测工具
uiautomator,APP元素查看工具。
等等啦。
还有什么sql,linux,IDE啊这种就不要单独说了吧,通用的知识都是必须掌握的。
相信初步掌握了这些你就可以自动化入门了,熟练掌握就基本上可以完成大多数的工作了。
2、性能测试工程师
性能测试工程师,其实我不是很推荐,因为这个很容易遇到学习瓶颈。
做性能测试简单,只要熟练使用loadrunner,jmeter等工具,基本上都可以做性能测试了。
可是为什么不推荐呢?
因为如果只需要会工具就能成为一个性能测试工程师,那这个门槛也太低了。
性能测试好做也好学,可是性能调优,这个性能测试工程师的核心,最关键的技能,学习周期太长,学习代价太高,见效太慢。
所以啊,其实就是我也不知道这个性能调优到底怎么玩。
言归正传啊,刚刚提到的那两个工具是必须要掌握的,然后C、Java也是要会的。
毕竟你不能完全依靠录制来完成脚本的编写。
然后各种协议是要掌握的,IP/TCP/UDP/HTTP/SOCKET等等。Linux就不提了,毕竟性能测试一般都是测试服务器,而服务器一般都在Linux上。
不会Linux的话,你也就最多算个玩工具的,工程师就呵呵呵了。
3、持续集成工程师
如果大家关注业内新闻资讯都知道,持续集成是未来这几年软件行业的发展趋势,是一个更加高效更加能把控质量的管理方法。
要入门持续集成,需要各位小伙伴先知道什么是devops。
DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
大概的概念就是这样了,详细的内容大家需要自己去查资料,毕竟这东西和敏捷一样,几句话是说不清楚的。
了解了这个东西后,技术上,需要懂代码(废话啊),服务器运维,持续集成平台CI,如Jenkins这种。
最终的一个目标就是可以实现完整这么一个平台,开发提交代码后,自动触发任务,开始编译部署到测试环境,然后自动进行自动化测试,如果通过了再自动推动到生产环境,如果测试没通过,自动回滚版本,邮件分分钟通知各个负责人哪里没通过,然后开发立刻修改。
有很多业内的小伙伴认为,devops一旦全面实行,对初级软件测试工程师的需求会大大减少。
所以啊,各位,压力山大啊!
4、测试开发工程师
其实这个没什么多说的,测试开发就是一个偏技术测的打杂的,什么都能玩一玩,既可以为测试团队开发辅助测试的工具,又可以和大家一起写自动化测试,还能帮开发coding代码!
想一想,你去给开发说,这里有个问题赶紧改,开发一甩脸色,就知道瞎BB,你行你上啊。
然后你一把推开他,抄起键盘噼里啪啦的把BUG改了,还顺便优化了下他的代码。
哈哈哈,解气不?!各位老铁,就问你6不6。
游艇、飞机还不赶紧来一波!所以啊,这个怎么入门,就是精通测试的时候顺便精通开发就行了。
如果你觉得你测试已经精通了,你就直接学开发的东西就行了,没什么特别要求的东西。
二、自动化测试的学习步骤
1、做好手工测试(熟悉测试基础)
2、学习编程语言(Python/Java)
3、学习Web基础
4、学习自动化测试工具
5、学习自动化测试框架
6、实现自动化测试用例
7、开发自动化测试工具
8、开发自动化测试框架
三、自动化测试系统学习路径
1. 自动化测试必备Python编程内容
2. Web UI 自动化测试基础内容
3. Web UI 自动化测试实战内容
4. APP UI 自动化测试基础内容
5. APP UI 自动化测试实战内容
6. API 接口自动化测试基础内容
7. API 接口自动化测试实战内容
8. CI/CD持续集成专项技术
9. 自动化测试框架实战技术
上面就是我整理出来的一份自动化测试工程师技术路径图。希望大家能在这个成长过程中受益良多。全方位提升测试技术,建立一套属于自己的技术体系。帮助大家不断学习和优化技术栈,跟进先进和主流的测试技术,给到大家带来的不仅仅是技术和薪资的提升,更多的是改变测试人在IT技术领域的地位和心态,拔高测试行业的技术深度。
【下面是一些配套的资源,希望能帮到大家】
这些资料,对于从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
iptables防火墙 --Linux详解
在实际运维工作中,哪里还有单纯的服务器执行工作的,一般都是服务器提供一定的网络服务来让一些客户机进行访问。那么,这时候网络问题是不是就显得尤为重要了呢???
既然服务器暴露在互联网上,我们是不是要防止服务器被攻击?是不是要限制访问服务器的客户端用户?是不是要设置一定的规则来管理我们的访客呢?没错,这就用到了我接下来要讲解的一项Linux运维人员不得不知的技术--iptables防火墙。
如上图所示:防火墙分为软件防火墙和硬件防火墙两种,其中,硬件防火墙是由厂商设计好的主机硬件,这台硬件防火墙内的操作系统主要用于过滤数据包并将其他不必要的功能拿掉。因为是单纯的物理防火墙,因此数据包过滤效率最高。而我们平时工作中最长敲的那个命令iptables其实是软件防火墙,很多资料上面说的都特么太难理解了,其实防火墙说白了就是一种保护机制,用于过滤进入主机的数据包。
下面我介绍一下应用最多的一种软件防火墙--Netfilter。
其原理就是Linux内核通过Netfilter模块来实现网络访问控制。
iptables就是通过调用这种Netfilter模块来实现网络访问控制功能,大家需要知道的是iptables的组成:
四张表 + 五条链 + 匹配属性 + 规则
这里我们主要讲解最长用的两张表:filter和NAT
五条链(过滤点)分别是:INPUT、FORWARD、OUTPUT、PREROUTING、POSTROUTING
规则分别是:ACCEPT、REJECT、DROP
注意:REJECT和DROP都是拒绝访问的意思,但是REJECT会返回一个提示信息,而DROP则是对数据包直接丢弃。
注释:
① INPUT :入向的数据包
② OUTPUT :发出的数据包
③ FORWARD :数据包转发
④ PREROUTING :路由前修改目标IP地址
⑤ POSTROUTING :路由后修改源IP地址
实际流程图如下:
下面介绍下iptables的常用功能:
⑴ 做为服务器使用:
过滤发送到本机的数据包:INPUT链、filter表
过滤从本机发出的数据包:OUTPUT链、filter表
⑵ 做为路由器使用
过滤转发的数据包:FORWARD链、filter表
对数据包的源、目标IP地址进行修改(NAT功能):PREROUTING链和POSTROUTING链、NAT表
其规则如下:
还有三点注意事项:
1.没有指定规则表则默认指filter表。
2.不指定规则链则指表内所有的规则链。
3.在规则链中匹配规则时会依次检查,匹配即停止(LOG规则例外),若没匹配项则按链的默认状态处理。
iptables命令用于管理防火墙的规则策略,格式为:“iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]”。
表格为读者总结了几乎所有常用的iptables参数,不用记朋友,忘记了就来查就行了。记住,我们做运维的只要能解决问题就行。
参数 | 作用 |
-P | 设置默认策略:iptables -P INPUT (DROP|ACCEPT) |
-F | 清空规则链 |
-L | 查看规则链 |
-A | 在规则链的末尾加入新规则 |
-I num | 在规则链的头部加入新规则 |
-D num | 删除某一条规则 |
-s | 匹配源地址IP/MASK,加叹号"!"表示除这个IP外。 |
-d | 匹配目标地址 |
-i 网卡名称 | 匹配从这块网卡流入的数据 |
-o 网卡名称 | 匹配从这块网卡流出的数据 |
-p | 匹配协议,如tcp,udp,icmp,icmp就是控制ping这个命令的。 |
--dport num | 匹配目标端口号 |
--sport num | 匹配源端口号 |
下面我给你们来几个实例操作一下:
模拟训练A:仅允许来自于192.168.10.0/24域的用户连接本机的ssh服务。
模拟训练B:不允许任何用户访问本机的12345端口。
模拟实验C(答案模式):拒绝其他用户从”eno16777736“网卡访问本机http服务的数据包。
模拟训练D:禁止用户访问www.abc.com
模拟训练E:禁止IP地址是192.168.10.10的用户上网
下面我来给大家讲解一下如何进行NAT的设置:
NAT即网络地址转换,其作用就是用来修改数据包的IP地址的。
NAT分为两种:
① SNAT:源地址转换,伪装内部真实的地址(我们一般经常提到的NAT方式就是这一种)。SNAT技术可以让多个内网用户通过一个公网IP进行上网,也就是把原来的内网地址伪装成公网IP。
SNAT搭配的链是POSTROUTING
② DNAT:目标地址转换,一般用于跳转。简单的说,假如说我们有一个www服务器对外提供服务,但是这个服务器的IP是假的,我们只是为了通过这个服务器进行跳转到另外一台真正的www服务器上,以达到保护真正服务器的目的,这时候就会用到DNAT技术。
DNAT搭配的链是PREROUTING
我们先来看一下SNAT的用法:
操作一:动态伪装源IP地址:
其中,MASQUERADE是动态伪装的意思。
操作二:隐藏源IP地址为1.2.3.4
接下来是DNAT的用法:
前面已经说过DNAT是目标地址转换,也就是修改数据包的目标IP地址的意思。OK,我们接下来做个实例:
操作一:跳转到网页服务器192.168.1.10上
最后再来介绍最后一种技术:外流量均衡技术。
比如将一台主机作为网站的前端服务器,将访问流量分流至内网中3台不同的主机上。
① iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.10:80
② iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.11:80
③ iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.12:80
本文出自 “康哥的Linux世界” 博客,请务必保留此出处http://zhengkangkang.blog.51cto.com/12015643/1879175
以上是关于3年测试越来越迷茫... 技术跟不上接下来是不是要被淘汰了?的主要内容,如果未能解决你的问题,请参考以下文章
2021年软件测试需要学什么技术?软件测试人员需要懂代码?软件测试工程师要经常加班吗?--腾讯十年测试老司机写给迷茫的你
毕业 3 年,为何技术能力相差越来越大?——转自阿里技术人生