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

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

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

各部件简介:

  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. ios专题 - 异步下载加下载进度显示

    [罗国强原创] 今天被刺激了,愤概地要写下这边博文. 说到http异步下载,首先要知道其中的关键类. 关键类是NSURLConnection  NSURLRequest NSMutableURLReq ...

  2. Unity中使用RequireComponent,没有添加上组件

    using UnityEngine; using System.Collections; [RequireComponent(typeof(MeshFilter), typeof(MeshRender ...

  3. 10.29_Extjs-lovcombo

    (1) Ext.ux.form.LovCombo多选下拉框 :http://www.iteye.com/topic/340900 (2)combox:icon,lovcombo:icon (3) (4 ...

  4. bc

    调试脚本报错bc: command not found 原因是因为这个linux环境里没有安装计算器工具bc 用 apt-get install bc 或者 yum -y install bc 安装后 ...

  5. jQuery学习教程(2)

    由于一件事情打断了我的生活节奏,每天都学习都在托托拉拉,导致很多进度都没有达到自己预期的效果 在上一个章节我学到了环境的搭建,以及对jquery的熟悉.现在开始对其具体进行熟悉了. 一.如何使用选择器 ...

  6. CentOS 6.4 使用第三方源

      1.EPEL源 CentOS 6.x 32-bit (x86/i386):rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/ep ...

  7. 前端工程的构建工具对比 Gulp vs Grunt

    1. Grunt -> Gulp 早些年提到构建工具,难免会让人联想到历史比较悠久的Make,Ant,以及后来为了更方便的构建结构类似的Java项目而出现的Maven.Node催生了一批自动化工 ...

  8. linux vi 使用

    vi 有一般模式和编辑模式 如vi test.txt 是首先进入的一般模式,一般模式下只能进行复制.删除.粘贴文件数据, 在一般模式下按i .I.a.A.o.O 都能进入编辑模式,按下不同的键进入编辑 ...

  9. 一些Swift编程语言的相关资料

    苹果官方Swift文档<The Swift Programming Language> 苹果开发者Swift文档及介绍 中文版Apple官方Swift教程(Github协作翻译中) Git ...

  10. #ifndef#define#endif的用法-b

    The special operator defined is used in #if and #elif expressions to test whether a certain name is ...