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注入的方式来进行界面元素操作!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-07 17:44:02

Web自动化测试框架改进的相关文章

Windows环境搭建Web自动化测试框架Watir(基于Ruby) 第1章

一.前言     Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将Web自动化测试应用于工作中,进而形成能够独立成章的博文,希望能够为国内web自动化测试的发展做一点绵薄的贡献吧,笑~ 二.Watir搭建流程 图1-1 需要安装的工具     下载地址:http://railsinstaller.org/     因为安装Ruby还需要用到其他的一些开发工具集,所以建议从网站http://railsinstaller.o

Windows环境搭建Web自动化测试框架Watir(基于Ruby)

web自动化测试一直是一个比较迫切的问题 图1-1 需要安装的工具 http://railsinstaller.org/ 因为安装Ruby还需要用到其他的一些开发工具集,所以建议从网站http://railsinstaller.org/ 下载,而且使用该安装包的话,它会帮你把环境变量也设置完毕,我使用的版本是:railsinstaller-2.2.4.exe,建议下载最新版本. 开始安装RailsInstaller工具包,安装到默认位置即可. 这个对勾建议打上,它会帮你配置git和ssh,安装过

Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本

一.先来看一个小DEMO     通过上一篇博文<Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署>的介绍,我们已经有了完整Watir运行环境,现在我们可以来试用一下Watir,来对其进一步了解: 图1-1 测试脚本:测试百度搜索     代码如下: #encoding: utf-8 #测试百度搜索 require 'watir' puts "打开浏览器" browser = Watir::Browser.new sleep 2 #延时

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

原先搭建过一个自动化测试框架,迷迷糊糊不求甚解,算是搭建了一个仅限于能用的.根本算不上框架的玩意儿. 现在回过头来好好看看究竟每一步是怎么联系起来的,是怎么运行起来的. 本次博客先说说各部件都是干什么的. 各部件简介: jenkins: 提到jenkins就不能不提持续集成.jenkins是一个持续集成方面很好很成熟的开源软件,jenkins本身又是一个java的开源项目,提供了很多功能丰富的插件. 那到底持续集成是个什么东西?整这么多专业名词一点都不接地气.说说我的白话理解: 先看看持续和集成

python之web自动化测试框架

梳理下搭建web自动化框架的流程: 创建目录: cases:存放测试用例,unittest框架要求用例名必须以test开头,所以命名test_case.py test_case.py代码如下:继承unittest.TestCase类下面的方法setupclass(),teardownclass().然后把用例放进去.每个页面作为一个用例 '''这里写业务的用例 用例要用到page unittest''' from page.basePage import Page import unittest

selenium3 web自动化测试框架 三:Unittest介绍及项目实战中的运用

unittest介绍及运用,可以参考之前写的文章,除了未结合web自动化演示,基础知识都有了 https://www.cnblogs.com/wuzhiming/p/8858305.html unittest在自动化中的基础使用 下例演示用例的运行 # -*- coding:utf-8 -*- import unittest from selenium import webdriver from business.register_business import RegisterBusiness

基于web自动化测试框架的设计与开发(本科论文)

原文地址:https://www.cnblogs.com/caiqianghao/p/10107690.html

Web自动化测试框架-2selenium环境搭建

使用title_contains检查页面是否正确 from selenium import webdriver from selenium.webdriver.support import expected_conditions as EC import time driver=webdriver.Firefox() driver.get("https://www.baidu.com/") time.sleep(3) print(EC.title_contains("一下&q

iOS、安卓app还有web框架ui_framework轻松实现app自动化测试以及web自动化测试

一.功能介绍 Ui_framework类似于interface_framework 提供一个gem包,安装后即可使用. 1.实现了Android以及iOS app自动化测试底层基本方法封装以及测试执行报告: 2.实现了web自动化测试框架封装,实现了web标签操作予以动态方法达到元素操作目的,无需因为标签种类增加或者操作变动而增加变动底层方法 二.框架架构说明 架构图: 三.使用说明 1.  安装gem包ui_framework: 2.  脚本中require 'ui_framework' 3.