您的位置:首页 > 产品设计 > UI/UE

webUI自动化测试框架(一):简介和Demo入门

2017-06-23 10:57 246 查看
前言:selenium和webdriver是目前主流的ui自动化测试框架之一,selenium又称为selenium RC,基本原理为js注入,而webdriver是直接利用了浏览器的native support(厂商支持)来操作浏览器,所以,对于不同浏览器,必须依赖一个特定的浏览器native component来实现把webdriver API转化为浏览器的native invoke。在我们new出一个webdriver时,selenium首先会确认浏览器的native component是否存在且版本匹配(所以在使用浏览器驱动时,需要检查该驱动版本与selenium的版本是否匹配,不匹配则不可用),接着在目标浏览器中启动一整套的Web
service,这套web service使用了selenium自己设计定义的协议,可以模拟用户操作浏览器做出一系列动作。更多信息可访问官方的用户手册:http://www.seleniumhq.org/docs/

先列举下关于【 webUI自动化测试框架】 本人打算编写的博客,有兴趣的童鞋欢迎持续关注,这也算是我在实际工作中的一些学习和实践记录,可能有些不对或者不完善的地方,欢迎各位童鞋指正:

webUI自动化测试框架(一):webdriver简介和Demo入门

webUI自动化测试框架(二):代码分层-基础层

webUI自动化测试框架(三):代码分层-对象库层

webUI自动化测试框架(四):代码分层-操作层及用例层

webUI自动化测试框架(五):持续集成及测试报告输出

进入正题:

一、环境搭建

webUI自动化的环境搭建相比于app简单的多,有jdk,有selenium jar包,有浏览器驱动就够了。

1.前往官网下载selenium相关jar包:http://www.seleniumhq.org/download/,由于Google被墙,可到我的网盘下载,版本为selenium-java-3.4.0:http://pan.baidu.com/s/1dENrX89

2.新建java project,将selenium jar包及lib目录下的jar包add to build path即可。

3.webdriver常用的方法:

元素定位方法:By.id(id)、By.xpath(xpath)、By.linkText(linkText)、By.className(className)、By.cssSelector(selector);

点击操作:driver.findElement(By.id(id)).click();

输入:driver.findElement(By.id(id)).sendKeys("selenium");

获取文本:driver.findElement(By.id(id)).getText();

获取对象属性值:driver.findElement(By.id(id)).getAttribute("属性");

更多方法可查阅官网文档。

4.接下来我们写个demo。

package com.etyero.testcase;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class WebDriverDemo {
private WebDriver driver;
private String baseUrl = "http://www.baidu.com";
private StringBuffer verificationErrors = new StringBuffer();

@BeforeMethod
public void setUp() throws Exception {
String browserDriverUrl = "D:/work/workplace/webUITest/browserDriver/chromedriver.exe";// 浏览器驱动路径
//启动chrome浏览器
System.setProperty("webdriver.chrome.driver", browserDriverUrl);
driver = new ChromeDriver();
driver.manage().window().maximize();// 最大化浏览器
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);//设置操作超时时长,该设置是全局性的,即所有操作都最长等待30s

}

@Test
/**
* 搜索selenium
*
* */
public void testLogin() throws Exception {
driver.get(baseUrl);
driver.findElement(By.id("kw")).clear();// 按id找到元素后,清空该元素
driver.findElement(By.id("kw")).sendKeys("selenium");// 输入selenium
driver.findElement(By.id("su")).click(); //点击搜索按钮
}

@AfterMethod
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
Assert.fail(verificationErrorString);
}
}
}


至此,你已经进了webdriver的大门了,欢迎加入~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: