最近用selenium在做网站自动化,按照google用selenium的经验做了一些尝试。
主要分成了4层,这样做主要是为了对于代码重用性的考虑。
第一层是UIobject,主要是对于页面上的UI做了一些封装
public class SelectUIObject extends UIObjiect {
private SeleniumHelper helper = new SeleniumHelper();
public String read(String locator){
return helper.getSelectOptions( locator);
};
public void write(String locator, String value) {
String selectValue ="label="+value;
helper.select(locator, selectValue);
}
}
其中的SeleniumHelper是一些基本selenium的客户端的封装,如;
public String getSelectOptions(String locator) {
String[] values = SeleniumTestCase.browser.getSelectOptions(locator);
String value = "";
for (int i = 0; i < values.length; i++) {
value = value + values[i];
value = value + ',';
}
return value;
}
}
第二层页面层,主要是页面的ui的封装 。如
/**
* 搜索价格
* @param price 单位下拉
* @param maxPrice 最高价格
* @param minPrice 最低价格
*/
public void searchPrice(String price,String maxPrice,String minPrice) {
selectUI.write("o.121", price);
textUI.write("o.price", minPrice);
textUI.write("document.forms[1].elements[4]", maxPrice);
LinkUI.write("document.forms[1].elements[5]");
waitForPageToLoad("30000");
}
这里有些问题,主要页面上的元素的定位,还是在代码中写死,对于页面的改版还是需要修改源代码
第三层测试层,测试的断言验证的
@Test
public void testIndex() throws FileNotFoundException, InterruptedException {
int count = 15;
PostClient client = new PostClient();
init_date();
client.login("this92", "123456");
client.openUrl(TestUtil.Site,TestUtil.PostURL);
client.waitForPageToLoad("30000");
postView(list,UIObjects,count);
}
public void init_date() throws FileNotFoundException{
UIObjects = Yaml.loadType(new FileInputStream(new File( +"post_view_UI.yml")), HashMap.class);
list = Yaml.loadType(new FileInputStream(new File(+"post_view_value.yml")), HashMap.class);
}
这些用yml存放一些数据。
还有最后一层,是对于测试数据的封装,比如email的生成,还有一些公用方法的封装。
目前从效果,比以前把所有的逻辑写在testcase中提高了一定的重用性,对于页面的改版只要需要修改部分页面层,测试逻辑那块基本上不需要修改。
google的视频资源 http://www.youtube.com/watch?v=hWQdCdH77NA
分享到:
相关推荐
从 2013 年开始用 Python 和 Selenium 进行自动化测试的实践,其间的过程颇为艰辛,除了官方文档,相关 的资料并不算太多,尤其是中文资料;相比较而言 Java 和 Selenium 网上的资料要更多一些,这其中主要的原因 是...
《Selenium2 Python 自动化测试实践》是一本深度探讨使用Python编程语言与Selenium2进行Web应用程序自动化测试的专业书籍。Selenium是一个广泛使用的开源测试框架,它允许开发者编写可运行在多种浏览器和操作系统上...
在这个过程中,作者得到了同行的反馈和指导,不断改进和完善他的自动化测试实践。 总结来说,《Selenium2 Python自动化测试实战》是一本实践导向的书籍,它不仅提供了Selenium WebDriver的使用教程,还传递了如何...
1. **Selenium介绍**:讲解Selenium的历史、架构和其在Web自动化测试中的地位,以及为什么选择Python作为Selenium的编程语言。 2. **环境配置**:指导读者如何安装Python环境,以及安装和配置Selenium库及其依赖,...
selenium + python的自动化测试书籍,高清版,适合软件自动化测试人员,由浅入深,代码实例丰富,对自学者很有帮助
本书旨在帮助读者掌握自动化测试的基本原理、方法和技术,特别是聚焦于Selenium 2(也称为Selenium 2.0或WebDriver)在Python环境中的应用。 Selenium是一个开源的自动化测试框架,支持多种编程语言,如Python、...
这是关于selenium基于python的自动化测试的内容,很适合新手入门,作者由浅入深的讲解了如何使用selenium做自动化测试,包括环境的搭建等资源
这不是一本编程语言和技巧的书籍,虽然书中涉及了很多python 知识,以及其他的技术...它更多的是充当“布道者”的角色,通过大量的实例,传达一种思维模式:如何利用python+selenium 组建起生产应用的web 自动化测试。
最后,可能还会分享一些最佳实践和技巧,帮助读者在实际工作中更好地应用Selenium进行自动化测试。 总的来说,《Selenium2 Java自动化测试实战》是一本全面的教程,旨在帮助读者掌握Selenium 2与Java的结合,提升...
1. **Selenium介绍**:讲解Selenium的基本概念、历史、特点以及在自动化测试领域的地位。包括WebDriver与Selenium RC的比较,以及为何选择Python作为Selenium的绑定语言。 2. **安装与环境配置**:详述如何在不同...
在IT行业中,自动化测试是提升效率、确保软件质量的关键手段之一。Python作为一门简洁易读的语言,被广泛用于编写自动化测试脚本。Selenium则是一款强大的网页自动化测试工具,能够模拟用户行为,对Web应用程序进行...
在IT行业中,Python被广泛应用于Web开发、数据分析、机器学习等多个领域,而在软件测试领域,Python结合Selenium2库更是自动化测试的重要工具。 Selenium是一个开源的Web应用程序自动化测试框架,它允许开发者模拟...
**Selenium 自动化测试详解** Selenium 是一个强大的开源自动化测试框架,广泛应用于Web应用程序的测试。它允许测试人员编写可运行在多种浏览器和操作系统上的脚本,从而实现跨平台、跨浏览器的自动化测试。...
- 书籍与教程:《Selenium自动化测试实战》等书籍提供深入指导。 通过学习和实践这些知识点,自动化测试人员和爬虫工程师可以利用Selenium2和Python有效地实现Web应用的自动化测试,提高工作效率,并保证软件质量...
《Selenium2 Python自动化测试实战》是一本深入探讨如何利用Python和Selenium2进行Web自动化测试...通过深入学习和实践,你将能够运用Python和Selenium2构建高效、稳定的自动化测试框架,提高软件项目的质量和可靠性。
在压缩包`Selenium2-master`中,可能包含了书中的各个代码示例,这些示例覆盖了从基础操作到高级特性的方方面面,可以帮助读者更好地理解和应用Selenium2进行Python自动化测试。通过学习和实践这些示例,你将能够...
通过阅读提供的PDF文档,你将有机会深入学习以上各个知识点,并通过实际案例提升你的Selenium自动化测试能力,无论你是Java开发者还是Python爱好者,都能从中受益。记得实际操作和练习,因为实践是检验学习效果的...