当前常用自动化测试工具

  • 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. Vue2.0总结———vue使用过程常见的一些问题

    Vue目前的的开发模式主要有两种:1.直接页面级的开发,script直接引入Vue2.工程性开发,webpack+loader或者直接使用脚手架工具Vue-cli,里面的文件都配置好了 webpack ...

  2. codeforces 627B B. Factory Repairs(线段树)

    B. Factory Repairs time limit per test 4 seconds memory limit per test 256 megabytes input standard ...

  3. Java中的参数传值方式

    本文转载自 https://blog.csdn.net/SEU_Calvin/article/details/70089977 1.  你觉得下面程序会输出什么 public static void  ...

  4. POJ3294Life Forms(广义后缀自动机)(后缀数组+二分+数状数组)

    You may have wondered why most extraterrestrial life forms resemble humans, differing by superficial ...

  5. 卸载DCOS

    再次安装,已经是隔了两天,我打算换一台机器作为boot机器,但是发现报错,告知部署设备已经安装了dcos:看来需要卸载:uninstall-master.sh /opt/mesosphere/bin/ ...

  6. Git 权限控制

    除了 Git 命令,权限控制也是 Git 中极为重要的组成部分,本文主要介绍 GitLab 系统提供的最常用的权限控制功能. 一.分配成员角色 首先来了解下,Git 中的五种角色: 每一种角色所拥有的 ...

  7. NB-IoT知识

    通常,我们把物联网设备分为三类: ①无需移动性,大数据量(上行),需较宽频段,比如城市监控摄像头. ②移动性强,需执行频繁切换,小数据量,比如车队追踪管理. ③无需移动性,小数据量,对时延不敏感,比如 ...

  8. java web项目创建

    https://www.cnblogs.com/kangjianwei101/p/5621738.html

  9. zoj 3872

    D - Beauty of Array Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu S ...

  10. linux 时间处理 + 简单写log

    1s ==1000ms == 1,000,000us == 1,000,000,000 nanosecond uname -a Linux scott-Z170X 4.15.0-34-generic ...