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框架设计模式 一.前言 说起来设计模式,大家应该都耳熟能详,设计模式代表了软件设计的最佳实践,是经过不断总结提炼出来的代码设计经验的分类总结,这些模式或者 ...
随机推荐
- 【学生成绩管理系统】 大二c语言作业
几年前写的了,只能在命令行窗口运行,虽然比较挫,还是有一定参考价值... #include <cstdio> #include <conio.h> #include <i ...
- jQuery常用及基础知识总结(二)
JQuery Effects 方法说明 show( ) 显示隐藏的匹配元素.show( speed, [callback] ) 以优雅的动画显示所有匹配的元素,并在显示完成后可选地触发一个回调函数.h ...
- android-------手写签名系统的设计与实现之实现画笔设置
引自:http://www.xuebuyuan.com/1754358.html 既然我们实现了画布和画笔,也实现了手写,为了提高可用性,我们增加了对画笔风格的设置功能,这样就可以根据自己的需要选择画 ...
- android脚步--Relativelayout设置
引自http://blog.csdn.net/lamp_zy/article/details/8035161 http://my.oschina.net/honeyming/blog/130761 以 ...
- Service Activity三种交互方式
Service Activity三种交互方式 2012-09-09 22:52 4013人阅读 评论(2) 收藏 举报 serviceandroidimportclassthreadjava ...
- 原创:LoadTest系列之参数时,设置提取参数的方式
在对脚本进行参数化后,可以通过设置Data source最底层节点的属性Access Method来控制提取数据的方式. 1. 选中Data source的tables下的节点 2. 打开该节点的Pr ...
- 各种命令,以及FAQ..持续更新.....
Linux 篇: CentOs 7 修改主机名 hostnamectl --static set-hostname <host-name> 统计最多的10条记录 awk '{print $ ...
- Struts2--DomainModel接收参数---使用广泛!!!
1. JSP文件调用格式: <a href="user/user!add?user.name=a&user.age=8">添加用户</a> 2. s ...
- GetEnvironmentVariable 获取常用系统变量(转)
源:GetEnvironmentVariable 获取常用系统变量 //譬如 WINDIR 表示系统目录系统变量, 以这样获: var s:string; begin s:=GetEnvironmen ...
- BNU OJ 50997 BQG's Programming Contest
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using ...