Selenium2(java)框架设计 九
设计框架原则:
数据分离,业务层和逻辑层不要混杂在一起.
设计图:
框架结构初始化:
com.wymall.test:这是存放这个框架源代码的根目录
base:里面有个基类(BaseParpaare.java),这个类的只要作用是启动和关闭浏览器,启动浏览器使用了TestNG
的@BfforeClass,在这个注释下写了driver的初始化以及打开浏览器等操作;关闭浏览器使用了TestNG的@AfterClass,在这个注释下写了driver退出的操作;测试用例以@Test注释为主体。测试用例继承这个基类,运行测试类的时候,会先去基类中找@BeforeClass下的代码去执行,然后再去执行@Test的内容,最后再执行@AfterClass的内容。
pages:页面元素类,每一个java类,都是一个页面,存放的都是对应页面的所有元素。
pageshelper:主要存放对应页面的帮助类,在这个页面上做了什么操作都要写在这个pageshelper中,比如登陆方法。
plugins:主要存放的是arrow插件以及第三方插件。
testcases:存放测试用例的地方,在这个包下,还会有很多子包,一般一个模块划分为一个子包,子包的命名以模块名命名。
utils:主要是封装了各种工具类,包括读取excel,selenuim api封装类,读取数据库类,读取属性文件类和选择浏览器类等。
config目录:存储框架类所需的所有属性文件,比如arrow的配置文件以及自定义的一些属性文件。
doc目录:可以存放一些项目文档,比如框架的说明文档,编码规范等。
data目录:各模块需要用到的一些测试数据,以Excel文件形式存放在该目录下。每个模块对应一个Excel文件,每个sheet对应的是一个测试用例。
res目录:主要存放的是driver,比如chromedriver和iedriver等。也会存放一些图片,第三方脚本(比如autoit)。
result目录:存放测试框架运行测试用例生成的报告(包含log,截图等)。
把Java项目转变为Maven项目
1.maven安装,下载地址:http://maven.apache.org/
2.修改全局配置文件:D:\apache-maven\conf,编辑settings.xml,找到localRepository关键字,我们需要把这个localRepository 注释去掉(<!-- -->),不然这个配置不会被加载。配置修改为<localRepository>D:\autotest\maven\repo\m2</localRepository>,路径为本地路径
3.配置镜像在settings.xml中找到mirror标签,在标签对中加入:
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>repo2center</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
<id>nexus-tmatesoft</id>
<mirrorOf>central</mirrorOf>
<name>Nexus tmatesoft</name>
<url>http://maven.tmatesoft.com/content/groups/public/</url>
</mirror>4.修改用户配置文件:将编辑的settings.xml文件复制到本地D:\autotest\maven\repo目录下
在eclipse中配置maven
5.项目转换:项目右键-->configure-->Convert to Maven Project,转换完成之后项目的根目录会生成一个pom.xml文件,这个文件是maven的配置文件,项目名称会有M的标识。
加入项目依赖(添加jar包)
添加selenium jar包,访问maven仓库:http://mvnrepository.com/,搜索selenium找到对应的版本,将版本的信息复制到pom.xml
保存之后就会自动下载selenium相关的jar包:
加入TestNG配置文件
项目右键-->TestNG-->Convert to TestNG-->Finish
Selenium2(java)框架设计 九的更多相关文章
- 读懂框架设计的灵魂—Java反射机制
尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...
- 《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动 ...
- java简单框架设计
设计框架包可以作为一个工具给大家用,需要有完全不同设计思路给出来,不同于我们去做一个web服务.网站. 或者一个业务微服务,需要从原来使用视角转换成一个构建者视角. 框架或者工具,更多是框架来管理或者 ...
- Fork/Join 框架-设计与实现(翻译自论文《A Java Fork/Join Framework》原作者 Doug Lea)
作者简介 Dong Lea任职于纽约州立大学奥斯威戈分校(State University of New York at Oswego),他发布了第一个广泛使用的java collections框架实 ...
- Java+Selenium3自动化测试框架设计系列--href="javascript:void(0)"如何获得元素定位
经过前面两篇文章的铺 垫,我们这篇介绍,webdriver如何处理,一个浏览器上多个窗口之间切换的问题.我们先脑补这样一个测试场景,你在页面A点击一个连接,会在新的 tab窗口打开页面B,这个时候,你 ...
- 组件化框架设计之Java SPI机制(三)
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 本篇文章将从深入理解java SPI机制来介绍组件化框架设计: ...
- java课程设计(计算器)
JAVA课程 设 计 报 告 1206401-18 瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...
- java课程设计团队博客《基于学院的搜索引擎》
JAVA课程设计 基于学院网站的搜索引擎 对学院网站用爬虫进行抓取.建索(需要中文分词).排序(可选).搜索.数据摘要高亮.分页显示.Web界面. 一.团队介绍 学号 班级 姓名 简介 2016211 ...
- 转 分享我在阿里工作十年接触过Java框架设计模式
转 原文: 分享我在阿里工作十年接触过Java框架设计模式 一.前言 说起来设计模式,大家应该都耳熟能详,设计模式代表了软件设计的最佳实践,是经过不断总结提炼出来的代码设计经验的分类总结,这些模式或者 ...
随机推荐
- Android内存性能优化(内部资料总结) 转
刚入门的童鞋肯能都会有一个疑问,Java不是有虚拟机了么,内存会自动化管理,我们就不必要手动的释放资源了,反正系统会给我们完成.其实Java中没有指针的概念,但是指针的使用方式依然存在,一味的依赖系统 ...
- jquery选中checkbox多选项并添加到文本框中
<script> function check(){ var dd = ""; if($("input[type='checkbox'][name='moke ...
- C#入门经典-第15章Windows 编程
在使用Windows窗体时,就是使用System.Windows.Forms名称空间. .NET中的大多数控件都派生于System.Windows.Forms.Control类.
- angularJS 系列(六)---$emit(), $on(), $broadcast()的使用
下面以一个例子来讲述 angular 中的event system,有$emit(), $on(), $broadcast().效果图如下 下面的代码中,用到了 controller AS 的语法,具 ...
- applicationContext.xml文件配置模板
<?xml version="1.0" encoding="gb2312"?><!-- Spring配置文件的DTD定义-->< ...
- tabBarItem动画
1.有时,我们需要为tabBarItem设置一些动画.在网上查了半天,没有结果.自己写了一个简单的动画 代码如下: - (void)tabBarController:(UITabBarControll ...
- android数据库sqlite增加删改查
http://hi-beijing.iteye.com/blog/1322040 http://www.cnblogs.com/wenjiang/archive/2013/05/28/3100860. ...
- mark一篇文章--用nodejs搭建一个本地反向代理环境
调试线上代码的时候,我们经常遇到的一个问题就是 本地一套环境,线上一套环境,本地没有的文件用线上的这种需求.我简单来说下使用nodejs如何做到. 先说下不用nodejs我们怎么做,工具比如fiddl ...
- Fox And Two Dots
B - Fox And Two Dots Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I6 ...
- SpringMVC+Spring+hibernate整合及分页
1. 新建web project 2. 引入jar, 3. 创建包com.tgb.web.controller, 下面创建包(dao,entity,service, config,spring,hib ...