自动化测试方向


1. 首先要搞明白几个问题

本来想写一些东西,但忽然发现虫师已经对这个问题总结很到位了,所以我也就不想多说什么,放上链接,学自动化测试之前,先去看看吧

在做自动化测试之前你需要知道的


2. 语言基础

很多想学自动化测试的同学都忽略了语言的重要性,这个语言不是英语或者汉语的,而是编程语言。

大部分测试人员不懂编程,也不想学编程,但如果你想要学习自动化,那编程是必须的!

你可能会觉得QTP就不需要编程,录制回放就可以了。这是大错特错的,QTP要想玩的溜,VB是必须的。selenium想要玩的溜,Java或者Python是必须的!(selenium并不局限于这两种语言,但是你用其他语言玩,别怪我没有提醒你,你会遇到很多麻烦,而且还找不到人能跟你交流,你的成长速度会慢得多)

很多人没有学语言,直接上来搞selenium,我认为这是一种本末倒置的行为,没有语言基础,想学会selenium,想搞好自动化,也是走到了弯路上,到达目的地的时间要更久。

那么学Java还是Python?这个要取决于你对那种语言更熟悉一些,同时要看测试团队所使用的语言,如果其他人都用Java,那你就不玩特立独行了。如果你既没有语言基础,测试团队也没有指定的语言,那么我建议你学Python,Python相对Java更简单,更简洁,更多测试人员使用Python。Python的学习成本要更低,当然这并不代表Python不够强大,说实话,Python所能做的,比你想象的更多,实现方式也更优雅、简洁。

确定了要学习的语言,博主便推荐一些学习资料:

如果你一点语言基础都没有,那么我推荐你先把《笨办法学Python》中的前45个练习照着敲一遍。(注意:必须得一个个手敲,代码学习重在实践),有个网站,英文版笨办法,推荐给你Learn Python The Hard Way,英文不好?OK,给你个中文版笨办法学Python 下载

如果你有学过一门语言,了解基本的数据结构和判断、循环之类的,或者你刚刚完成步骤0的练习,我推荐你这个阶段学习Python语言基础。这个阶段有好几本好书,当然,你只需要其中的一本就足够了:《Python核心编程》、《Python基础教程》、《Python简明教程》、《Python入门指南》、《Head First Python》等,这个你去百度便能百度到很多,去京东淘宝逛一逛,看销量最多的也便可知。当然,我推荐你《Python核心编程》,这个我建议买纸质书。至于其中的内容,你学习完成主干部分即可,最后面的几章关于网络编程、线程与进程的,可以先不看,当遇到这样的问题,可以再来补充这方面的知识。

好了,这两个阶段完成之后,我认为你做好了学习selenium的准备,可以开始学习selenium了。


3. selenium学习,脚本编写

接下来终于要到学习selenium的时候了,在这个时候,我需要你先去搞清楚几个问题:

selenium到底是什么?

selenium家族成员,selenium的结构组成。

selenium支持的语言,浏览器。selenium操作浏览器需要依赖的驱动,驱动版本与浏览器版本的关系。

然后还需要再简单学习一些前端的知识:

HTML(网页结构,各种标签)

Xpath(基本的定位要了解,轴的内容可以放在后面学习)

CSS(简单了解)

JavaScript(简单了解)

Firebug(开发者工具)的使用(这个经常会用到,必须熟悉,可在selenium学习中逐渐深入)

网络基础知识

接下来就是学习selenium了,入门推荐虫师的《Selenium2自动化测试实战–基于Python语言》,尽量支持下作者,买纸质书吧,遇到问题还能拿起来当字典查查。这本书比较基础,用来入门再合适不过,期间也可混杂着看一些博客,比如我的博客^_^,会给你不少帮助。

同时不要光看,一定要动手自己写代码,找一个网站,先练基础元素操作,我推荐一个:http://sahitest.com/demo/index.htm

基本定位方式熟悉了,就是要对一个正式的网站进行实践了,你可以用你们公司的网站,也可以用某些门户网站,比如58、赶集等等,可以用selenium做一个小爬虫,爬取网站上的一些信息。这个过程中你会遇到各种坑,各种诡异的事情,不要怕,你一定要相信这些坑,前辈们早已替你趟过了。

一定要善用百度、Google,搞IT的,不会FQ,不会百度,简直没有资格叫自己是XX工程师,Google的重要性我不想再多言,起码GitHub博客,百度的爬虫是爬不到的(不过,这个锅百度不背,原因?自己百度吧)


4. 执行测试,脱离脚本阶段

恭喜你,你能写脚本了,能写小爬虫从网站上爬东西了,接下来,你得真正开始执行测试了。

在这个阶段,你必须学习的是Python的doctest和unittest。

学习怎么用断言来添加检查点。

同时,你要学习怎么将代码中公共的部分抽出来,把测试和业务分离开。

用testsuite来组织你的测试用例,并学习HTMLTestRunner,下载,学习怎么输出报告。


5. 参数化、配置、日志、简单框架搭建

你已经能够用unittest组织用例,并输出报告了。这时候,你需要让你的测试更像个样子。

该学习参数化了,学习xlrd、xlwt操作excel文件,学习xml库操作xml文件,来配置你的数据源,实现参数化。

还需要学习configParser、pyyaml模块,进行配置文件的操作,将用例中的配置提取出来,写在配置文件里,这样要修改起来就容易多了。

然后还得学习logging库,学会怎么记录日志,写你自己的日志模块,在用例里加上日志记录。

到了这儿,基本上,就像个样子了。但是不能把这些东西放在一起,你就需要搭建一个轻量级的小框架,来分层组织你的代码与其他文件,可以参照我的博客简单分享一个轻量级自动化测试框架目录结构设计,这下你就能把所有的东西分门别类管理起来,终于有点专业的样子了。


6. 自动执行,自动发送报告

简单的框架搭建好了,你也能够每次执行testsuite便可以得到测试报告了。但这时,你又不满足了。

是的,你应该让它自动执行,自动把报告发到你手里(或者你老大手里,当然,未成熟前不建议这么做)。

你该学习Jenkins了。别丧气,这个玩意很简单,你也只需要简单的配置便可以让你的测试任务在Jenkins上跑起来了。

还有,要自动发报告,学习smtplib模块吧,它能让你的报告以邮件的形式发送到任何人的手中。


7. 高级货,平台?分布式?界面?

是不是很有成就感了,QQ群里也有了很多人叫你大神。满满的虚荣心有木有?

不过,你就满足于这些吗?

当然不,还有更多想要做的。

UI的用例执行太慢了,整个分布式的执行怎么样?selenium的grid还没有研究呢。我可以用一台机器控制,让多台机器同时执行我的测试,想想简直碉堡了对不对。

还能怎么玩?搞个界面怎么样?学学Django、flask、web2py、web.py?挑一个,搞个界面,管理用例,管理测试执行,如何?

再搞搞数据分析,配个数据库,拿到历史执行数据,搞出来个报表怎么样?

看看request、suds、socket,把接口测试整进测试平台,怎么样?

单元测试?嘿嘿嘿,小case。

再集成个性能测试工具,一块搞到平台里去怎么样?


8. 现在,大神,可以拿你的平台去卖钱了

恭喜你,你绝对已经成神了。

你不仅仅是一个自动化测试工程师了,你已经是一个全栈开发工程师了。还有什么能难得到你的?

原文地址:https://www.cnblogs.com/chukun/p/8438992.html

时间: 2024-10-31 01:41:55

自动化测试方向的相关文章

【too】自动化测试方向--抛砖引玉

一.首先说说手机自动化测试的原理1.手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口.USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作.完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试.2.关键点在于agent,有的公司

往自动化测试方向前进

这几年随着互联网新产品的不断兴起,人们对于软件质量,用户体验越来越看重: 自然而然对于软件测试工程师的岗位需求与必备技能要求越来越高,许多做测试的小伙伴信心满满的投入到测试行业中. 日复一日做黑盒测试,也许当初的一股热情早已被枯燥乏味的工作模式损耗,对于笔者来说也正是处在这样一种处境当中. 一年黑盒与三年黑盒会有多少区别? 这是我在互联网公司实习半年之后思考的一个问题,如果不尝试着往更高领域的方向发展,可能迟早有一天会被同级别的或者后来居上的年轻人淘汰. 在产生了这样一种想法之后我觉得我应该做点

作为一名自动化测试工程师,你合格嘛?

听说长得好看的都在做软件测试,测试界从不缺大神,比如张南(Google测试经理).Lisa Crispin和 Janet Gregory等等这些.在软件测试变的越来越重要的今天,自动化测试也在崭露头角. 那么,作为想在自动化测试方面大展宏图以及已经成文自动化测试工程师的你,那么以下的知识你究竟掌握了多少呢. 自动化测试框架及开发技术掌握 熟练掌握自动化测试框架的原理,和理论知识,以及在自动化测试框架基础上,完成对测试用例设计.自动化测试,不仅仅需要掌握UI界面测试,对一些开发知识:如JAVA/C

安卓自动化测试(1)安卓自动化测试原理概念

一.首先说说手机自动化测试的原理1.手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口.USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作.完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试. 2.关键点在于agent,有的公

现代软件工程第六章作业

软件测试工程师的发展前景 软件测试工程师目前正在成为IT行业中一个新亮点,不仅其从业人员薪水高.人员需求增加快而广受关注,而该行业未来良好的发展前景也受到肯定.在IT业处于发展的初级阶段时,由于大多数软件比较简单,测试工作也不复杂,往往是软件开发企业在开发完成后进行一下简单的检测就可以了.但在IT业发展到一个高级阶段后,系统越来越精密,而软件也越来越复杂,影响的范围也不断扩大.因此,这时期开发的软件就必须进行十分严格的测试. 那么到底什么是软件测试工程师呢?软件测试工程师指理解产品的功能要求,并

软件测试对自己的发展.

从事软件测试初期,一般就是重复执行/编写/修改用例,使用测试管理工具记录结果; 然后可能会进入自动化测试.使用自动化测试工具辅助测试; 然后就根据个人选择:1管理方向;2行业领域专家方向;3测试用例设计编写方向;4自动化测试方向…………还有很多方向,就不一一列举了 需要具备的素质:耐心.细心,口才或者文字表达能力要强,逻辑性也要强;有进取精神,有团队合作精神;考虑后期发展方向,可能还需要具备一定的领导能力.具备具体的数据库/网络/多种编程语言/数据结构等知识(这些都是咱们软件工程专业学过的).

进阶软件测试工程师的必备

所谓长江后浪推前浪,不想提升的工程师不是好测试员. 对于软件测试新人来说,除了需要掌握测试的理论知识之外,自身的定位,对学习的态度以及对工作的热情这些都是考核一个软件测试员的基本标准. 态度决定了你是否具备作为一名测试员的资格,而永不止步的学习决定了你的未来.技术才是王道. 掌握开发语言 大家都知道,软件测试的知识面一定要广.主流编程语言比如:C.C++.JAVA..net等等,熟悉掌握好其中一种就好.网上这方面的说法大同小异,这里做精简回答. 网络相关知识 一些操作系统比如Windows,Li

【转】 测试人员的职业规划 --整理标注

不同类型的软件公司,对测试工作的重视程度也有很大不同.建议测试人员选择一些业务持续发展的公司.做项目东一榔头西一棒的公司,是不需要高质量的测试的,他们需要的是尽快把软件交出去,却无法静下心来思考,怎么把质量做好.选择这样的公司,要冒相当大的风险. 接下来说一下大家关心的话题,如果选择了测试,怎么能从测试团队中脱颖而出呢?经常被提出的概念有“管理和技术两条路线”,这个概念太抽象,还是无法帮我们理清思路.有的观点认为,测试要学习开发技术,这个也没有说到关键点上.我认为测试人员的职业发展有下面两个,换

大部分软件测试工程师的出路?

今天,思索下软件工程师的出路. 首先,必须肯定,无论是哪个行业,只要成为精英,不愁发展.但是,绝大多数人,由于各种原因,成长并不顺利. 下面是知乎的一些内容: 石头哥 公众号:大话IT公司 118 人赞同 谢邀,这个是笔者测试岗位工作7年的总结,有兴趣可以看看. —————分割线———————— 从毕业到现在已经快七年,同时也进入了30岁的门槛.以前一直以为30岁是一个离自己很遥远的年代,不过却这么快就来到了,好像毕业还是就在昨天. 七年的时间足够让一个人无论从身体.财富.思想.人际关系等等方面