testng 定时构建_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.29v56-58

v2.24v52-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 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实现元素操作;检查是否操作速度过快,页面没加载出来

自动化测试结果的生成与美化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值