设计框架原则:

数据分离,业务层和逻辑层不要混杂在一起.

设计图:

框架结构初始化:

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)框架设计 九的更多相关文章

  1. 读懂框架设计的灵魂—Java反射机制

    尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...

  2. 《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)

    1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动 ...

  3. java简单框架设计

    设计框架包可以作为一个工具给大家用,需要有完全不同设计思路给出来,不同于我们去做一个web服务.网站. 或者一个业务微服务,需要从原来使用视角转换成一个构建者视角. 框架或者工具,更多是框架来管理或者 ...

  4. Fork/Join 框架-设计与实现(翻译自论文《A Java Fork/Join Framework》原作者 Doug Lea)

    作者简介 Dong Lea任职于纽约州立大学奥斯威戈分校(State University of New York at Oswego),他发布了第一个广泛使用的java collections框架实 ...

  5. Java+Selenium3自动化测试框架设计系列--href="javascript:void(0)"如何获得元素定位

    经过前面两篇文章的铺 垫,我们这篇介绍,webdriver如何处理,一个浏览器上多个窗口之间切换的问题.我们先脑补这样一个测试场景,你在页面A点击一个连接,会在新的 tab窗口打开页面B,这个时候,你 ...

  6. 组件化框架设计之Java SPI机制(三)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 本篇文章将从深入理解java SPI机制来介绍组件化框架设计: ...

  7. java课程设计(计算器)

    JAVA课程 设 计 报 告 1206401-18   瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...

  8. java课程设计团队博客《基于学院的搜索引擎》

    JAVA课程设计 基于学院网站的搜索引擎 对学院网站用爬虫进行抓取.建索(需要中文分词).排序(可选).搜索.数据摘要高亮.分页显示.Web界面. 一.团队介绍 学号 班级 姓名 简介 2016211 ...

  9. 转 分享我在阿里工作十年接触过Java框架设计模式

    转 原文: 分享我在阿里工作十年接触过Java框架设计模式 一.前言 说起来设计模式,大家应该都耳熟能详,设计模式代表了软件设计的最佳实践,是经过不断总结提炼出来的代码设计经验的分类总结,这些模式或者 ...

随机推荐

  1. Android内存性能优化(内部资料总结) 转

    刚入门的童鞋肯能都会有一个疑问,Java不是有虚拟机了么,内存会自动化管理,我们就不必要手动的释放资源了,反正系统会给我们完成.其实Java中没有指针的概念,但是指针的使用方式依然存在,一味的依赖系统 ...

  2. jquery选中checkbox多选项并添加到文本框中

    <script> function check(){ var dd = ""; if($("input[type='checkbox'][name='moke ...

  3. C#入门经典-第15章Windows 编程

    在使用Windows窗体时,就是使用System.Windows.Forms名称空间. .NET中的大多数控件都派生于System.Windows.Forms.Control类.

  4. angularJS 系列(六)---$emit(), $on(), $broadcast()的使用

    下面以一个例子来讲述 angular 中的event system,有$emit(), $on(), $broadcast().效果图如下 下面的代码中,用到了 controller AS 的语法,具 ...

  5. applicationContext.xml文件配置模板

    <?xml version="1.0" encoding="gb2312"?><!--  Spring配置文件的DTD定义-->< ...

  6. tabBarItem动画

    1.有时,我们需要为tabBarItem设置一些动画.在网上查了半天,没有结果.自己写了一个简单的动画 代码如下: - (void)tabBarController:(UITabBarControll ...

  7. android数据库sqlite增加删改查

    http://hi-beijing.iteye.com/blog/1322040 http://www.cnblogs.com/wenjiang/archive/2013/05/28/3100860. ...

  8. mark一篇文章--用nodejs搭建一个本地反向代理环境

    调试线上代码的时候,我们经常遇到的一个问题就是 本地一套环境,线上一套环境,本地没有的文件用线上的这种需求.我简单来说下使用nodejs如何做到. 先说下不用nodejs我们怎么做,工具比如fiddl ...

  9. Fox And Two Dots

    B - Fox And Two Dots Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I6 ...

  10. SpringMVC+Spring+hibernate整合及分页

    1. 新建web project 2. 引入jar, 3. 创建包com.tgb.web.controller, 下面创建包(dao,entity,service, config,spring,hib ...