Python selenium —— selenium与自动化测试成神之路

忽然想谈谈自动化的学习路径,因为发现很多人总是急于求成,不懂该如何学习。

在群里总是会遇到很多人问低级问题,写了一个selenium脚本,却执行失败,跑到群里来问,大神,这里为什么会报错?很多都是明显的语法问题,一问方知,今天刚刚学selenium,之前也没有语法基础,没学过Java,没学过Python,就跑来搞selenium,想玩自动化。每当看到这样的同学,总是很想吐槽。今天博主也不是想要吐槽,只是想跟大家谈谈我认为的正确的自动化学习路径。

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

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

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

自动化是用机器代替手工做一些事情。作为一个测试人员,做自动化一般是指接口自动化与UI自动化。(接口也是指对外的部分,通过各种协议,各系统或模块之间交流的接口。)接口性价比更高,但不代表UI自动化没有价值。

2. 编程语言基础

很多想学自动化测试的同学都忽略了编程语言的重要性。很大一部分测试人员不懂编程,也不想学编程,但如果你想要学习自动化,那编程是必须的!

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

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

那么学Java还是Python?这个要取决于你对那种语言更熟悉一些,同时要看测试团队所使用的语言,如果团队用Java,那你就学Java。如果你既没有语言基础,测试团队也没有指定的语言,那么我建议你学Python,Python相对Java更简单,学习成本要低一些。

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

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

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

  3. 跟着廖雪峰的网站学也是可以的 廖雪峰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

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

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

用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. 现在,大神,可以拿你的平台去卖钱了

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

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

当然,别嘲笑我,博主也是在慢慢往上爬,这些也只是我个人的一些脑洞,一些想法,如果你也有什么想法,可以和博主多交流交流。

谨以此文,向广大的初学者指点一条博主认为不错的路径,具体你的学习方式、学习过程,见仁见智吧。


更多关于python selenium的文章,请关注我的CSDN专栏:Python Selenium自动化测试详解

Python selenium —— selenium与自动化测试成神之路相关推荐

  1. selenium之自动化测试成神之路浅谈

    忽然想谈谈自动化的学习路径,因为发现很多人总是急于求成,不懂该如何学习. 在学习或者工作中,难免会遇到很多低级问题,例如写了一个selenium脚本,却执行失败,却不知道这里为什么会报错?很多都是明显 ...

  2. python职业发展规划-Python开发者的四大进阶攻略,菜鸟的成神之路

    原标题:Python开发者的四大进阶攻略,菜鸟的成神之路 随着人工智能的发展与应用,Python编程语言受到世界各界人士的关注,编程圈金句从"人生苦短,我学Python"转变成了& ...

  3. vim 成“神“之路 (一)

    文章目录 1. 安装 1.1 linux 1.2 MacOs的安装 1.3 Windows的安装 1.4 vim中文帮助文档安装 2. vim基本概念和基础命令 2.1 基本的键位映射如下: 2.2 ...

  4. Java成神之路[转]

    阿里大牛珍藏架构资料,点击链接免费获取 针对本文,博主最近在写<成神之路系列文章> ,分章分节介绍所有知识点.欢迎关注. 主要版本 更新时间 备注 v1.0 2015-08-01 首次发布 ...

  5. Java 工程师成神之路 | 2019正式版 1

    Java 工程师成神之路 | 2019正式版 基础篇 01 面向对象→ 什么是面向对象 面向对象.面向过程 面向对象的三大基本特征和五大基本原则 → 平台无关性 Java 如何实现的平台无关 JVM ...

  6. Java工程师成神之路 | 2022正式版

    基础篇 面向对象 什么是面向对象 面向对象与面向过程 面向对象的三大基本特征 面向对象的五大基本原则 封装.继承.多态 什么是多态 方法重写与重载 Java的继承与实现 Java的继承与组合 构造函数 ...

  7. Java小白怎么学?2021年最强版Java工程师成神之路

    以下文章来源于爱笑的架构师 最近很多读者在问:Java 怎么学习啊 ?有没有什么学习路线 ?Java " 成神 " 之路怎么走? 当然「成神」是有些夸张了,我相信问这句话的读者或多 ...

  8. 阿里P8资深架构师耗时一年整理Java工程师成神之路

    1.基础篇 01:面向对象 → 什么是面向对象 面向对象.面向过程 面向对象的三大基本特征和五大基本原则 → 平台无关性 Java 如何实现的平台无关 JVM 还支持哪些语言(Kotlin.Groov ...

  9. (上)史上最全 Flink SQL 成神之路(全文 18 万字、138 个案例、42 张图)

    1.前言 看了那么多的技术文,你能明白作者想让你在读完文章后学到什么吗? 大数据羊说__的文章会让你明白 博主会阐明博主期望本文能给小伙伴们带来什么帮助,让小伙伴萌能直观明白博主的心思 博主会以实际的 ...

  10. 《Java工程师成神之路》终于免费开放下载了!

    很多Java程序员一直希望找到一份完整的学习路径,但是市面上很多书都是专注某一个领域的,没有一份完整的大图,以至于很多程序员很迷茫,不知道自己到底应该从哪里开始学,或者不知道自己学习些什么. 好在,很 ...

最新文章

  1. 基于 Android NDK 的学习之旅-----资源释放
  2. 交叉验证python_急!请教一个python里交叉验证的问题
  3. Mysql、Oracle、SQLServer等数据库参考文档免费分享下载
  4. spring整合webservice
  5. java面试题二十四 继承题2
  6. 知识点:Mysql 索引原理完全手册(1)
  7. linux shell编程多线程和wait命令学习
  8. 带你自学Python系列(一):变量和简单数据类型(附思维导图)
  9. 任正非:华为明年至少招8000名应届生;苹果开发 Google 搜索的替代;NumPy 1.19.3发布|极客头条
  10. MakeDAO 推出新漏洞奖励计划,最高赏金1000万美元
  11. 共轭函数Fenchel不等式
  12. Python技术公众号100天了
  13. 微博、微信,媒体选择何去何从
  14. Android 继承于PopuWindow的自定义弹出窗体
  15. Single Image Haze Removal Using Dark Channel Prior 基于暗原色先验的单一图像去雾方法【翻译】
  16. Linux系统的下载神器XDM
  17. 使用 Kali Linux 爆破 WiFi 密码
  18. UINavigationController导航控制器详解
  19. 微信开发模式群发消息接收的是乱码
  20. 网络安全应急响应事件场景二

热门文章

  1. Android项目中把bin文件夹里面的.apk文件删除,怎么让它再生成
  2. 多维泰勒网matlab,非线性定常系统的多维泰勒网优化跟踪控制
  3. medusa详细教程
  4. Mysql数据库日期查询
  5. MySQL 查询本月各周
  6. 【IOS网络通信】socket第三方库 AsyncSocket(GCDAsyncSocket)
  7. kubernetes(4)Pod的核心概念、Pod的调度
  8. linux下安装mysql8.0
  9. 30个专业配色网站, 让你配色从此更专业
  10. shader篇-立方体纹理