Web自动化框架LazyUI使用手册(5)--模板工程:LazyUI-template详解
概述:
LazyUI-template:
提供Maven管理的,基于Spring+Testng的,包含常用浏览器driver的,方便连接各种数据库的java模板工程,并提供以百度搜索为例的第一个测试用例。
获取地址:https://github.com/lazytest/LazyTest-UI-Template/archive/master.zip
愿景:
1. 降低基于selenium的web测试工程搭建门槛;
2. 引入必要和好用的jar包依赖;
3. 提供良好的代码分层、配置文件提取、友好的日志,增加可读性和可维护性;
4. 提供基础测试父类和测试demo,快速上手;
工程详解:
如上图所示,大部分看图就很清晰了,此处再提一下分层:
简单分为三层:
1. bean:用于存放,且只存放web端页面控件,如果某个控件(xpath或frame等)有变动,只需修改此层代码即可;
2. page:以一个页面,或页面的局部为一个class,用于将bean层的控件组装成具体的操作,如输入用户名密码,并点击登录按钮;
3. test:用于存放具体的测试用例,构造数据,输入数据,组合page层的操作完成页面操作,再完成具体的结果校验和数据清理;
分层的目的还是为了提高代码的可读性、可维护性。
重要配置文件prop.properties说明
BrowserCoreType
上图说得很明确:
# 1 => FireFox
# 2 => Chrome
# 3 => IE
# 4 => Safari
目前只支持这四种浏览器,且浏览器需要安装在默认路径,暂时还不支持配置,后续可升级。
Drivers' path
这个已经配置好了,FireFox和Safari不需要driver,最新版本的selenium支持最新版本的Firefox,如果启动不起来,说明版本有问题。
本工程模板中自带的driver支持 chrome 46.0以上,IE8以上。
Timeout和StepInterval
Timeout:本框架获取控件时加入了重试机制,当然不是无限制重试下去,此为重试超时时间的配置(单位:millisecond)
StepInterval:每次重试间隔的时间(单位:millisecond)
Pause
因为程序运行太快,我们想观察程序,眼睛可能看不过来,所以有此配置
此配置为每一步操作前,均暂停的时间(单位:millisecond)
测试基类BaseTestCase解析
继承AbstractTestNGSpringContextTests,用springtest来管理测试用例。
默认spring配置文件为:classpath*:/spring/spring-test.xml
class内保证浏览器为单例,每次运行case前,判断浏览器是否已经被打开
Suite运行结束后,保证浏览器被关闭
提供logger,方便地输出日志
TODO
可将浏览器安装路径配置化
可支持浏览器启动参数配置,如支持代理等
。。。
Web自动化框架LazyUI使用手册(5)--模板工程:LazyUI-template详解的更多相关文章
- Web自动化框架LazyUI使用手册(2)--先跑起来再说(第一个测试用例-百度搜索)
作者:cryanimal QQ:164166060 上篇文章中,简要介绍了LazyUI框架,本文便来演示,如何从无到有快速搭建基于lazyUI的工程,并成功运行第一个测试用例. 本文以百度搜索为例,选 ...
- Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)
概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...
- APP自动化框架LazyAndroid使用手册(2)--元素自动抓取
作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...
- web自动化框架如何设计
web自动化框架如何设计po模式总结: 1. 页面对象模型:当页面特别多的时候,代码更好的维护 2. Po是pageObject设计模式,用来管理和维护一组web元素的对象库 3. 每一个page c ...
- 基于Selenium的web自动化框架
转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...
- 基于Selenium的Web自动化框架增强篇
在写完上一篇“基于Selenium的Web自动化框架”(http://www.cnblogs.com/AlwinXu/p/5836709.html)之后一直没有时间重新审视该框架,正好趁着给同事分享的 ...
- 【转】基于Selenium的web自动化框架(python)
1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...
- web缓存服务器varnish-4.1.6的部署及配置详解
web缓存服务器varnish-4.1.6的部署及配置详解 1.安装varnish4.1.6安装依赖 yum install -y autoconf automake jemalloc-devel l ...
- laravel 框架配置404等异常页面的方法详解(代码示例)
本篇文章给大家带来的内容是关于laravel 框架配置404等异常页面的方法详解(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在Laravel中所有的异常都由Handl ...
- 《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
1.简介 为了方便查看和归档:(1)不同包的日志可能要放到不同的文件中,如service层和dao层的日志:(2)不同日志级别:调试.信息.警告和错误等也要分文件输出.所以宏哥今天主要介绍和分享的是: ...
随机推荐
- JavaScript初探之字符串与数组
一直在研究JS以至于忘记跟新博客... 字符串:// str.charAt(x); //获取下标为x的字符// str.indexOf(",",1); //获取",&qu ...
- c#代码输入图片
Image bgimage = Image.FromFile(flieUrl + bgImg); if (bgimage != null) { Bitmap bmp1 = new Bitmap(bgi ...
- (hdu-4280)Island Transport~测试网络流模板速度~要加挂才能过啊
Problem Description In the vast waters far far away, there are many islands. People are living on th ...
- [C#]Google Chrome 书签导出并生成 MHTML 文件
目的 因为某些原因需要将存放在 Google Chrome 内的书签导出到本地,所幸 Google Chrome 提供了导出书签的功能. 分析 首先在 Google Chrome 浏览器当中输入 ch ...
- [LeetCode] Smallest Good Base 最小的好基数
For an integer n, we call k>=2 a good base of n, if all digits of n base k are 1. Now given a str ...
- [SDOI2006]仓库管理员的烦恼
题目描述 仓库管理员M最近一直很烦恼,因为他的上司给了他一个艰难的任务:让他尽快想出一种合理的方案,把公司的仓库整理好. 已知公司共有n个仓库和n种货物,由于公司进货时没能很好的归好类,使得大部分的仓 ...
- USACO 2017 February Gold
那天打cf前无聊练手 T1.Why Did the Cow Cross the Road 题目大意:N*N的矩阵,从左上角走到右下角,走一步消耗T,每走3步消耗当前所在位置上的权值,求最小消耗 思路: ...
- [LSGDOJ 1299]搭配买卖
题目描述 joe觉得云朵很美,决定去山上的商店买一些云朵.商店里有n多云,云朵被编号为1,2,……,n,并且每朵云都有一个价值.但商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这多云有搭配的 ...
- [SPOJ 287] Smart Network Administrator 二分答案+网络流
The citizens of a small village are tired of being the only inhabitants around without a connection ...
- Linux学习之Centos(三)------系统文件目录及含义详解
Linux学习之Centos 之三------文件目录及含义 在了解了每个文件的相关种类与属性,以及了解了如何更改文件属性/权限的相关信息后,再来要了解的就是, 为什么每套Linux distribu ...