selenium与自动化测试成神之路---学习方法

2024-02-25 21:08

本文主要是介绍selenium与自动化测试成神之路---学习方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://blog.csdn.net/huilan_same/article/details/52559711

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

在群里总是会遇到很多人问低级问题,写了一个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与自动化测试成神之路---学习方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/746714

相关文章

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j