概述:

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详解的更多相关文章

  1. Web自动化框架LazyUI使用手册(2)--先跑起来再说(第一个测试用例-百度搜索)

    作者:cryanimal QQ:164166060 上篇文章中,简要介绍了LazyUI框架,本文便来演示,如何从无到有快速搭建基于lazyUI的工程,并成功运行第一个测试用例. 本文以百度搜索为例,选 ...

  2. Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)

    概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...

  3. APP自动化框架LazyAndroid使用手册(2)--元素自动抓取

    作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...

  4. web自动化框架如何设计

    web自动化框架如何设计po模式总结: 1. 页面对象模型:当页面特别多的时候,代码更好的维护 2. Po是pageObject设计模式,用来管理和维护一组web元素的对象库 3. 每一个page c ...

  5. 基于Selenium的web自动化框架

    转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...

  6. 基于Selenium的Web自动化框架增强篇

    在写完上一篇“基于Selenium的Web自动化框架”(http://www.cnblogs.com/AlwinXu/p/5836709.html)之后一直没有时间重新审视该框架,正好趁着给同事分享的 ...

  7. 【转】基于Selenium的web自动化框架(python)

    1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...

  8. web缓存服务器varnish-4.1.6的部署及配置详解

    web缓存服务器varnish-4.1.6的部署及配置详解 1.安装varnish4.1.6安装依赖 yum install -y autoconf automake jemalloc-devel l ...

  9. laravel 框架配置404等异常页面的方法详解(代码示例)

    本篇文章给大家带来的内容是关于laravel 框架配置404等异常页面的方法详解(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在Laravel中所有的异常都由Handl ...

  10. 《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)

    1.简介 为了方便查看和归档:(1)不同包的日志可能要放到不同的文件中,如service层和dao层的日志:(2)不同日志级别:调试.信息.警告和错误等也要分文件输出.所以宏哥今天主要介绍和分享的是: ...

随机推荐

  1. web前端HTML基础

    一.HTML介绍 HTML全称是(Hypertext Markup Language, HTML)又称为超级文本标记语言,它主要his一种用于创建网页的标记语言,在本质上是浏览器可以识别的规则,我们按 ...

  2. selenium chrome浏览器与chrome.driver的对应关系

    看到网上基本没有最新的chromedriver与chrome的对应关系表,便兴起整理了一份如下,希望对大家有用: chromedriver版本 支持的Chrome版本 v2.34 v61-63 v2. ...

  3. codevs 2621 土地侵蚀

    提交地址:http://codevs.cn/problem/2621/ 2621 土地侵蚀  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold     题目描述 De ...

  4. [Luogu 3919]【模板】可持久化数组(可持久化线段树/平衡树)

    Description 如题,你需要维护这样的一个长度为 N 的数组,支持如下几种操作 在某个历史版本上修改某一个位置上的值 访问某个历史版本上的某一位置的值 此外,每进行一次操作(对于操作2,即为生 ...

  5. [BeiJing2011]元素

    Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔 法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力取决于使用的矿石. 一般地,矿石越多则法力 ...

  6. 51Nod 1530 稳定方块

    瓦西亚和皮台亚摆放了m个方块.方块被编号为0到m-1(每个号码出现恰好一次).现在建立一个座标系OX表示地面,OY的方向是竖直向上的.每一方块的左下角有一个座标而且是整点座标. 摆放好的方块一定要是稳 ...

  7. bzoj3224Tyvj 1728 普通平衡树 treap

    3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 17706  Solved: 7764[Submit][St ...

  8. 一起来Fit TDMA over WiFi(2)

    3 收发流程分析与改进 收发流程分析涉及到具体代码,属于SDK驱动内容,不能完全公开,仅供参考,本系列文档中涉及到具体功能或代码时,请在自己的驱动代码中查找. QCA驱动从9.5开始,将原来的htc的 ...

  9. widows下的进程与服务

    进程: 当程序卡死的时候,我们可以直接通过任务管理器来关闭进程. 服务: 在这个界面,我们可以选择启动或者关闭相关服务,还可以选择服务是否自动启动. 以关闭MySQL自启动服务为例:https://j ...

  10. c++ 变量的存储类别

    c++的存储类别 首先我们得知道c++的变量存储方式:静态存储和动态存储两种,全局变量使用的是静态存储,函数的形参和局部变量是使用的动态存储. 当然在有的教程中又分为自动存储,静态存储,动态存储.相信 ...