最近看了一下selenium如果要把这个用于自动化测试,需要进行整理,形成一个框架,我也对Google搜索这样简单的功能做了一些尝试,形成了一个简单的框架,简单的说应该有四层:
第一层应该是UIObject这个对象层,主要是用来封装对象的操作方法,例如:
public class TextFieldUIObject extends UIObject {
/**
* 构造函数用于构造textfield对象
* @param locator 描述信息
*/
public TextFieldUIObject(String locator)
{
super(locator);
}
/**
* 向textfield输入值
* @param content 输入的内容
* @throws SeleniumHelperNotExistException
*/
public void type(String content) throws SeleniumHelperNotExistException
{
if(UIObjectHelper.SeleniumHelper==null) throw new SeleniumHelperNotExistException();
UIObjectHelper.SeleniumHelper.type(this.locator,content);
}
}
该代码,封装了textfield的控件,加入了方法type用于输入
第二层主要是构件层,主要用来描述页面上的控件,这里我用了最简单的静态变量的方法,还可以使用yml,xml,json甚至某种格式的文本文件进行描述,之后根据文件生成,这样可能会更加方面修改。
代码如下:
public class GoogleGuis {
public static PageUIObject SearchPage = new PageUIObject("/");
public static TextFieldUIObject SearchInput = new TextFieldUIObject("q");
public static ButtonUIObject SearchButton = new ButtonUIObject("btnG");
}
第三层应该叫组件层,可以页面切分成大组件,然后对组件进行相关的操作,这里把Google的搜索作为一个组件,代码如下:
/**
* 组件类
* @author renzq
*
*/
public class GooglePageSearchComponent {
/**
* 进行查询操作
* @param content 查询的内容
* @throws SeleniumHelperNotExistException
*/
public void search(String content) throws SeleniumHelperNotExistException{
GoogleGuis.SearchPage.PageOpen();
GoogleGuis.SearchInput.type(content);
GoogleGuis.SearchButton.click();
GoogleGuis.SearchPage.WaitForPageReady("3000");
}
/**
* 校验查询结果是否含有内容
* @param content 内容
* @return 根据是否含有,返回判断的值
* @throws SeleniumHelperNotExistException
*/
public boolean checkText(String content) throws SeleniumHelperNotExistException{
return GoogleGuis.SearchPage.PageTextContain(content);
}
}
第四层,应该就是测试断言层,这个部分用来执行testcase
public class GoogleSearch extends SeleneseTestCase{
public void setUp() throws Exception {
super.setUp("http://www.google.com/", "*iexplore");
com.asiainfo.selenium.gui.UIObjectHelper.SeleniumHelper=selenium;
}
public void testNew() throws Exception {
GooglePageSearchComponent gpsc=new GooglePageSearchComponent();
gpsc.search("asiainfo");
assertTrue(gpsc.checkText("asiainfo"));
}
}
如果使用testsuite就应该有第五层,这层主要用来组织testcase
这样的划分,也是我的一点拙见,我觉得还是后提高的空间的。相关的源代码,我也上传上来,有兴趣的可以在附件下载。
分享到:
相关推荐
使用Java+Maven+Selenium+TestNG+Jedis+Jenkins搭建的WebUI自动化测试框架,资源的大体介绍如下链接http://note.youdao.com/noteshare?id=dc564343fd126f497074f6d7560c9f5e&sub=387EB3B1BAC945CEA71A5BDBC6484473
web自动化测试框架及实践,应用python+selenium+pytest集成了web页面的功能巡检、写测试报告以及邮件发送测试结果等功能。
本框架只是对 selenium( webdriver ) 原生方法进行了简单的封装,精简为大约 30 个方法,这些方法基本能够胜任于我们的web自动化测试。基于 unittest 单元测试框架,所以测试文件与测试方法遵循unittest开发。自动...
本项目是一个基于Selenium的Web自动测试框架,通过该框架可以简化测试人员的学习难度,只要编写少量的Java代码即可,大多数的工作都是编写页面元素的描述文件以及对应的数据源。
基于Python3.3+Selenium3.0框架实战Web自动化测试实战视频教程。本课程由9个章节组成,包括有Python3.3及Selenium3.0测试环境搭建、Python及Selenium基础知识宣讲、Web页面元素定位及操作、动化测试框架讲解、自动化...
CRM系统项目实战(源码) ...CRM系统的项目奖实战,从web自动化到涉及到的selenium知识点,再到这个项目引用的unittest自动化测试框架。最后生成报告并发送,实现了完整的流程。很清晰的介绍了web自动化测试的框架
Selenium+TestNG 框架的WEB自动化源码 Selenium+TestNG 框架的WEB自动化源码
它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。 Selenium 2,又名 WebDriver,它的主要新功能是集成...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
基于Selenium的WebUI自动化测试脚本 unittest框架+PO开发模式 config:配置相关; data:excel管理测试数据; imgForTest:保存测试数中的截图; log:执行日志; report:生成的HTML测试报告 src\...
基于python+pytest+Selenium+allure,完成web自动化测试框架的搭建,并可以在jenkins上持续集成,应用于课堂派web自动化测试项目中,取得良好效果 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发...
使用Selenium作为Web项目底层服务驱动框架 • 使用Maven作为项目类型,方便管理架包 • 使用TestNG作为项目运行框架,方便执行测试用例,生成测试报告 • 使用JDBC作为数据库管理工具,方便连接数据库,执行SQL • ...
基于Python3.3+Selenium3.0框架实战Web自动化测试实战视频教程。本课程由9个章节组成,包括有Python3.3及Selenium3.0测试环境搭建、Python及Selenium基础知识宣讲、Web页面元素定位及操作、动化测试框架讲解、自动化...
基于Python3.3+Selenium3.0框架实战Web自动化测试实战(百度网站实测项目) 给大家分享一套课程,希望对大家有帮助
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
本文从初学者的角度对自动化测试工具 Selenium 2(即 WebDriver)进行全面阐述,重点 介绍在非测试框架下使用 Selenium 进行自动化测试,因为只有掌握 Selenium 的自动化测试 原理,以后在各种测试框架下才能灵活...
萨维SAWI-Selenium自动化Web界面框架SAWI是用Java和Selenium WebDriver开发的自动化框架。 它的结构由目录和代码的骨架组成,任何程序员都可以将其用作基础或最终项目,以加快自动化项目的组装速度,并为所有自动化...
本文从初学者的角度对自动化测试工具 Selenium 2(即 WebDriver)进行全面阐述,重点 介绍在非测试框架下使用 Selenium 进行自动化测试,因为只有掌握 Selenium 的自动化测试 原理,以后在各种测试框架下才能灵活...
该项目是java编写的使用selenium依赖包的WebUI测试项目 Java +Selenium+ Testng + Maven + PO +多线程+ slf4j + log4j +截图+ rangereports + redis +多浏览器+ h5 +优先级设置+ jenkins + grid平台 框架功能 PO思想...