Selenium2.0+TestNG+Ant+Jenkins自动化测试浅尝
当前常用自动化测试工具
- Web自动化测试工具:QTP 、selenium等
- 性能自动化测试工具:loadrunner、jmeter等
- 接口自动化测试工具:SoapUI、postman等
- 手机自动化测试工具:robotium、appium等
自动化脚本录制
Selenium 1.0包括:selenium IDE、selenium Grid、selenium RC三部分。
Selenium IDE 是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能
IDE录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发脚本。

录制界面

导出脚本

Selenium2.0+TestNG+Ant+Jenkins自动化测试框架简介
- Selenium2.0 = Selenium1.0 + WebDriver
- TestNG是一个开源自动化测试框架,灵感来源于Junit,比Junit更强大
- ANT使用XML 文件来实现管理脚本的功能。默认的文件是build.xml
- Jenkins持续集成,结合Ant自动化构建,定时运行,发送测试报告邮件等
- Xslt美化Testng测试报告
环境搭建
- 第一步 安装JDK
- 第二步 安装Eclipse
- 第三步 在Eclipse中安装TestNG(http://beust.com/eclipse)
- 第四步 安装Ant(结合xslt美化测试结果,运行testng.xml,可选择性安装)
- 第五步 安装Jenkins
- 注意:谷歌驱动版本要和谷歌版本对应
- v2.29 v56-58
- v2.24 v52-54
TestNG安装
Eclipse Help ->Install New Software ,Add"http://beust.com/eclipse"

Ant安装
- 官方主页 http://ant.apache.org下载新版的ant
- 配置环境变量:如:PATH:%ANT_HOME%\bin
- 验证ant是否成功安装:开始->运行->cmd -> ant
- 如果出现如下内容,说明安装成功:Buildfile: build.xml does not exist!
Jenkins配置

元素定位
定位方法
driver.findElement(By.id(“id的值”));
driver.findElement(By.name(“name的值”));
driver.findElement(By.linkText(“链接的全部文字”));
driver.findElement(By.partialLinkText(“链接的部分文字”));
driver.findElement(By.cssSelector(“css表达式”));
driver.findElement(By.xpath(“xpath表达式”));
driver.findElement(By.className(“class属性”));
driver.findElement(By.tagName(“标签名称”));
元素常用操作
click();
sendkeys(String value);
clear();
getText();
getAttribute();
driver.get(String url) //浏览器跳转
driver.manage().window().maximize(); // 浏览器最大化 driver.navigate().to("http://www.baidu.com"); //浏览器跳转
driver.navigate().refresh(); // 刷新浏览器
driver.navigate().back(); // 浏览器后退
driver.navigate().forward(); // 浏览器前进
driver.quit(); // 浏览器退出
操作弹出框
Alert , Confirm,Prompt弹出框
driver.switchTo().alert().accept(); //点击确定
driver.switchTo().alert().dismiss(); //点击取消
driver.switchTo().alert().sendKeys();
操作windows弹出框
借助autoIt
滚动到顶
((JavascriptExecutor)driver).executeScript("document.documentElement.scrollTop=0");
滚动到底
((JavascriptExecutor)driver).executeScript("document.documentElement.scrollTop=10000");
模拟鼠标、键盘操作(Action类)
Actions action = new Actions(driver);
action.click(WebElement); //模拟鼠标点击
action.contextClick(WebElement); //模拟右键点击
action.doubleClick(WebElement); //模拟鼠标双击
action.moveToElement(WebElement); //鼠标移动到元素
actions.dragAndDrop(elementsource, elementtarget).perform();
action.sendKeys(); //模拟键盘输入
action.sendKeys(Keys.ENTER).perform(); //模拟键盘回车
action.sendKeys(Keys.CONTROL+"a").perform(); //使用ctrl+a全选
等待元素加载
强制等待
Thread.sleep();
隐式等待
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
总共等待10秒, 如果10秒后,元素还不存在,就会抛出异常 org.openqa.selenium.NoSuchElementException
显式等待
new WebDriverWait(chrome, 15).until(
ExpectedConditions.presenceOfElementLocated(By.cssSelector("css locator"))
);
处理Iframe中元素
dr.switchTo().frame("frameA"); // 进入 id 叫frameA 的 iframe
dr.switchTo().defaultContent(); // 回到主窗口
切换窗口
public void switchToWindow(String title) {
try {
String currentHandle = driver.getWindowHandle(); //返回当前的浏览器的窗口句柄
Set<String> handles = driver.getWindowHandles(); //返回当前的浏览器的所有窗口句柄
for (String handle : handles){
if(handle.equals(currentHandle)){
continue;
}else{
driver.switchTo().window(handle);
if (driver.getTitle().contains(title)){ break; }
else{ continue; }
}
}
} catch (NoSuchWindowException e) {
System.out.println("没有找到窗口!");
}
}
常见异常及解决方法
NoSuchElementException:检查页面元素的定位表达式是否正确,或尝试其他定位方式;查看页面是否加载延迟,设置等待时间;
NoSuchFrameException :检查元素是否frame里,是否已切换到元素的frame下,或切换回default content
ElementNotVisibleException:检查元素是否存在不可见属性的元素,可借助Javascript实现元素操作;检查是否操作速度过快,页面没加载出来
自动化测试结果的生成与美化


Selenium2.0+TestNG+Ant+Jenkins自动化测试浅尝的更多相关文章
- selenium+testng+ant+jenkins 手记
会不会搭建测试平台是一般测试工程师和高级测试工程师分水岭 ----tobecrazy 我们项目有现成的测试平台,使用的是selenium grid+testng+ant+jenkins+VM 但是我平 ...
- 也谈自动化平台的搭建,另附高大上的名字---无人值守定时巡检系统(selenium+testng+ant+jenkins)
最近公司新项目改版,由于没有运维,开发则负责上线任务,并且都是手动上线,并行的项目多了,分支混乱,经常导致B项目上线覆盖A项目,导致系统不定时出现异常,老板知道了便扣了大家的绩效,作为测试这边必须想个 ...
- Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动化测试环境
一直想在持续集成方向学习并研究一番,近期正准备结合jmeter+ant+jenkins做自动化接口测试,在学习的同时,正好实践一番,毕竟实践才是真理. 在搭建jmeter+ant+jenkins环境有 ...
- UI自动化测试篇 :webdriver+ant+jenkins自动化测试实践
http://www.cnblogs.com/chengtch/p/6063360.html 前面基本弄清楚了webdriver+ testng 的测试环境部署,现在这里记录一下结合ant及jenki ...
- testng+ant+jenkins持续集成UI自动化
一.环境搭建 1. 安装testNG插件到eclipse. -) 选择菜单 Help /Software updates / Find and Install. -) 点击add button然后在l ...
- Linux下搭建Jmeter+Ant+Jenkins自动化测试框架
前言 在之前的文章中,我们学习了通过Ant调用Jmeter脚本生成HTML测试报告,但未实现自动执行脚本生成报告,同时生成的报告是在Linux下,查看报告很不方便.因此,我们将结合Jenkins来进一 ...
- 转:Selenium2.0 click()不生效的解决办法
除了http://573301735.com/?p=5126讲的,昨天又发现一个让我1个小时生不如死的问题,就是使用两个不同的配置文件来初始化driver,findelement方法获取到的坐标居然不 ...
- 自动化测试框架【linux版】:JMeter + Ant + Jenkins
前提条件:linux安装了jmeter.ant.jenkins 安装方法参考汇总目录中对应的博文 截图看不清的,可以调大浏览器倍数看 jenkins驱动ant执行,ant驱动jmeter执行 ant调 ...
- 集成 Jenkins 和 TestNG 实现自助式自动化测试平台
背景介绍 在软件业十分成熟的今天,敏捷(Agile)开发在业界日益流行,而面临的挑战也日益增多,不断变化的用户需求.缩短的开发周期.频繁的部署上线.复杂的产品架构和团队组织,如何继续保证软件的质量是一 ...
随机推荐
- kylin_学习_01_kylin安装部署
一.环境准备 根据官方文档,kylin是需要运行在hadoop环境下的,如下图: 1.hadoop环境搭建 参考:hadoop_学习_02_Hadoop环境搭建(单机) 2.hbase环境搭建 参考: ...
- Mysql 排序null值 排序问题分析
mysql中null值的排序问题分析 如下表t_user: name age zhangsan 1 lisi NULL wangwu 2 www.2cto.com 执行一下sql: S ...
- ACM学习历程—FZU2191完美的数字(数学)
Description Bob是个很喜欢数字的孩子,现在他正在研究一个与数字相关的题目,我们知道一个数字的完美度是 把这个数字分解成三个整数相乘A*A*B(0<A<=B)的方法数,例如数字 ...
- 自定义type为file型input控件+该控件具有本地图片预览功能
最近的一个项目需求是写一个type为filex型的input控件,这个控件: 第一,要自定义样式: 第二,要能直接在本地预览上传的图片: 第三,要能检测图片的尺寸是否符合要求. 故综合网上的资源写了下 ...
- python中http请求中添加cookie支持
python3中构造http的Request需要用到urllib.request. 有时会用到cookie. 比如在访问网站首页得到cookie,通过下面代码添加cookie: #insta ...
- Poj 1504 Adding Reversed Numbers(用字符串反转数字)
一.题目大意 反转两个数字并相加,所得结果崽反转.反转规则:如果数字后面有0则反转后前面不留0. 二.题解 反转操作利用new StringBuffer(s).reverse().toString() ...
- POJ3630(Trie树)
Phone List Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26385 Accepted: 7957 Descr ...
- 使用Sed抽取MySQL安装文档的目录及行号
sed -nr -e '/^2.|^shell/=' -e '/^2.|^shell/p' INSTALL-SOURCE |awk '{if (NR%2==1) x=$1; else printf ...
- Linux统计文件夹占用空间大小--du命令基本用法
命令行环境下要知道linux系统里一个文件夹以及其包含的文件实际所占用的空间大小,linux自带的命令 du可以很好地满足需求. 其他的用法我就不一一写出来了,就列本人觉得会用得最多的,直接上: $ ...
- linux使用JMETER进行分布式压力测试
1. 下载jmeter tgz文件 http://jmeter.apache.org/download_jmeter.cgi 2. 登录linux服务器,创建jmeter目录,rz上传jmeter ...