前言
说起自动化,最先想到的应该就是一些编码技术了。
比如至少会一种语言:java、python、js、c++、vb、等等;
用来设计测试用例和脚本框架,比如至少熟悉一种框架或工具:spring、Django、Selenium、UTF、RobotFramework、JMeter、LR、Appium、Macaca、TestNG、UniTest等等;
用来支持元素抓取,或者写个高大上的页面支持你的框架,可能还需要一些前端的知识:h5、css等等;
当然,也需要一些辅助的东西,比如:jdbc、log4j、poi、report、xshell、cmder之类的,让他们帮助你做数据库关联、日志分析、服务器监控、测试报告输出等;
然后安装一堆软件,搭建各种复杂的环境……
从前端到后台开发,再到报告分析,还有业务梳理,又要服务器运维,测试人员这么牛逼?是的,要会很多东西,虽然不是很精,但却要什么都懂。
然而这么一大堆的东西,我们要怎么去学习和入手呢?那么,就开始正文——思路!
正文
创造属于自己的学习思路,这个思路也会帮助你完成自动化,不仅是功能自动化,还有性能的。
我在这里一步一步的说吧,先说说
语言
不要纠结我到底学什么语言好,是Java还是Python,又或者是vb。也许你可以根据市场情况做选择,比如市场占有率最高的Java、比如当下热门的Python,又或者是为了使用LR或UFT而学习vb。
作为选择,给你几种建议:
第一,如果你已经有了一种语言的基础,比如java,那就不要跟风去研究python,如果你把java玩的很溜,那看python的东西绝壁不会很难,精通一种先;
第二,就职的公司语言普遍使用情况,比如公司里的程序员们都在敲python,你非要用vb跟他们抗衡一下?那也是要求前提你能看懂python;
第三,如果你没有入职呢,又不会语言,java和python任选,不用纠结,哪个学会了,另一个都能看懂,这就足够了!扔骰子决定都可以~
框架/工具
会了语言,我们才需要考虑做什么自动化,功能还是性能。
功能和性能择一而从,不要纠结,需要哪个就专心学哪个。精通一个就好,另外的做了解或者稍微熟悉一点就可以。
以自动化为例,做自动化,要么自己开发脚本、框架、工具,要么选择现成的工具来使用。
选择?没那个必要,只看当下热门和公司要求的!
1.以Webdriver为首的自动化框架和工具:selenium针对WebUI、appium针对MobileUI。
后边这个是阿里的开源框架macaca,可以同时应用于Web和Mobile~
2.以培训或学习过的工具为基础,继续学习:UFT,惠普三剑客的软件都是基于vb的,继续去精通学习它吧,会这个的钱也少不了。
利用你学会的语言,去拼命研究这两个框架吧,搭建好环境,至少写出第一个脚本,比如去百度搜索个东西这样的简单用例。
就像你先学会了print HelloWorld,才开始研究print 1+1的问题一样,从简单的开始,由浅入深的去思考你要做的事情。
如果你会了上述的框架,可以写出简单的脚本来了,那么就算公司要求你会RobotFramework也没问题,它也是webdriver为基础的工具,而且是python编译的,没有难点。
当你觉得现成的工具总是不能如意的时候,你就该考虑自己写工具或者改造别人的开源工具了!
思路
工具即思想!你需要哪种功能,就会创造哪种工具。你想要一个对象,你就去new一个……,你想要把工具里的数据统一管理,你就要考虑怎么关联数据库,或者找其他的存储的地方,等等。
1.构建框架
现在脑中构想你的框架或工具的功能,然后把它画出来,也许是一个很牛逼的东西,也许你现在只是想想,没关系,先做个图,以后慢慢完成,这就是你的目标。
比如:我想要一个页面或者客户端类的自动化工具,我只需要把要测试的网址或者客户端扔进去,他就能帮我完成所有的跳转类测试;
比如:我只需要把需求输入进去,他就能帮我搞定这个需求所有需要覆盖的用例脚本!
就是这种听起来很厉害的东西,我们完全可以一步一步去完成。
2.搭建测试环境以及初始化脚本
搭建起你想要的测试环境,比如idea+selenium+java+maven;
然后运行你的第一个脚本,比如登录到公司运营的项目的首页;
封装你的第一个脚本,然后再次运行它,比如把它放到别的类里,你的main方法里只需要一个login();他就完成了你需要的功能;
3.数据驱动或其他驱动
将你抓取到的element元素都单独放置到一处来调用,比如一个类中,或者excel里,或者数据库里;
将你登录的账号或者其他输入文本都存在一处来使用,比如一个类中,或者excel里,或者数据库里;
4.加入断言
测试用例是需要预期结果的,那么断言就是用来做这个的。
登录成功后,assert断言你登录成功后页面的标题,比如assert(实际结果,预期结果),如果判断相等就print一个oye!不相等就用例执行失败print一个ono!
5.多用例执行
用例肯定是有很多的,比如注册、登录、搜索,甚至是个按钮点击的链接跳转;
用什么来维护多用例呢?你不会全写在main里边吧,之前已经学会了封装,那在执行的时候,不妨考虑一下testNG(java)、线程、unitest(python)、Junit。
他们可以很好的帮你管理多用例的情况,你可以管理在类里,也可以管理到csv或excel表格里,又或者放到xml里进行,更可以通过多线程来一起执行。
6.测试报告
用例也写好了,总要一个漂亮的报告吧,让我们清晰的看到这一堆用例的执行情况,
包括执行结果、执行的什么用例、如果报错,有什么错、错误截图、等等;
那我们可以考虑自己在类里做个简单的页面来整合这些结果、也可以放到excel中去保存结果、更可以通过学习前端知识,自己写一个页面,把结果都关联进去,更加高大上!
7.优化
完成了以上的这些,我们继续考虑如何优化我们的小框架,丰富起来,让他变的“万能”;
因为这个时候你的思路应该已经拓展起来了,剩下的都是烦恼,只需要把烦恼转换成实现就可以了。
比如:svn、github的代码管理,自建一个bug管理工具,搞一个持续集成~
8.其他
其他自己想去,思路是自己的,随便你怎么去想,自己去完成就好!
千万不要对学习纠结,有纠结的时间,你随便学一个,学会了就很厉害!