使用jenkins + python + selenium一步步搭建web自动化测试“框架”(1) - 各部件简介
原先搭建过一个自动化测试框架,迷迷糊糊不求甚解,算是搭建了一个仅限于能用的、根本算不上框架的玩意儿。
现在回过头来好好看看究竟每一步是怎么联系起来的,是怎么运行起来的。
本次博客先说说各部件都是干什么的。
各部件简介:
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) - 各部件简介的更多相关文章
- Windows环境搭建Web自动化测试框架Watir
Windows环境搭建Web自动化测试框架Watir 一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将We ...
- selenium3 web自动化测试框架 五: 数据驱动简介及基础使用
1.数据驱动概述 相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离,这样的测试脚本设计模式称为数据驱动.简单的理解为数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使 ...
- 基于Selenium+Python的web自动化测试框架
一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...
- Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署
一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将Web自动化测试应用于工作中,进而形成能够独立成章的博文,希望能够 ...
- web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架
基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架 by:授客 QQ:1033553122 博客:http://blog.sina.com.cn/ishou ...
- Python+Selenium(1)- 环境搭建
一,Selenium 简介 Selenium是目前最流行的web自动化测试工具,也常用于网络爬虫,已经更新到3以上的版本. 1,组件 它提供了以下web自动化测试组件: Selenium IDE,Fi ...
- Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接
今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...
- 小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- Python+selenium之简单介绍unittest单元测试框架
Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...
随机推荐
- HDU 1619 Unidirectional TSP(单向TSP + 路径打印)
Unidirectional TSP Problem Description Problems that require minimum paths through some domain appea ...
- Source Insight及常用插件
Source Insight及常用插件 1.Source Insight 2.插件 <1>.使用快捷键注释,单行注释,多行注释,#if 0注释 <2>.跳转到当前文件所在的文件 ...
- C++类继承内存布局(二)
转自:http://blog.csdn.net/jiangyi711/article/details/4890889# (二 )成员变量 前面介绍完了类布局,接下来考虑不同的继承方式下,访问成员变量的 ...
- Hive - 建表和加载数据指令小结 以及使用Load data指令的注意事项
类似Mysql的数据库概念: hive> CREATE DATABASE cui; hive> USE cui; 创建表: CREATE TABLE test( first STRING, ...
- php练习6——面向对象编程(打印乘法表)
要求:编写一个成员函数,从键盘输入一个数(0—9),打印出对应的乘法表 程序:viewChengFB.html chengFB.class.php printChengFB.php 结果
- 解决php的$美元符号与Zen Coding冲突问题
Zen Coding插件就不介绍了. 众所周知,安装了插件以后,输入$符号会被自动解析为相应的数字1.2.3... 作为一名PHP程序员,想要通过其定义一些自己常用的代码.却发现展开以后悲剧的发现$符 ...
- TDirectory.Copy复制文件
描述:复制文件夹以及文件夹下的内容 procedure Copy(const SourceDirName, DestDirName: string) 参数一:源文件夹 参数二:目标文件夹 所在单元:S ...
- JBPM4 常用表结构及其说明
本文从表结构.操作时表的变化以及jbpm4.4各个包的作用来介绍jbpm的. 第一部分:表结构说明 Jbpm4 共有18张表,如下,其中红色的表为经常使用的表 一:资源库与运行时表结构 1. J ...
- 十分钟了解MVVMLight
十分钟了解MVVMLight 前言: 最近看了看开源框架MVVMLight,一直想写一点笔记,但是文笔欠佳,索性就放弃了.那就来翻译一点文章吧. 由于英文水平和技术水平有限,凡是不妥之处,请大家指 ...
- 【转载】db blocks gets & consistent gets
LOGIC IO(逻辑读次数)= db block gets + consistent gets consistent get : 在一致读模式下所读的快数,包括从回滚段读的快数. db block ...