一、学习自动化之前,大家需要先知道自动化测试是啥?

自动化测试是将人为测试情形转化为机器执行的过程。一般说来,测试用例设计后,由测试员根据测试用例中描述的规则一步步地进行测试,得到测试结果和预期结果的行为。在这里过程中,为了更好地节省人力、时间或硬件资源,提升 测试效率,便加入了自动化测试的基本概念。

二、自动化测试如何学习,自动化测试又有那些类别

1.自动化测试的类别
  
什么可以自动化?实际上好多,可是通常容易曲解这个问题。
  
有两个主要类别,功能性和非功能性:

  • 功能性:测试软件的具体业务应用程序。
  • 非功能性:用于测试软件的其余要求(例如性能,安全性,数据存储等)。

性能测试主要是使用测试工具,Loadrunner、Jmeter等,对软件进行压力测试、负载测试、强度测试这种,是因为这种没法用手工进行替代,因此必须自动化。自动化功能测试:包括单元测试、接口测试、UI测试。主要是编写代码、脚本,让软件自动运行,发现缺陷,替代一部分的手工测试。但通常只有大的项目才需要进行自动化,中小型项目不建议使用自动化测试。目前企业对自动化测试需求越来越多。测试人员想要在未来有更好的发展,非常需要通过掌握自动化技术来增加自己有竞争力。

2.自动化测试的学习线路

搞定性能、自动化测试,独当一面!(我目前也是在这个时期不过是属于经验较为浅的那一批,因此才20k左右)

先说性能测试,行业内是有很多一些误区和痛点的:

  • 只测不调,没法提供研发和运维人员执行建议
  • 无法定位问题,欠缺清晰的逻辑和数据证明价值
  • 性能测试工具≠性能测试
  • 性能测试技术体系落后(loadrunner),需要拥抱开源软件
      
    如果要搞定这种问题,那样性能测试你得这么去学:

性能测试的基本概念和流程:常见问题分析、流行专用工具、方案设计性能测试工具:jmeter工具的使用、实战;jmeter多协议、拓展与定制;分布式压测与任务调度;性能监控:性能监控体系与监控数据采集性能实施:分布式服务压测,场景设计、场景执行;测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源利用率关联分析性能分析与报告:jvm调试与系统调试;性能瓶颈分析。

性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!
  
搞定Python或者Java语言,建议先从Python入手,先学习Python的基本语法等。
  
web端的自动化测试:selenium安装、录制、处理;web控件、JavaScript脚本、PO模式;移动端APP自动化测试:appium使用、录制、元素定位方法;APP控件定位、交互,参数化用例;appium问题定位分析、源码分析、二次封装;服务端接口自动化测试:接口自动化测试框架request;接口请求构造、断言;json/xml请求、响应断言;headcookie处理、认证体系。

三、自动化测试学习资源配套

  • 接口自动化测试
      
    接口测试通常有两种方式实现测试,一类通过专用工具实现;另一种通过代码实现,专用工具更多的做调试,大多数互联网企业做接口测试都是通过代码实现。专用工具的测试,通常容易上手,针对“0”基础的人来说,不失为入门的首选,代码量有限,只要熟悉测试流程,会熟练使用专用工具就能够完成基本的接口测试,可是灵活性差,自动化程度没有代码高,市面上常见可以接口测试工具有postman、Jmeter等。代码的实现,主要是通过python。
  • web自动化测试
      
    web自动化测试主要通过代码实现。例如常见的应用有:Python/Java+selenium。首先,还是需要熟练使用一门语言,非常熟练地运用至少一门编程语言。另一方面,需要学习web测试的流程步骤,是因为是基于页面默认人工操作,因此需要针对页面构成需要有一定的基础,例如:HTML+JavaScript+CSS,懂得页面元素的定位,以及常见的定位方式的使用等。如果有接口自动化的基础,那样学习web自动化相对会容易一些。再者,通过一些相对完整的项目去实战训练,才能够较好地学习并掌握web自动化的技能,通过反复的项目训练才能逐步地达到理想的效果。
  • 移动自动化测试
      
    移动自动化测试主要也是通过专用工具和代码的方式实现。例如常见的有Python/Java+appium。
      
    移动自动化除了哟啊掌握一门编程语言外,还需要学习移动测试的流程步骤,移动基本功能的和web端的基本类别。可是更多的需要测试一些非功能层面的应用,需要学习并使用一些手机模拟器(如:mumu)、第三方专用工具(如:GT专用工具)、adb命令、monkey等的使用,学习使用的专用工具较多,并且需要结合代码一起使用,这就要求学习的知识范围更加广泛,先从专用工具使用入手。另外:移动端的应用还需要进行异常测试,针对使用过程中出现网络、信息中断等异常场景的设计,针对手机本身使用过程中的场景结合实际项目训练学习。

四、自动化测试学习总结

总体来说自动化测试是测试思想的一个拓宽,为测试工程师提供了一个“触须”,其情形可以看成一个专用工具,可是本质上自动化测试还是一类思想。
  
顺便提一句,狭义上的自动化测试指的是基于GUI的自动化测试,而单元测试跟API测试,你有想过怎么用手工不借助任何专用工具去做吗?因此它们天生就属于测试自动化的范畴。
  
自动化最实在的优势在于——工作好找:有一个测试工程师(并不是本人)发现一个有趣的现象,她申请过的几乎所有测试职位,在招聘时都需要自动化测试经验。但当她开始工作后,就发现这种公司都试图做自动化测试,可是结果大多不怎么地。不过,尽管她参与的都是一些杯具的项目,不过她总能把这种杯具包装成洗具以应对下一次面试。
  
机会只眷顾有准备的人,这是一个靠真本事的社会。有时候,你之所以发展得不好,不是因为没有机遇,而是因为你没有准备好,造成机遇与你擦肩而过。如果你想要学习,什么时候开始都不晚,而不是瞻前顾后,你只要用尽全力,剩下的交给时间!