selenium与自动化测试成神之路
在群里总是会遇到很多人问低级问题,写了一个selenium脚本,却执行失败,跑到群里来问,大神,这里为什么会报错?很多都是明显的语法问题,一问方知,今天刚刚学selenium,之前也没有语法基础,没学过Java,没学过Python,就跑来搞selenium,想玩自动化。每当看到这样的同学,总是很想吐槽。今天博主也不是想要吐槽,只是想跟大家谈谈我认为的正确的自动化学习路径。
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的,不会翻墙,不会百度,简直没有资格叫自己是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. 现在,大神,可以拿你的平台去卖钱了
恭喜你,你绝对已经成神了。
你不仅仅是一个自动化测试工程师了,你已经是一个全栈开发工程师了。还有什么能难得到你的?
当然,别嘲笑我,博主也是在第七步的开端慢慢往上爬,这些也只是我个人的一些脑洞,一些想法,如果你也有什么想法,可以和博主多交流交流。
selenium与自动化测试成神之路相关推荐
- selenium之自动化测试成神之路浅谈
忽然想谈谈自动化的学习路径,因为发现很多人总是急于求成,不懂该如何学习. 在学习或者工作中,难免会遇到很多低级问题,例如写了一个selenium脚本,却执行失败,却不知道这里为什么会报错?很多都是明显 ...
- vim 成“神“之路 (一)
文章目录 1. 安装 1.1 linux 1.2 MacOs的安装 1.3 Windows的安装 1.4 vim中文帮助文档安装 2. vim基本概念和基础命令 2.1 基本的键位映射如下: 2.2 ...
- 《Java工程师成神之路》终于免费开放下载了!
很多Java程序员一直希望找到一份完整的学习路径,但是市面上很多书都是专注某一个领域的,没有一份完整的大图,以至于很多程序员很迷茫,不知道自己到底应该从哪里开始学,或者不知道自己学习些什么. 好在,很 ...
- Java成神之路技术整理
转载自 Java成神之路技术整理 以下是Java技术栈微信公众号发布的所有关于 Java 的技术干货,会从以下几个方面汇总,本文会长期更新. Java 基础篇 Java 集合篇 Java 多线程篇 J ...
- Java成神之路[转]
阿里大牛珍藏架构资料,点击链接免费获取 针对本文,博主最近在写<成神之路系列文章> ,分章分节介绍所有知识点.欢迎关注. 主要版本 更新时间 备注 v1.0 2015-08-01 首次发布 ...
- GitHub上12k Star的《Java工程师成神之路》中终于开放阅读了!
很多Java程序员一直希望找到一份完整的学习路径,但是市面上很多书都是专注某一个领域的,没有一分完整的大图,以至于很多程序员很迷茫,不知道自己到底应该从哪里开始学,或者不知道自己学习些什么. 好在,很 ...
- cad的lisp程序大集合_大数据成神之路-Java高级特性增强(CopyOnWriteArraySet)
大数据成神之路 大数据成神之路: 点我去成神之路系列目录^_^ 预计更新500+篇文章,已经更新40+篇~ 本系列的大纲会根据实际情况进行调整,欢迎大家关注~ 导语 CopyOnWriteArrayS ...
- Java工程师成神之路思维导图
前面看Hollis的微信公众号更新了Java工程师成神之路的文档,感觉里面的内容清晰.齐全,可以用来审视自己,也能够知道自己在那些方面可以继续前行,想着有时间把它画下来,画下来之后分享出来. 主要内容 ...
- JVM成神之路-Java内存模型(JMM)
Java 内存模型基础 什么是 Java 内存模型(JMM-共享内存模型) 内存模型描述了程序中各个变量(实例域.静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存中取出变量 ...
- vimium 成神之路-键盘党的胜利
vimium 成神之路-键盘党的胜利 vimium简介 Vimium是一款 Chrome 插件,它继承了 Vim 中的常用操作,让我们在使用 Chrome 的过程中,无论是浏览网页.切换标签.搜索以至 ...
最新文章
- 基于Centos7的autobahn-python+crossbar的环境搭建
- Module ‘celery‘ has no attribute ‘celery‘问题
- linux uefo引导 win_基于UEFI和GPT模式下U盘安装windows8.1和Linux双启动教程
- php使用redis分布式锁,php基于redis的分布式锁实例详解
- 组件通信 eventtBus
- 如何把照片压缩到20k一下_如何将图像压缩10倍?阿里工程师有个大胆的想法!...
- k8s常用对象图示:Deployment、ReplicaSet、Pod它们的关系
- Apache 配置虚拟目录、主机的疑惑及解决
- 动图:程序员才懂的这些!
- matlab smooth 函数,matlab中smooth函数平滑处理数据实例
- 蓝桥杯 ADV-71 算法提高 判断回文
- win10笔记本已连接充电器却不显示连接怎么解决?
- c语言游戏人物控制,在UE4中编写C++代码控制角色
- Git使用- 基本命令
- html左侧浮动广告代码,Html+CSS浮动的广告条实现分解
- 万能视频格式转换器 v 2018 全能版
- MATLAB椎体怎么画,求以半径为R的圆为底,平行且等于底圆直径的线段为顶,高为h的正劈锥体的体积.用matlab作!急用...
- BottomNavigationView--基本使用总结
- 天啦噜,竟然用AI来点名!你还敢逃课吗
- Description Resource Path Location Type The import collides with another import statement