最近看了一下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
这样的划分,也是我的一点拙见,我觉得还是后提高的空间的。相关的源代码,我也上传上来,有兴趣的可以在附件下载。
分享到:
相关推荐
使用Selenium进行web测试,首先需要了解以下关键概念: 1. WebDriver:WebDriver是一个API,定义了如何与各种浏览器进行通信。它提供了一种更直接、更简洁的方式来控制浏览器,相比早期的Remote Control接口,...
使用Java+Maven+Selenium+TestNG+Jedis+Jenkins搭建的WebUI自动化测试框架,资源的大体介绍如下链接http://note.youdao.com/noteshare?id=dc564343fd126f497074f6d7560c9f5e&sub=387EB3B1BAC945CEA71A5BDBC6484473
本文将深入探讨如何使用Python结合Selenium库构建一个WebUI自动化测试框架。首先,我们要了解Selenium的核心功能:模拟用户在浏览器上的操作,如点击、输入、导航等。 Selenium是一个开源的Web自动化测试工具,它...
本文将深入探讨如何使用Python结合Selenium和Pytest构建一个强大的Web自动化测试框架,实现功能巡检、生成测试报告以及通过邮件发送测试结果。 首先,Python是一种广泛应用于测试领域的编程语言,其简洁明了的语法...
总的来说,这个"Selenium Web自动化测试框架"项目集成了Selenium、unittest、ddt等技术,提供了全面的测试解决方案,包括PO模型、关键词驱动、数据驱动测试、日志监控和报告生成。这样的框架能够高效、可靠地验证Web...
Selenium 是一个强大的开源自动化测试框架,主要用于Web应用程序的测试。它允许开发人员编写可运行在多种浏览器和操作系统上的测试脚本,极大地提高了测试的覆盖率和效率。Selenium 支持多种编程语言,如Java、...
Selenium 是一个强大的开源Web测试框架,用于自动化浏览器操作。它的出现使得软件测试工程师和质量保证团队能够构建可跨多个浏览器和操作系统运行的自动化测试脚本。标题和描述中的信息表明,我们关注的是 Selenium ...
《Python测试驱动开发:使用Django、Selenium和JavaScript进行Web编程》这本书是关于现代Web应用开发的一个深度指南,特别关注于使用Python语言以及相关的工具和技术。书中详细介绍了如何运用测试驱动开发(TDD)的...
基于Python3.3+Selenium3.0框架实战Web自动化测试实战视频教程。本课程由9个章节组成,包括有Python3.3及Selenium3.0测试环境搭建、Python及Selenium基础知识宣讲、Web页面元素定位及操作、动化测试框架讲解、自动化...
该项目是一款基于Java开发的Selenium Web自动化测试框架,源码包含173个文件,涵盖37个类、33个Java源文件、22个HTML文件、22个XML配置文件、17个JAR包文件、8个属性文件、7个PNG图片文件、4个CSS、JavaScript和JS...
本框架只是对 selenium( webdriver ) 原生方法进行了简单的封装,精简为大约 30 个方法,这些方法基本能够胜任于我们的web自动化测试。基于 unittest 单元测试框架,所以测试文件与测试方法遵循unittest开发。自动...
本知识点详细介绍如何利用Selenium设计并实现一个Web自动化测试框架,以及在设计过程中考虑的关键要素和步骤。 首先,介绍Web自动化测试的概念。随着云计算和互联网技术的普及,Web应用程序变得越来越流行。它们...
基于python+pytest+Selenium+allure,完成web自动化测试框架的搭建,并可以在jenkins上持续集成,应用于课堂派web自动化测试项目中,取得良好效果 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发...
《Selenium2 Python自动化测试项目实战》不仅是一本技术书籍,更是一种思维方式的传递——如何通过Python+Selenium高效地实施Web自动化测试。本书不仅覆盖了基础知识和技术要点,还包含了丰富的实践经验和技巧分享,...
通过在`pom.xml`文件中配置依赖,Maven能够自动化构建测试项目,执行测试并生成测试报告。 **TestNG**: TestNG是另一个流行的测试框架,提供了比JUnit更高级的功能,如并发测试、参数化测试、测试套件和报告。...
《Python测试驱动开发:使用Django、Selenium和JavaScript进行Web编程(第2版)》是一本详尽探讨如何在Web开发中应用测试驱动开发(TDD)技术的专业书籍。这本书不仅涵盖了Python语言的基础,还深入讲解了Django框架...
SELENIUM是一个用于Web应用程序测试的工具,能够进行功能、回归、UI等自动化测试。由于其轻量级、易学易用、跨平台等特性,受到测试工程师的广泛青睐。SELENIUM测试自动化框架主要包含SELENIUM WebDriver和SELENIUM ...
自动化测试框架RobotFramework+Selenium2 自动化测试框架RobotFramework+Selenium2是结合RobotFramework框架和Selenium2Library实现自动化测试的解决方案。下面是该框架的详细介绍: 简介 Robot Framework是一个...