星星博客 »  > 

如何学习自动化测试?

作者:黑马测试
链接:https://www.zhihu.com/question/22211535/answer/1579948115
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

自动化测试是一个非常广泛的技术,要想深入精通到更行各业,需要至少5年的钻研才能精通,所以有着足够的技术纵深。熟练到一定级别,甚至做上技术总监也不是没有可能。所以自动化测试是广大测试新手弯道超车老测试的好机会。

本帖不仅给大家介绍自动化测试,更会提供大量学习自动化工具的平台,所以还等什么,赶紧看点赞收藏这个帖子吧,值得反复看。


“如何学习自动化”,这个题目综合性很强,比较难hold住,接下来我将按照自动化的三大构成来给大家展开,希望能对大家有用。

自动化构成:

自动化测试在当前市场上应用非常广泛,主流有接口自动化测试UI自动化测试。在此基础上,加上持续集成就能实现全自动化测试。接下来我将按照自动化的这三个主要构成来给大家详细介绍自动化:

一、接口自动化测试
二、UI自动化测试
三、持续集成

一、接口自动化测试

目前市场上大部分项目,都是前后端分离的项目,由此产生了大量的接口。而接口自动化测试,主要是对接口进行测试。

那么,咱们应该怎么进行接口自动化测试呢?这里这几个知识点和工具,必须掌握。

1、HTTP和HTTPS协议

在主流程的接口测试中,又有大量接口是基于HTTP协议实现,数据安全用HTTPS协议进行保障,所以HTTP和HTTPS协议必须掌握。

学习参考链接:
转载CSDN博客: HTTP和HTTPS协议,看一篇就够了_不一样的博客-CSDN博客_https

2、接口文档

在实际工作中,接口的信息的载体除了代码,那就是接口文档了(开发人员提供),了解接口文档的结构、内容和规范可以帮助我们深度参与接口测试以及接口自动化测试。

3、接口测试工具Jmeter和Postman

meter是近几年兴起的接口测试工具,它最大的特点就是免费开源,容易学习。

Jmeter官网:https://jmeter.apache.org/index.html

 

推荐视频:《 自动化测试工具_Jmeter视频》 密码:lgqv

 

Postman工具也很强大,在实际的项目应用中,几乎每个开发都会使用Postman来调试接口请求。

Postman主界面

官网文档

推荐视频:《 接口测试入门篇》 密码:k8rc

 

4、Mock测试

在自动化测试中,不是所有的功能都适合自动化测试,对于一些难以处理的测试点,我们不得不使用Mock技术来模拟。

  • 登录和注册接口中,密码的Mock
  • Mock支付环境
  • Mock支付密码
  • Mock验证码(图片验证码、滑块验证码、人脸识别等、短信验证码等等)
推荐视频:《 python实现头条项目接口自动化测试实战》 密码:c7oz

5、总结

掌握这几个知识点后,对于HTTP协议的接口自动化测试,完全可以掌握和应用;甚至还可以进行小规模的接口性能测试。

 

二、UI自动化测试

UI自动化测试的成本比接口测试要高,主要原因不是技术实现难度高,而是因为UI是对接用户的终端界面,它是调整最频繁,改动最剧烈的部分,所以维护成本高。

那么我们不需要进行UI自动化测试了吗?恰恰相反,对一些大型项目,其功能是处于不断地迭代地,虽然界面在调整,但是由于项目周期长,在开发和测试过程中,需要频繁使用自动化测试的脚本进行回归测试,可以提高自动化测试的利用率,提高工作效率,降低工作成本。

而且,UI自动化测试中,有一种很关键的思想,叫做“关键字驱动”测试,专门用来解决UI自动化测试脚本开发和维护的问题。

那么怎么学习UI自动化测试呢?

在这里,我们可以先学习Web自动化测试,再学习App自动化测试。

1 、Web自动化测试

这里推荐Selenium工具和Robot framework

推荐理由:Selenium和Robot framework是世界上排名前十的自动化测试工具(不区分UI自动化和接口自动化)

如下图所示2019年最受欢迎自动化测试工具:(Selenium高居榜首)

1.1 Selenium

Selenium主要是进行Web自动化测试,同时在手机APP自动化测试中,有一些测试框架也是基于Selenium来实现。如果要进行Web自动化测试,学习selenium是不二之选。

优点

  • 跨平台、跨语言
  • 支持多种浏览器
  • 支持移动端测试
  • 插件多,扩展性强

缺点

  • 不能直接生成测试报告
  • 不能识别动态图片

掌握Selenium后,那么就掌握了主流的Web自动化测试。

学习Selenium的方法

  • 先掌握手工功能测试,理解测试的功能业务
  • 再学习HTML、CSS、JS这三大知识
  • 第三学习Selenium测试框架
  • 最后学习PO分层管理的思想
推荐视频:
8天web自动化入门教程》 密码:xest
《 web自动化入门实战》 密码:efk3

 

1.2 Robot framework

Robot Framework是python语言编写的功能自动化测试工具。具有良好的扩展性,支持关键字驱动,支持同时测试多种类型的客户端或者接口,还可以进行分布式测试。

优点

  • 关键字驱动测试
  • 可以重复利用
  • 易扩展
  • 支持HTML测试报告
  • 有庞大的测试库提供支撑(支持web、手机、windows客户端、数据库、HTTP测试等)

缺点

  • 界面操作共性问题:用例庞大时会很卡
  • 有一些BUG,例如导入测试库时会卡死

学会了Robot Framework的使用,那么就掌握了关键字驱动技术。

关键字驱动:

参考链接: 自动化测试关键字驱动的原理及实现 - 张飞_ - 博客园

学习Robotframework的方法

参考链接: https://www.cnblogs.com/juanweihu/p/7802591.html

1.3 总结

Selenium和Robot framekwork 两者如果都能够掌握,那么无论是主流的Web自动化测试,还是其他UI的自动化测试,都能够有自己的心得,并且在市场中占有一席地位。

 

2 App自动化测试

2.1 应该选择哪款工具?

我们先看一组数据(主流):

支持的功能数据(TesterHome得到)

由上面两个图,可以发现,Appium无论是在市场利用率,还是在功能上,都比其他工具要强。

而且,Appium不仅支持安卓还支持iOS,所以在这里,我们应该选择学习Appium最能满足市场的需要。

 

2.2 Appium学习方法

官网:http://appium.io/

 

中文学习手册::https://www.kancloud.cn/testerhome/appium_docs_cn/2001595

推荐视频实战视频:
Appium进行IOS真机自动化测试》 密码:dolc
《 零基础入门移动自动化——Appium框架》 密码:um3w

 

三、持续集成

1、什么叫持续集成?

我们假想一个场景,现在一个测试工程师把自动化脚本都编写好了,但是这位大佬还是需要每天上班点击“开始“运行脚本,而且当开发提交新的版本时,也需要重新运行自动化脚本。

那么可以不可以让这个自动化脚本,自动的运行,并且在开发每次发布版本之后,自动的执行呢?当然可以,这就是持续集成。

要学习持续集成,我们首先推荐jenkins

 

2、什么是持续集成工具Jenkins?

Jenkins工具是JAVA编写的开源工具,无论是扩展性,还是实用性,都非常好,很多中小型公司都是用jenkins进行持续集成,一些大型公司也是在jenkins的基础上进行的二次开发。

3、如何学习Jenkins

  • 理解CI和CD的概念

    CI:持续集成(把多个开发编写的代码,集成在代码仓库,自动进行单元测试,并返回结果)
    CD:持续交付(把集成的代码,自动的构建、部署、测试、发布,并返回各个阶段的结果)
  • 要实现这些过程,我们需要拆分学习
    • 集成代码
    • 单元测试
    • 构建代码
    • 部署代码
    • 测试代码
    • 发布代码
    • 发送测试结果
    • 使用Jenkins整合这些过程

要想把持续集成学好,光靠Jenkins这个工具其实还远远不够,我们甚至需要深入到架构设计、开发、测试、运维才能很好的进行。

 

四、总结

其实自动化测试是一个非常广泛的技术,要想深入精通到更行各业,需要至少5年的钻研才能精通,熟练到一定级别,甚至做上技术总监也不是没有可能。

对于测试来讲,测试的工作其实相对是轻松,技术难度也不是特别高,所以大家在做测试期间,一定要持续学习,持续集成,才能进步,实现自我的价值。

 

---------------------------------------------------------------------------------------------

最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。

包括软件学习路线图,黑马50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2020软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..

2020软件测试学习路线图,内附视频教程+自学路线+工具+面试篇-黑马程序员技术交流社区​bbs.itheima.com图标

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

 


 

精华知乎文章推荐

一、测试前景类

软件测试有前景吗?

软件测试行业到底有没有前景和出路?

软件测试工程师的工资有多高?

软件测试这个职业能干多久?

软件测试真的干到35就干不动了吗?

二、测试择业类

二十五岁零基础转行做软件测试怎么样?

本人女,想转行做软件测试,没有任何经验,也没有基础,现在已经毕业两年了,25岁,现在转行来得及吗?

女生学软件测试,容易吗,这个工作会不会压力很大?

软件测试员比软件开发员要求低些吗?

软件测试的魅力何在?您为什么选择测试一行而不做开发?

三、测试入门类

作为一名软件测试人员,有哪些网站是你应该多多关注的,哪些书籍是你必须要看的?

作为一名软件测试工程师,需要具备哪些能力?

软件测试人员怎么快速让自己牛逼起来?大概要多久才能很牛逼?

大四应届毕业生,想自学软件测试,要学到什么程度才能找到工作?

如何系统、高效地学习入门软件测试,并能找到软件测试的工作?

零基础想转行做软件测试,可以吗?

软件测试需要学什么?

想要成为一个优秀的软件测试人员,应该学些什么?

零基础如何通过学习进入软件测试行业?

在校生想成为软件测试工程师自学需要学什么?

新人如何入门和学习软件测试?

怎样做好软件测试

四、咨询培训类

在博为峰(51Testing)进行软件测试相关培训有必要吗?

软件测试培训靠谱吗?

这么多的软件测试培训机构,哪个好?

五、测试求职类

怎么的技能可以让软件测试工程师获得高薪?

面试软件测试工作,如何回答:为什么要从事软件测试行业?你觉得你会什么?

如何去面试软件测试工程师?

好的软件测试人员简历是什么样子的?

六、技术分享类

如何编写测试用例?

手机软件的测试主要有哪些方面去测试,性能测试用什么去测试好?

如何做好app的测试工作?

软件测试完后,还有BUG,是测试人员的问题吗?

七、职场提升类

做了大半年的软件测试,可是觉得我在浪费时间,怎么办?

四年测试工程师经历,下一步转开发还是继续测试?

软件测试工程师应该怎样提高自己?

转行软件测试两个多月,感觉很迷茫,下一步该如何提高自己?

四年手动软件测试,裸辞后找不到工作怎么办?

做软件测试,如何才能实现月入20K?

如何学习自动化测试?

相关文章