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)不同日志级别:调试.信息.警告和错误等也要分文件输出.所以宏哥今天主要介绍和分享的是: ...
随机推荐
- [LeetCode] Circular Array Loop 环形数组循环
You are given an array of positive and negative integers. If a number n at an index is positive, the ...
- Python系列 - optparse
我们知道sys.argv[] 可以获得命令行参数 同样,optparse 对此提供了更为强大的功能. import optparse class ArgvHandler(object): def __ ...
- 初学servlet之@WebServlet传参
package app01a;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletCon ...
- [HNOI2004]敲砖块
题目描述 在一个凹槽中放置了 n 层砖块.最上面的一层有n 块砖,从上到下每层依次减少一块砖.每块砖 都有一个分值,敲掉这块砖就能得到相应的分值,如下图所示. 14 15 4 3 23 33 33 7 ...
- 为了异常安全(swap,share_ptr)——Effecive C++
互斥锁: 假设我们要在多线程中实现背景图片的控制: class PrettyMenu{ public: -- void changeBackground(std::istream& imgSr ...
- 51nod 1770 数数字
1770 数数字 基准时间限制:1 秒 空间限制:262144 KB 分值: 20 难度:3级算法题 收藏 关注 统计一下 aaa ⋯ aaan个a × b 的结果里面 ...
- hdu 5015(矩阵快速幂z )
a[i][j] = a[i-1][j] + a[i][j-1] m.特别大,可以计算出第一列,找出规律,构建一个特殊的矩阵,运用快速幂 设矩阵x: 1 0 0 0 ... |10 1 1 1 0 0 ...
- [POJ]1279: Art Gallery
题目大意:有一个N边形展馆,问展馆内有多少地方可以看到所有墙壁.(N<=1500) 思路:模板题,半平面交求出多边形的核后计算核的面积. #include<cstdio> #incl ...
- [APIO2010]
A.特别行动队 n<=1000000 看了数据范围和题目感觉就像是斜率优化,然后瞎推了一波式子,没想到A了. sij表示i+1到j的权值和. j比k优秀 $$fj+a*sij^{2}+b*si ...
- Flexible DEMO 实现手淘H5页面的终端适配
<!DOCTYPE html> <html> <head> <title>淘宝flexiblejs</title> <meta cha ...