Web自动化测试框架改进
Web自动化测试框架(WebTestFramework)是基于Selenium框架且采用PageObject设计模式进行二次开发形成的框架。
一、适用范围:传统Web功能自动化测试、H5功能自动化测试。
二、兼容性:建议使用火狐或谷歌浏览器,因为Selenium与其兼容性最好。
三、框架改进亮点(比Selenium框架优的地方):
1、 采用PageObject设计模式,将某个页面的所有元素(包含控件)属性及元素操作封装在1个Class里面,如下所示:
这样做的目的是为了解耦,即测试代码与被测页面对象代码分离,后面若页面元素发生了变化,只需要修改被测页面对象代码(即上述Class文件)而不需要修改测试代码,这样大大减小了后期因页面变化导致脚本或用例维护的成本。
下面展示的测试代码片段中未用到任何页面元素对象:
2、 采用XPath策略来寻找页面元素,而不建议使用Name、Link等方式来寻找。因为当页面元素的Name、Link发生了变化,测试代码(测试用例)就无法执行下去或执行过程中不稳定。若采用XPath,只要页面元素所在区域未发生变化,而Name、Link等发生了改变,测试代码基本不会受影响,代码如下所示:
声明:一般XPath是基于CSS样式来做的,但CSS-Style改变的需求或可能性不是很大,换句话说,这样的变动周期较长;若想“以不变应万变”, 使用DOM元素的ID进行定位,这种方式的好处是不受元素所在位置、以及所应用的样式的影响。
3.将页面元素属性信息与代码分离,即与被测对象代码分离,这样做的目的也是为了进一步降低后续因页面变化带来的维护成本,即当页面发生改变时,只需要修改对应页面中XML配置文件信息,如下所示:
个人心得:
若希望基于Selenium框架二次开发的框架更加易于扩展,可以尽量少用Selenium提供的API,可以使用大量JS注入的方式来进行界面元素操作!
Web自动化测试框架改进的更多相关文章
- Web自动化测试框架-PO模式
Web自动化测试框架(WebTestFramework)是基于Selenium框架且采用PageObject设计模式进行二次开发形成的框架. 一.适用范围:传统Web功能自动化测试.H5功能自动化测试 ...
- 基于Selenium+Python的web自动化测试框架
一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...
- Windows环境搭建Web自动化测试框架Watir
Windows环境搭建Web自动化测试框架Watir 一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将We ...
- web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架
基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架 by:授客 QQ:1033553122 博客:http://blog.sina.com.cn/ishou ...
- Web 自动化测试框架 sweetest 介绍
项目开源: https://github.com/tonglei100/sweetest 文章转载:https://segmentfault.com/a/1190000011612061 介绍 swe ...
- Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本
一.先来看一个小DEMO 通过上一篇博文<Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署>的介绍,我们已经有了完整Watir运行环境,现在我们可以来 ...
- Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署
一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将Web自动化测试应用于工作中,进而形成能够独立成章的博文,希望能够 ...
- web自动化测试框架总结
web自动化测试框架总结: https://www.processon.com/mindmap/5bdab924e4b0878bf41e9e09
- selenium3与Python3实战 web自动化测试框架 ☝☝☝
selenium3与Python3实战 web自动化测试框架 selenium3与Python3实战 web自动化测试框架 学习 教程 一.环境搭建 1.selenium环境搭建 Client: py ...
随机推荐
- jquery使用ajax传内容到asp.net乱码解决【转】
转自:http://www.cnblogs.com/qiantuwuliang/archive/2009/08/02/1537160.html#undefined Jquery强大的功能越来越收到广大 ...
- pip更新产生的问题及其解决方法?
运行 pip3 install --upgrade pip 发生错误: from pip import main ImportError: cannot import name 'main' 将以下代 ...
- Android之Bitmap 高效加载
一张图片(BitMap)占用的内存=图片长度*图片宽度*单位像素占用的字节数 图片格式(Bitmap.Config) 一张100*100的图片占用内存的大小 ALPHA_8 图片长度*图片宽度 100 ...
- 初学Linux 命令
查看ip:ifconfig 切换用户:us root(root为用户名) 显示当前目录:pwd 列出当前目录下所有文件:ls 进入某个目录 :cd 创建一个文件夹:mkdir 创建多个目录(当没有该父 ...
- maven学习(七)——使用maven构建java项目
构建Jave项目 1.使用mvn archetype:generate命令,如下所示: mvn archetype:generate -DgroupId=com.mycompany.app -Dart ...
- maven学习(一)——maven的下载与安装
一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1. ...
- POJ 2836:Rectangular Covering(状态压缩DP)
题目大意:在一个平面内有若干个点,要求用一些矩形覆盖它们,一个矩形至少覆盖两个点,可以相互重叠,求矩形最小总面积. 分析: 数据很小,很容易想到状压DP,我们把点是否被覆盖用0,1表示然后放在一起得到 ...
- Eclipse的Web项目完成后怎么发布到Tomcat
打开eclipse,在“Server Locations”处,可以看到默认的是“Use Workspace metadata”. 而我们选择“Use Tomcat installation”,使用to ...
- [区别]APPlication,Session,Cookie,ViewState和Cache
原文发布时间为:2009-08-01 -- 来源于本人的百度文章 [由搬家工具导入] 在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewS ...
- 阿里巴巴Java开发手册公开版(转)
1.不要嫌名字长 无论是方法,变量,还是函数的取名,不要嫌弃名称太长,只要能够表示清楚含义就可以了. 2.String[] args而不是String args[] 中括号是数组类型的一部分,数组定义 ...