原先搭建过一个自动化测试框架,迷迷糊糊不求甚解,算是搭建了一个仅限于能用的、根本算不上框架的玩意儿。

现在回过头来好好看看究竟每一步是怎么联系起来的,是怎么运行起来的。

本次博客先说说各部件都是干什么的。

各部件简介:

  jenkins:

    提到jenkins就不能不提持续集成。jenkins是一个持续集成方面很好很成熟的开源软件,jenkins本身又是一个java的开源项目,提供了很多功能丰富的插件。

    那到底持续集成是个什么东西?整这么多专业名词一点都不接地气。说说我的白话理解:

      先看看持续和集成本身的意思:

        持续:就是指日复一日,年复一年不断的做一件事儿。

        集成:是指把一堆分离的东西弄到一块去。

    那么回来再看看jenkins中的持续集成:

      不间断的,自动的,把每天的新东西整合到一起。新东西包括源代码,机器环境、测试代码等等。让这些重复的、繁琐的并且有规律的工作交给机器去做。

    说了半天,那么为什么要用到jenkins呢?jenkins最突出的一个功能就是可以关联代码版本库(svn、git等),当版本库有改动时(有人提交了代码,使代码库有变动)。会自动触发jenkins的构建,也就是会自动执行测试用例。当测试用例全部通过了,则表明本次改动没问题。如果测试失败了则表明改动后出了问题,需要查明原因并解决才能再次提交代码到版本库。

  python:

    我用python编写测试用例脚本。

    其实写测试用例脚本可以用很多语言写,java,c#编译型语言也可以。但是python本身是一个很灵活的脚本语言,书写起来方便快捷。

    与其他脚本语言,比如php、ruby、perl等等相比,python语法简洁,书写格式清晰,数据类型使用起来方便顺手,类库丰富,涉及范围涵盖绝大多数领域。

    最简单的一点:python写起来很舒服。

  selenium:

    做web测试必然需要跟浏览器打交道。那么做web的自动化测试,怎样操作浏览器呢?这就需要使用selenium了。

    selenium又是什么呢?selenium提供了很多类、方法等,使脚本可以通过其提供的方法,模拟真实用户操作浏览器。

      selenium到现在为止大体经过了两个阶段,也算是两个版本。

    在selenium1.0阶段,selenium是通过js操作页面上的全部动作,由于是通过调用js来操作的,所以有很大的局限性。

      例如无法做出拖拽动作、对系统弹窗也没办法操作,因为js只能操作页面元素。

    在selenium2.0阶段,selenium和webdriver整合到了一起。

      有了webdriver,selenium从两方面有了改进,一方面selenium不再使用js操作浏览器了,而是通过不同浏览器厂商提供的大部分页面操作的接口来操作页面元素。

      另一方面webdriver可以与系统底层交互,直接发送动作信号。例如按下什么键、鼠标移动到哪里等。可见selenium2.0比1.0强大很多。

  这里简单说说webdriver:

    webdriver我的理解:

      他算是一个API,一个规范。

      各种不同的浏览器厂商参照这份规范,给出selenium调用自家浏览器的接口。

      然后各种编程语言也是参照这份规范,给出语言自身的、可以操作不同浏览器的类库。

      例如我要用python写测试脚本,要通过python脚本,打开Firefox浏览器,进行一些列页面操作。

      这个过程能得以实现,是因为:python有一个叫做selenium的外部类库,selenium类库里面又有针对不同浏览器而实现的不同的浏览器包。

      这样我就可以通过导入selenium类库,再调用selenium类库里面的Firefox包来打开浏览器、填写表单、点击按钮了。

好了,第一阶段先到这里,随着一点点完善“框架”,博客也会不断更新。后续贴上一些图片加深理解。

  

使用jenkins + python + selenium一步步搭建web自动化测试“框架”(1) - 各部件简介的更多相关文章

  1. Windows环境搭建Web自动化测试框架Watir

    Windows环境搭建Web自动化测试框架Watir 一.前言     Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将We ...

  2. selenium3 web自动化测试框架 五: 数据驱动简介及基础使用

    1.数据驱动概述 相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离,这样的测试脚本设计模式称为数据驱动.简单的理解为数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使 ...

  3. 基于Selenium+Python的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  4. Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署

    一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将Web自动化测试应用于工作中,进而形成能够独立成章的博文,希望能够 ...

  5. web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架

    基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架   by:授客 QQ:1033553122     博客:http://blog.sina.com.cn/ishou ...

  6. Python+Selenium(1)- 环境搭建

    一,Selenium 简介 Selenium是目前最流行的web自动化测试工具,也常用于网络爬虫,已经更新到3以上的版本. 1,组件 它提供了以下web自动化测试组件: Selenium IDE,Fi ...

  7. Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接

    今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...

  8. 小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  9. Python+selenium之简单介绍unittest单元测试框架

    Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...

随机推荐

  1. phaser源码解析(二) Phaser.Utils类下pad方法

    /** *#填充字符串方法 * Javascript string pad http://www.webtoolkit.info/. * pad = the string to pad it out ...

  2. 初次使用JFinal

    刚进公司的时候是经过了学员期培训,不断的学习. 终于有机会可以进入了项目组,一个给予.NET开发的项目,框架是MVC,三个多月的项目在一个团队的合作下完成了一个正式成为程序员后参与的第一个大型项目. ...

  3. 什么是CGI(Common Gateway Interface)?

    参考: 1.Python CGI编程 2.十分钟搞懂CGI 3.CGI Made Really Easy

  4. Thrift 应用场景(收集版)

    官网: http://thrift.apache.org/ 一些介绍使用的文章: http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift ...

  5. jQuery 快速入门教程

    内容目录 jQuery 入门 什么是jQuery 如何使用jQuery jQuery的运行原理 如何选择jQuery版本 ready() 准备就绪时执行代码 jQuery 核心:选取元素 使用jQue ...

  6. javascript 学习笔记之模块化编程

    题外: 进行web开发3年多了,javascript(后称js)用的也比较多,但是大部分都局限于函数的层次,有些公共的js函数可重用性不好,造成了程序的大量冗余,可读性差(虽然一直保留着注释的习惯,但 ...

  7. Google Map 自定义 infowindow

    最近做的东西用到了infowindow,不过google提供的样式太难看了,于是想改变一下样式.看了一下好像infowindow的样式不太好改. 查了半天资料,看到一个infobox,感觉真的挺好用. ...

  8. sae后台管理的js(二)

    jsloader cssloader 使用方法<link rel="stylesheet" type="text/css" href="/min ...

  9. hadoop1——map到reduce中间的shuffle过程

    ---恢复内容开始--- shuffle和排序 过程图如下: MapReduce确保每个reduce的输入都按键排序,系统执行排序的过程——将map输出作为输入传给reduce——成为shuffle, ...

  10. 【转载】db blocks gets & consistent gets

    LOGIC IO(逻辑读次数)= db block gets + consistent gets consistent get : 在一致读模式下所读的快数,包括从回滚段读的快数. db block ...