当前常用自动化测试工具

  • 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安装

  1. 官方主页 http://ant.apache.org下载新版的ant
  2. 配置环境变量:如:PATH:%ANT_HOME%\bin
  3. 验证ant是否成功安装:开始->运行->cmd -> ant
  4. 如果出现如下内容,说明安装成功: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自动化测试浅尝的更多相关文章

  1. selenium+testng+ant+jenkins 手记

    会不会搭建测试平台是一般测试工程师和高级测试工程师分水岭 ----tobecrazy 我们项目有现成的测试平台,使用的是selenium grid+testng+ant+jenkins+VM 但是我平 ...

  2. 也谈自动化平台的搭建,另附高大上的名字---无人值守定时巡检系统(selenium+testng+ant+jenkins)

    最近公司新项目改版,由于没有运维,开发则负责上线任务,并且都是手动上线,并行的项目多了,分支混乱,经常导致B项目上线覆盖A项目,导致系统不定时出现异常,老板知道了便扣了大家的绩效,作为测试这边必须想个 ...

  3. Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动化测试环境

    一直想在持续集成方向学习并研究一番,近期正准备结合jmeter+ant+jenkins做自动化接口测试,在学习的同时,正好实践一番,毕竟实践才是真理. 在搭建jmeter+ant+jenkins环境有 ...

  4. UI自动化测试篇 :webdriver+ant+jenkins自动化测试实践

    http://www.cnblogs.com/chengtch/p/6063360.html 前面基本弄清楚了webdriver+ testng 的测试环境部署,现在这里记录一下结合ant及jenki ...

  5. testng+ant+jenkins持续集成UI自动化

    一.环境搭建 1. 安装testNG插件到eclipse. -) 选择菜单 Help /Software updates / Find and Install. -) 点击add button然后在l ...

  6. Linux下搭建Jmeter+Ant+Jenkins自动化测试框架

    前言 在之前的文章中,我们学习了通过Ant调用Jmeter脚本生成HTML测试报告,但未实现自动执行脚本生成报告,同时生成的报告是在Linux下,查看报告很不方便.因此,我们将结合Jenkins来进一 ...

  7. 转:Selenium2.0 click()不生效的解决办法

    除了http://573301735.com/?p=5126讲的,昨天又发现一个让我1个小时生不如死的问题,就是使用两个不同的配置文件来初始化driver,findelement方法获取到的坐标居然不 ...

  8. 自动化测试框架【linux版】:JMeter + Ant + Jenkins

    前提条件:linux安装了jmeter.ant.jenkins 安装方法参考汇总目录中对应的博文 截图看不清的,可以调大浏览器倍数看 jenkins驱动ant执行,ant驱动jmeter执行 ant调 ...

  9. 集成 Jenkins 和 TestNG 实现自助式自动化测试平台

    背景介绍 在软件业十分成熟的今天,敏捷(Agile)开发在业界日益流行,而面临的挑战也日益增多,不断变化的用户需求.缩短的开发周期.频繁的部署上线.复杂的产品架构和团队组织,如何继续保证软件的质量是一 ...

随机推荐

  1. poj3177边-双连通分量

    题意和poj3352一样..唯一区别就是有重边,预先判断一下就好了 #include<map> #include<set> #include<list> #incl ...

  2. window操作常识

  3. Firefox 不知道如何打开此地址,因为协议 (javascrpit) 未和任何程序关联.

    用火狐打开出现这个错误,360没事:这个是什么原因???怎么解决?代码:<a href="javascrpit:;"onclick="showD('pas','ri ...

  4. performance.timing检测页面加载速度

    with(performance){ readyStart = timing.fetchStart - timing.navigationStart; redirectTime = timing.re ...

  5. 交互式 shell 玩转 Python

    Python 编程语言已经成为 IT 中使用的最流行的语言之一.成功的一个原因是它可以用来解决各种问题.从网站开发到数据科学.机器学习到任务自动化,Python 生态系统有丰富的框架和库.本文将介绍 ...

  6. CH6B12 最优高铁环

    6B12 最优高铁环 0x6B「图论」练习 背景 幻影国建成了当今世界上最先进的高铁,该国高铁分为以下几类: S---高速光子动力列车---时速1000km/h G---高速动车---时速500km/ ...

  7. mac下无法远程桌面连接win10的解决办法

    原文链接:http://www.hangge.com/blog/cache/detail_899.html 原来在Mac OSX下远程win7系统很正常,后来把windows系统升级成了win10,再 ...

  8. a标签中href="javacript:;" href="javacript:void(0);" href="#"区别

    在使用<a>标签时,经常会绑定其他事件比如onclick,这时候我们会给<a>标签的href属性赋值为“#”,“javacript:;”,“javacript:void(0); ...

  9. jQuery做出手风琴效果

    今天学到JQuery中的遍历-siblings,便手痒做了个手风琴的动态效果,有一点收获,分享给大家.mouseout的时候一定要记得opacity必须设置,不然li的opacity会保持mousem ...

  10. RS485总线防雷保护方案

    RS485作为最为最常用的电表通讯方式之一.日常生活中雷电和静电干扰已经成为485通信总线在实际工程经常遇到的问题.故如何对芯片以及总线进行有效的保护,是摆在每一个使用者面前的一个问题.在这里,我们主 ...