设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
给我们的框架分为3层,分别是叫逻辑层,数据层,对象层。 这三层的存储格式都用xml来表示。
1.逻辑层 (test Scripts)
既用来描述我们步骤的逻辑,像点击,输入,选中,对比这些操作。
逻辑层基于关键字驱动,格式如下
Command |
Target |
Value |
Click |
OKButton |
|
Type |
AEdit |
123 |
上面的每一行将每一个步骤划分为 Command,target , value 三个部分。
在xml上的表示方法如下:
- <Functioncommand="openHomePage"target=""value=""/>
- <Functioncommand="sleep"target="5"value=""/>
- <Htmlcommand="click"target="uimap(HostnamePage).NetworkTab"value=""/>
- <Htmlcommand="type"target="uimap(HostnamePage).HostNameFiled"value="data(Dataxml1).test1"/>
2.数据层 (test Data)
用来存储被测试的数据,实现测试数据和测试逻辑的分离, 和测试逻辑脚本的重复利用。
定义格式如下
- <Data>
- <propertyname=”test1”>testdata1</property>
- <propertyname=”test2”>testdata2</property>
- <Data>
3.对象层 (UIMaps)
用来存储被测试网也对象,按Page来保存文件,我们把这个叫做UIMaps。
- <Targets>
- <xpathname=”AEdit”>//input[@=’a’]</xpath>
- <xpathname=””>//input[@id=’ok’]</xpath>
- </targets>
- <Messages>
- <messagename=”ALabelText”>
- <contentlanguage=“ENU”>HelloWorld!</content>
- <contentlanguage=“CHS”>你好扯淡!</content>
- </message>
- </Messages>
页面上的element 放在 Targets标签下, 页面上的文字内容放在messages标签下,这里面开可以定义不同语言的文字。
另外我们需要一个config.xml文件用来保存一些环境配置信息。
如下所示:
- <host>localhost</host>
- <port>4444</port>
- <baseUrl>http://10.12.23.38</baseUrl>
- <browser>iexplore</browser>
- <!--==websitetestconfig===-->
- <language>en</language>
- <timeout>10</timeout>
- <retryTimes>3</retryTimes>
基于上面我们就有了下图我们整个SAFX框架的结构图。
SAFX Controller 是入口,需要传入config.xml 作为配置信息。
SAFX Controller 还控制了整个测试脚本执行的过程,通过调用Selenium ClientAPI 去操作浏览器实现我们的步骤。
SAFX 同时实现了 异常处理 和Report输出的功能。
当然花这么多时间写个框架首先总有几点好处,要不费那劲干嘛。
1.一个是实现脚本,数据,对象库分离, 提高脚本重用,方便页面变化之后的维护。
2.用xml 编写脚本文件,不需要编译,随时修改调试。
3.自定义report的输出,这边默认设置了3中格式的 result(xml, html, xls)
设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层相关推荐
- 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程
设计自己的基于Selenium的自动化测试框架-Java版(2) -定义自己的工作流程 Work flow chart 上图是整个工作流程,红色虚线上面的需要手动来完成,红色虚线下面的实现自动化. 我 ...
- 设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?...
本人自动化测试接触时间不久,如有误导,概不负责. 既然有了selenium这个开源的自动化的工具,为什么还要我们自己再去写一个框架? Selenium是自动化的工具,当然是可以用在测试领域,但他不是为 ...
- 预见自动化测试 | 基于 SELENIUM 的自动化测试架构
基于 SELENIUM 的自动化测试架构 非常感谢各位查阅本篇文章,笔者在此感谢各位. 目前市面上有分门别类的自动化测试工具,这篇文章将讨论开源自动化测试工具 Selenium的使用,以及围绕该工具进 ...
- 基于selenium的自动化测试脚本编写-python
浏览器操作 1 启动浏览器并打开网页 2 拖拽操作 3 弹窗处理 4 后退前进关闭 5 cookies操作 异常处理 1 等待 11 sleep函数 12 隐示例等待 13 使用javascript ...
- 【算法设计与分析】Dijskra算法代码:Java版
import java.util.Arrays;public class DijkstraAlgorithm {public static void main(String[] args) {char ...
- Java应用程序安全框架
<从零打造项目>系列文章 工具 比MyBatis Generator更强大的代码生成器 ORM框架选型 SpringBoot项目基础设施搭建 SpringBoot集成Mybatis项目实操 ...
- python3.7界面设计_基于selenium+Python3.7+yaml+Robot Framework的UI自动化测试框架
前端自动化测试框架 项目说明 本框架是一套基于selenium+Python3.7+yaml+Robot Framework而设计的数据驱动UI自动化测试框架,Robot Framework 作为执行 ...
- 基于Selenium与Pytest框架的Web UI自动化测试系统的设计与实现
摘要 随着互联网的高速发展,软件技术日新月异,产品更新换代的加快等,始终都离不开一个最核心的要素就是保证产品的质量,测试人员则在其中担任着不可或缺的角色.测试人员的主要工作职责就是通过各种测试手段去发 ...
- 基于python的界面自动化测试-基于Selenium+Python的web自动化测试框架
一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...
最新文章
- android 有效载荷大图,避OOM
- Github代码上传和下载
- 理解Javascritp中的引用
- 2007年淘宝网手机销量统计报告
- 小爱同学100个奇葩回复_小米小爱音箱Pro开箱评测,看到的不仅是全面升级更是小米loT的高速发展...
- C# switch语句中,可以放哪些类型
- JavaScript算法【特殊篇】数组去重的十种实用方案
- Spring实战(六)自动装配的歧义性
- MRS,MSR指令详解
- JSP 高校后勤报修管理系统myeclipse开发mysql数据库bs框架java编程serlvet(MVC)结构详细设计
- 即时通讯WebSocket
- EsgynDB 使用JDBC UDR访问远程Trafodion的几个问题小结
- 对于ros中launch文件的解读
- 数据结构和算法基础(4)——树
- 深度探讨,共创未来 | 思爱普(SAP) 助力碧桂园实现数字化转型
- 中国书信礼仪 (三)
- mysql 表锁 MDL锁 行锁
- 安装hadoop集群模拟大数据集群踩到的坑(一)
- 排版设计常用术语和常识
- 5_echo命令的作用
热门文章
- 关于Ip地址分配规则(IPV4)
- c语言斐波那契数列前20项每行5个数,求c++:源程序。前20项斐波那契数列 ,要求输出的时候每行输出五个...
- linux activemq修改端口号,linux下 activemq集群配置
- html5经纬度 ios,iOS 如何根据经纬度来定位位置(示例代码)
- python函数的四个特点_Python面向对象三大特征之封
- Informix日志报错:Could not do a physical-order read to fetch netxt row
- sql server 多用户 并发_Tinyid:滴滴开源千万级并发的分布式ID生成器
- 自动化测试十大疑问解答 软件测试人必看
- 一文带你用python做自动化测试
- 在PyCharm环境下使用Jupyter Notebook