诠释自动化概念
之前和很多小伙伴聊天,说到自动化的时候都感觉好像很牛逼的样子,感觉公司里做自动化测试的人都好厉害。面试的时候,不管啥公司,公司不管做不做自动化,哪怕就招一个功能测试工程师,那也得问问你会不会自动化。然后呢想学自动化,又不知道该学些什么,自学了很久,语言也学了,什么这自动化工具QTP、selenium、appium都学了,学完感觉都会,自己做自动化的时候还是两眼一抹黑,不会做。什么鬼?
这篇文章就介绍一下咱们作为一个代码0基础的人怎么学自动化,都要学些什么东西,怎么才能避免走弯路。
1、什么是自动化测试?
![](http://www.nnzhp.cn/wp-content/uploads/2017/11/20171116113035_91199.png)
自动化测试说白了,就是写代码帮你测试呗,原来你测试都是手动执行,现在你写代码来帮你执行,这就是自动化测试呗。
2、自动化测试分类
自动化测试有哪些分类的呢?
1、接口自动化
就是测接口的时候,写代码帮咱们调用接口,校验返回值。
2、ui自动化
web端自动化
web自动化就是写代码自动打开浏览器,打开网站,测试什么功能就点什么。
app移动端自动化
移动端自动化就是Android或者ios的,自动打开app然后点什么功能。
3、性能自动化
性能自动化呢就是你要测什么你只需要把被测的网站输入、多少并发数、运行多长时间,监控哪些机子的ip,这些输入进去之后,它就自动的帮你监控,不需要你手动人工的再去监控这些。不过做这个是有难度的,得具备一定的web开发功底才可以的,这个是需要开发一个平台。
4、安全自动化
安全自动化呢,就是写一些定时扫描日志的脚本看看有没有人攻击咱们的系统,有攻击的话,就报警发邮件。
3、那怎么学自动化?都要会什么?
上面说了自动化的分类,也是扫扫盲,让大家知道各种自动化都是干嘛的。
那咱们学自动化的时候怎么学习的呢,到底应该学些什么呢?
1、语言
上面说了自动化测试其实就是写代码帮你测试,重点是在写代码,所以必须得会代码。
代码要会到什么程度呢,要有基本的编程思路,还有日常的一些自动化任务要能写,比如说,写个自动清理日志脚本、自动备份数据库的、自动迁移数据库、自动监控日志等等,这样日常工作中用到的脚本这些要会写,基本上达到这种程度的话,你的语言能力做自动化测试是没有问题了。
写代码呢是一个熟练工种,刚开始写的时候都不会写,写多了自然就会了。刚开始学代码的时候就要模仿别人怎么写,要抄代码,学习别人的思路,不会就多问题,多加群和别人交流。和学英语一样,刚开始模仿别人发音,说的多了自己就会了。
当然咱们不是开发,不用会的那么精通,能做自动化就行了。
2、常见的测试工具、测试框架
web端:selenium、UIRecorder等等
移动端:appium、monkeyrunner等。
web端自动化的话,你要打开浏览器然后帮你打开某个网站再去点什么功能,selenium和uriencoder都可以,都是通过webdriver和浏览器接口操作的。
移动端的话那自然是要连上一个手机,打开某个app然后再去打开点什么功能,那就要用appium了,它ios的和Android的都可以做。monkeyrunner呢,就只能做Android的。
3、测试框架思想
举个例子来说,要搞一个接口自动化的框架,那得有啥功能呢,首先,咱们想自己在测接口的时候手动是怎么测的,首先要写用例,然后按照用例上的写的接口和入参调用接口,然后根据用例里面预期结果对比实际接口的调用结果,再去数据库里面看数据,数据落地有没有文件,然后把测试结果写到用例里面,最后测试完成之后发送测试报告。
那咱们了解了这个测试流程之后,咱们的框架里面要有什么功能呢?
1、请求接口
2、校验结果
3、连接数据库
4、生成测试报告
5、发送邮件
那你就要把这几个功能封装好,然后其他人用的话只写用例写就好,要校验结果操作数据库、产生测试报告,调用你封装好的功能就可以了。这样就构成了一个框架。
![](http://www.nnzhp.cn/wp-content/uploads/2017/11/20171116113355_65319.png)
4、那要学什么语言,python java php?
做自动化和系统用什么语言开发的没关系,我测的是你的系统,我只要能写代码帮我调接口,帮我点页面就行了,你被测系统想用啥开发就用啥开发。这里呢还是建议用python或者java,因为这俩用的是最多的,如果没有语言基础的还是建议学python,因为python比java学起来更容易。
![](http://www.nnzhp.cn/wp-content/uploads/2017/11/20171116113417_15759.png)
希望大家看了这篇文章之后知道自动化都是干嘛的,怎么样去学习自动化,应该学些什么东西。在这里我建议大家初学语言的时候不要先去学一些什么算法,就是排序这些,等你把基本的语法学会,有一些编程思路的时候再去看一些算法,要不然会让你痛不欲生,学起来容易懵逼。