- 浏览: 948 次
文章分类
最新评论
Selenium自动化测试
安装配置:
安装java JDK1.6以上,配置环境变量.
安装maven,配置环境变量.
安装Tomcat服务器.
安装eclipse,安装testNg、Properties Editor插件
插件在help->Eclipse Marketplace->search->find里找
安装火狐浏览器,安装相应的Selenium IDE,Firebug和xpather
项目导入:测试项目,和自动化测试项目
自动化测试项目编写:
/trackerSelenium/src/main/java/com/sim/trackerSelenium/WebDriverInterface.java 提供webDriver 接口类
/trackerSelenium/src/main/java/com/sim/trackerSelenium/inf/BrowserDriver.java 创建浏览器驱动,WebDriverInterface的实现类
/trackerSelenium/src/main/java/com/sim/trackerSelenium/page/EntryTimeElment.java 寻找页面元素
/trackerSelenium/src/main/java/com/sim/trackerSelenium/utils/BrowserUtils.java 读取配置文件找驱动的
/trackerSelenium/src/main/java/com/sim/trackerSelenium/utils/ReadExcelUtils.java 读取excel的帮助类
/trackerSelenium/src/main/java/com/sim/trackerSelenium/utils/ScreenshotUtils.java 截图工具类
/trackerSelenium/src/main/java/com/sim/trackerSelenium/utils/WebDriverUtils.java 加载浏览器驱动
/trackerSelenium/src/main/resources/config/config.properties 修改浏览器驱
动
/trackerSelenium/src/main/resources/data/loginPage.xls 待读取的excel文件
/trackerSelenium/src/main/resources/driver/chromedriver.exe 浏览器驱动
/trackerSelenium/src/main/resources/log4j.properties log的配置文件
/trackerSelenium/src/test/java/com/sim/trackerSelenium/test/EntryTimeTest.java 自动化测试类
/trackerSelenium/src/test/java/com/sim/trackerSelenium/test/testNg_Time.xml 自动化测试配置文件
主要的三个文件
1. 程序入口文件testNg_***.xml, 自动化测试配置文件。位于com.sim.trackerSelenium.test下。复制后,改名为testNg_***.xml,修改参数配置、运行脚本。
2. 自动化测试类,位于com.sim.trackerSelenium.test下。复制后,改类名,改方法名,改写test***方法。
3. 寻找页面元素java类,com.sim.trackerSelenium.page目录下。复制后,重命名,定义自己需要的元素。
获取xpath
谷歌:在需要的元素上点击鼠标右键->审查元素->Elements->蓝色部分->鼠标右键->Copy XPath //*[@id="main_div"]/div[1]/div[2]/a/span/img,修改双引号为单引号粘贴到@FindBy(xpath = "/html/body/div[4]/div[4]/table/tbody/tr/td/span[6]")红色字体中。有id在谷歌copy出的路径前面要加“.”
火狐:在需要的元素上点击鼠标右键->View XPath->
将XPath复制粘贴到@FindBy(xpath = "/html/body/div[4]/div[4]/table/tbody/tr/td/span[6]")红色字体中,去掉火狐XPath中的“x:”
安装java JDK1.6以上,配置环境变量.
安装maven,配置环境变量.
安装Tomcat服务器.
安装eclipse,安装testNg、Properties Editor插件
插件在help->Eclipse Marketplace->search->find里找
安装火狐浏览器,安装相应的Selenium IDE,Firebug和xpather
项目导入:测试项目,和自动化测试项目
自动化测试项目编写:
/trackerSelenium/src/main/java/com/sim/trackerSelenium/WebDriverInterface.java 提供webDriver 接口类
/trackerSelenium/src/main/java/com/sim/trackerSelenium/inf/BrowserDriver.java 创建浏览器驱动,WebDriverInterface的实现类
/trackerSelenium/src/main/java/com/sim/trackerSelenium/page/EntryTimeElment.java 寻找页面元素
/trackerSelenium/src/main/java/com/sim/trackerSelenium/utils/BrowserUtils.java 读取配置文件找驱动的
/trackerSelenium/src/main/java/com/sim/trackerSelenium/utils/ReadExcelUtils.java 读取excel的帮助类
/trackerSelenium/src/main/java/com/sim/trackerSelenium/utils/ScreenshotUtils.java 截图工具类
/trackerSelenium/src/main/java/com/sim/trackerSelenium/utils/WebDriverUtils.java 加载浏览器驱动
/trackerSelenium/src/main/resources/config/config.properties 修改浏览器驱
动
/trackerSelenium/src/main/resources/data/loginPage.xls 待读取的excel文件
/trackerSelenium/src/main/resources/driver/chromedriver.exe 浏览器驱动
/trackerSelenium/src/main/resources/log4j.properties log的配置文件
/trackerSelenium/src/test/java/com/sim/trackerSelenium/test/EntryTimeTest.java 自动化测试类
/trackerSelenium/src/test/java/com/sim/trackerSelenium/test/testNg_Time.xml 自动化测试配置文件
主要的三个文件
1. 程序入口文件testNg_***.xml, 自动化测试配置文件。位于com.sim.trackerSelenium.test下。复制后,改名为testNg_***.xml,修改参数配置、运行脚本。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="false" > <listeners> <listener class-name="org.uncommons.reportng.HTMLReporter" /> <listener class-name="org.uncommons.reportng.JUnitXMLReporter" /> </listeners> <!-- 参数配置 --> <!-- url 对应java文件的@Parameters(value = { "url" }) --> <parameter name="url" value="http://localhost:8080/deft/login" /> <!-- url 对应java文件的@Parameters(value = { "userName", "password" })--> <parameter name="userName" value="admin" /> <parameter name="password" value="123456" /> <!-- 运行脚本 --> <test name="Test"> <classes> <对应要执行的java代码 -> <class name="com.sim.trackerSelenium.test.EntryTimeTest"/> </classes> </test> </suite>
2. 自动化测试类,位于com.sim.trackerSelenium.test下。复制后,改类名,改方法名,改写test***方法。
/* * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sim.trackerSelenium.test; import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriverBackedSelenium; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import com.sim.trackerSelenium.page.EntryTimeElment; import com.sim.trackerSelenium.utils.BrowserUtils; import com.sim.trackerSelenium.utils.ScreenshotUtils; import com.thoughtworks.selenium.Selenium; /** * 填写java文件相关信息 * @packageName com.sim.trackerSelenium.test * * @createClass class EntryTimeTest.java * * @description <p> * 工时模块自动化 * </p> * @author naiwei ge * * @mail naiwei.ge@sim.com * * @createTime 2014年8月8日 上午11:50:57 * * @version 1.0 */ public class EntryTimeTest { private WebDriver webDriver; private Selenium selenium; private EntryTimeElment entryTimeElment; @Parameters(value = { "url" }) @BeforeClass public void samplerWebDriver(String url) { webDriver = BrowserUtils.getWebDriver(); // 填充系统地址 webDriver.get(url); // 浏览器最大化 webDriver.manage().window().maximize(); selenium = new WebDriverBackedSelenium(webDriver, url); } @Parameters(value = { "userName", "password" }) @Test public void testEntryTime(String userName, String password) throws Exception { //此处设置的等待时间 是针对全局设置的,找不到元素会默认等待三十秒。 webDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); entryTimeElment=new EntryTimeElment(webDriver); //登录 //清空元素内信息,一般用于输入框 entryTimeElment.username.clear(); entryTimeElment.password.clear(); //给输入框赋值 entryTimeElment.username.sendKeys(userName); entryTimeElment.password.sendKeys(password); //点击元素事件 entryTimeElment.subLogin.click(); //添加 //等待2000毫秒 selenium.waitForPageToLoad("2000"); entryTimeElment.d9.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.addHour.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.workinghours.clear(); entryTimeElment.workinghours.sendKeys("1"); entryTimeElment.remark.clear(); entryTimeElment.remark.sendKeys("轻武器"); entryTimeElment.submit.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.submitModal.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.alertMsg_btn1.click(); selenium.waitForPageToLoad("5000"); //修改 entryTimeElment.d9.click(); selenium.waitForPageToLoad("3000"); entryTimeElment.modify0.click(); selenium.waitForPageToLoad("3000"); entryTimeElment.workinghours.clear(); entryTimeElment.workinghours.sendKeys("2"); entryTimeElment.remark.clear(); entryTimeElment.remark.sendKeys("hello!"); entryTimeElment.submit.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.submitModal.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.alertMsg_btn1.click(); selenium.waitForPageToLoad("5000"); //删除 entryTimeElment.d9.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.del0.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.Undodel.click(); selenium.waitForPageToLoad("10000"); entryTimeElment.del1.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.submitModal.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.alertMsg_btn1.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.d9.click(); selenium.waitForPageToLoad("2000"); //截图工具,汉字部分是保存截图的文件名 ScreenshotUtils.screenshot(webDriver,"删除状态"); entryTimeElment.closeModal.click(); selenium.waitForPageToLoad("2000"); //查看 entryTimeElment.todaydiv.click(); ScreenshotUtils.screenshot(webDriver,"当前月份"); selenium.waitForPageToLoad("2000"); entryTimeElment.last_month.click(); selenium.waitForPageToLoad("2000"); ScreenshotUtils.screenshot(webDriver,"上个月"); selenium.waitForPageToLoad("2000"); entryTimeElment.next_month.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.next_month.click(); selenium.waitForPageToLoad("2000"); ScreenshotUtils.screenshot(webDriver,"下个月"); selenium.waitForPageToLoad("2000"); entryTimeElment.cal.click(); selenium.waitForPageToLoad("2000"); entryTimeElment.June.click(); selenium.waitForPageToLoad("3000"); ScreenshotUtils.screenshot(webDriver,"六月"); } @AfterClass public void webDriverQuit() { webDriver.quit(); } }
3. 寻找页面元素java类,com.sim.trackerSelenium.page目录下。复制后,重命名,定义自己需要的元素。
获取xpath
谷歌:在需要的元素上点击鼠标右键->审查元素->Elements->蓝色部分->鼠标右键->Copy XPath //*[@id="main_div"]/div[1]/div[2]/a/span/img,修改双引号为单引号粘贴到@FindBy(xpath = "/html/body/div[4]/div[4]/table/tbody/tr/td/span[6]")红色字体中。有id在谷歌copy出的路径前面要加“.”
火狐:在需要的元素上点击鼠标右键->View XPath->
将XPath复制粘贴到@FindBy(xpath = "/html/body/div[4]/div[4]/table/tbody/tr/td/span[6]")红色字体中,去掉火狐XPath中的“x:”
/* * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sim.trackerSelenium.page; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; /** * * @packageName com.sim.trackerSelenium.loginpage * * @createClass class LoginPageElment.java * * @description <p> * page页封装 * * </p> * @author naiwei ge * * @mail naiwei.ge@sim.com * * @createTime 2014年8月5日 下午3:35:36 * * @version 1.0 */ public class EntryTimeElment { //private Logger logger=LoggerFactory.getLogger(getClass()); /** * */ @FindBy(xpath = ".//*[@id='d9']") public WebElement d9; @FindBy(xpath = ".//*[@id='addHour']") public WebElement addHour; @FindBy(xpath = ".//*[@id='workinghours']") public WebElement workinghours; @FindBy(xpath = ".//*[@id='remark']") public WebElement remark; @FindBy(xpath = ".//*[@id='submit']") public WebElement submit; @FindBy(xpath = ".//*[@id='username']") public WebElement username; @FindBy(xpath = ".//*[@id='password']") public WebElement password; @FindBy(xpath = ".//*[@id='subLogin']") public WebElement subLogin; @FindBy(xpath = ".//*[@id='submitModal']") public WebElement submitModal; @FindBy(xpath = ".//*[@id='alertMsg_btn1']") public WebElement alertMsg_btn1; @FindBy(xpath = ".//*[@id='del0']") public WebElement del0; @FindBy(xpath = ".//*[@id='del1']") public WebElement del1; @FindBy(xpath = ".//*[@id='del0_deldiv']/font") public WebElement Undodel; @FindBy(xpath = ".//*[@id='modify0']") public WebElement modify0; @FindBy(xpath = ".//*[@id='todaydiv']") public WebElement todaydiv; @FindBy(xpath = ".//*[@id='last_month']") public WebElement last_month; @FindBy(xpath = ".//*[@id='next_month']") public WebElement next_month; @FindBy(xpath = ".//*[@id='selectMonth']/span/span") public WebElement cal; @FindBy(xpath = "/html/body/div[4]/div[4]/table/tbody/tr/td/span[6]") public WebElement June; @FindBy(xpath = ".//*[@id='godiv']") public WebElement godiv; @FindBy(xpath = ".//*[@id='closeModal']") public WebElement closeModal; /** * * * constructed function * * @Author naiwei ge * * @createDate 2014年8月5日 下午3:50:37 * * @param driver */ public EntryTimeElment(WebDriver driver) { PageFactory.initElements(driver, this); } }
相关推荐
【 Selenium 自动化测试】 Selenium 是一个广泛应用于 Web 应用程序自动化测试的开源工具。它支持多种编程语言,包括 Java,使得测试脚本的编写灵活且易于维护。本主题将深入探讨如何使用 Selenium 进行自动化测试...
Selenium是一个主要用于Web应用程序自动化测试的工具集合,在行业内已经得到广泛的应用。...《Selenium自动化测试 基于Python语言》适合任何软件测试人员阅读,也适合作为大专院校师生的学习用书和培训学校的教材。
Selenium自动化测试是一种广泛应用于Web应用测试的技术,它允许开发者使用多种编程语言,如Python,来控制浏览器并模拟用户操作。本资源包“Selenium自动化测试:基于Python语言.rar”显然是一个专注于介绍如何使用...
软件测试丛书 Selenium自动化测试指南,欢迎下载,1111
零成本实现Web功能自动化测试 基于Eclipse+Python+Selenium自动化测试技术
**Selenium 自动化测试与 Java 实例** Selenium 是一款强大的开源自动化测试框架,用于模拟用户在浏览器上的各种操作,以验证Web应用程序的功能和行为。它支持多种编程语言,其中包括Java,使得开发者和测试工程师...
本文介绍的是一本关于Selenium自动化测试的实践指南,它以Python语言为编程基础,提供了一系列自动化测试的实践技巧和实例。以下知识点将详细介绍书中所涉及的关键内容。 首先,了解Selenium。Selenium是一个用于...
Selenium则是一款强大的网页自动化测试工具,能够模拟用户行为,对Web应用程序进行全面的功能验证。这篇分享将深入探讨Python与Selenium结合进行自动化测试的相关知识点。 首先,我们需要理解Python的基础语法和...
Selenium是一款广泛应用于Web应用程序自动化测试的...总之,Selenium自动化测试实例及驱动为我们提供了一种高效、灵活的Web应用测试手段,通过学习和实践,我们可以更好地利用自动化测试提升工作效率,确保软件质量。
Selenium自动化测试工具(新手入门教程)3(3-5)
Mac OS搭建Python+selenium自动化测试环境 1、官网下载安装python 访问Python官网 https://www.python.org/downloads,下载安装Python安装包,一路点击安装即可。 验证是否安装成功 打开终端,输入以下命令,查看...
**Selenium自动化测试培训** Selenium是一款强大的开源自动化测试工具,尤其在Web应用程序测试领域具有广泛的应用。它支持多种浏览器和编程语言,如Java、Python、C#等,因此受到测试人员、自动化测试工程师、QA、...
Selenium是一款强大的Web应用程序自动化测试工具,它支持多种编程语言,如Java、Python、C#等,使得测试人员和开发人员能够对网页进行自动化控制,从而实现高效且精确的测试。Selenium的核心理念是模拟真实用户的...
总的来说,Selenium自动化测试是软件测试领域中的重要工具,它简化了Web应用的测试流程,提高了测试效率,确保了产品的稳定性和可靠性。通过深入了解和熟练运用这些知识点,你可以构建出一套强大的自动化测试解决...
Selenium的特性突出,应用前景看好。相关书籍较少,存在市场空白。, 整理了所有个人经验及其他人在Selenium实用过程中的经验,对一些疑难问题进行说明。在作者所在公司的推广和培训中,得到同事的好评。很有实践指导...
Java Selenium自动化测试环境的搭建是软件测试领域中的一个重要环节,特别是在Web应用的测试中。Selenium是一个强大的浏览器自动化工具,支持多种编程语言,包括Java,它使得开发者能够编写可跨浏览器运行的自动化...
1、增加报告加载样式初始化,更多样化 2、将失败&错误拆分成失败和错误 3、对标签切换方法进行了优化
资源包括Selenium自动化测试:基于Python语言的文档以及每章节的代码