一、原理及特点

1. 关键字驱动测试是数据驱动测试的一种改进类型

2. 主要关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为Item.Operation(Value)

3. 将测试逻辑按照这些关键字进行分解,形成数据文件。

4. 用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化

二、准备

使用工具:eclipse

用到的第三方jar包:poi.jar(操作excel);selenium.jar

理解难点:java反射机制;逐步分层

三、框架构思

1、编写脚本

首先我们来写一个登陆开源中国的脚本

public class Login_Script {
public static WebDriver driver=null;
public static void main(String []agrs) throws InterruptedException{
// 启动火狐浏览器
driver= new FirefoxDriver();
// 最大化
driver.manage().window().maximize();
// 打开开源中国网址
driver.get("http://www.oschina.net/");
// 点击登录
driver.findElement(By.xpath("//*[@id='OSC_Userbar']/a[1]")).click();
// 输入用户名
driver.findElement(By.xpath("//*[@id='f_email']")).sendKeys("XXXXXXB");
// 输入密码
driver.findElement(By.xpath("//*[@id='f_pwd']")).sendKeys("XXXXXXXA");
// 点击登录按钮
// driver.findElement(By.xpath("//*[@id='login_osc']/table/tbody/tr[7]/td/input")).click();
// Thread.sleep(30);
// 点击退出按钮
driver.findElement(By.xpath("//*[@id='OSC_Userbar']/a[3]")).click();
// 关闭浏览器
driver.quit();
}
}
2、脚本分析

这是登陆的场景

操作步骤

第一步:启动浏览器

第二步:输入网址

第四步:点击登录

第五步:输入用户名

第六步:输入密码

第七步:点击登录按钮

第八步:点击退出

第九步:关闭浏览器

3、使用excel

建立一个excel

在java中创建一个操作excel的类 ,主要实现是对excel的读和写,主要代码如下:

public class ExcelUtils {
public static HSSFSheet ExcelSheet;
public static HSSFWorkbook ExcelBook;
public static HSSFRow Row;
public static HSSFCell Cell;
public static void setExcelFile(String Path,String SheetName) throws Exception{
FileInputStream ExcelFile=new FileInputStream(Path);
ExcelBook=new HSSFWorkbook(ExcelFile);
ExcelSheet=ExcelBook.getSheet(SheetName);
}
public static void setCellData(String Result, int RowNum, int ColNum,String Path) throws Exception{
Row = ExcelSheet.getRow(RowNum);
Cell = Row.getCell(ColNum, Row.RETURN_BLANK_AS_NULL);
if (Cell == null) {
Cell = Row.createCell(ColNum);
Cell.setCellValue(Result);
} else {
Cell.setCellValue(Result);
}
FileOutputStream fileOut = new FileOutputStream(Path);
ExcelBook.write(fileOut);
fileOut.flush();
fileOut.close();
}
public static String getCellDate(int RowNum,int CloNum){
Cell=ExcelSheet.getRow(RowNum).getCell(CloNum);
String cellData=Cell.getStringCellValue();
return cellData;
}
}
4、新建一个ActionKeyWords类

public class ActionKeyWords {
public static WebDriver driver=null;
// 启动浏览器并最大化
public static void OpenBrowser (){
driver= new FirefoxDriver();
driver.manage().window().maximize();
}
// 打开开源中国网址
public static void Navigate (){
driver.get("http://www.oschina.net/");
}
// 点击登录
public static void Login_Click (){
driver.findElement(By.xpath("//*[@id='OSC_Userbar']/a[1]")).click();
}
// 输入用户名
public static void Input_Name (){
driver.findElement(By.xpath("//*[@id='f_email']")).sendKeys("XXXXXXA");
}
// 输入密码
public static void Input_Password (){
driver.findElement(By.xpath("//*[@id='f_pwd']")).sendKeys("XXXXXXB");
}
// 点击登录按钮
public static void Login_Button (){
driver.findElement(By.xpath("//*[@id='login_osc']/table/tbody/tr[7]/td/input")).click();
}
// 点击退出按钮
public static void Logout_Click (){
driver.findElement(By.xpath("//*[@id='OSC_Userbar']/a[3]")).click();
}
// 关闭浏览器
public static void CloseBrowser (){
driver.quit();
}
}
5、修改Login_Script脚本.

public class Login_Script {
public static void main(String []agrs) throws Exception{
ExcelUtils.setExcelFile("D:\\data\\TestData.xls", "steps");
ActionKeyWords actionKeyWords= new ActionKeyWords();
String Keywords=null;
for(int RowNum=1;RowNum

UI自动化测试框架之Selenium关键字驱动的更多相关文章

  1. UI自动化测试框架之Selenium关键字驱动 (转)

    摘要 自动化测试框架demo,用关键字的形式将测试逻辑封装在数据文件中,测试工具解释这些关键字即可对其应用自动化 一.原理及特点 1.   关键字驱动测试是数据驱动测试的一种改进类型 2.    主要 ...

  2. 【转】UI自动化测试框架之Selenium关键字驱动

    原网址:https://my.oschina.net/hellotest/blog/531932#comment-list 摘要: 自动化测试框架demo,用关键字的形式将测试逻辑封装在数据文件中,测 ...

  3. 数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索

    UI自动化测试用例剖析 让我们先从分析一端自动化测试案例的代码开始我们的旅程.以下是我之前写的一个自动化测试的小Demo.这个Demo基于Selenium与Java.由于现在Selenium在自动化测 ...

  4. UI自动化测试框架(项目实战)python、Selenium(日志、邮件、pageobject)

    其实百度UI自动化测试框架,会出来很多相关的信息,不过就没有找到纯项目的,无法拿来使用的:所以我最近就写了一个简单,不过可以拿来在真正项目中可以使用的测试框架. 项目的地址:https://githu ...

  5. Selenium关键字驱动测试框架Demo(Java版)

    Selenium关键字驱动测试框架Demo(Java版)http://www.docin.com/p-803493675.html

  6. 基于selenium+Python3.7+yaml+Robot Framework的UI自动化测试框架

    前端自动化测试框架 项目说明 本框架是一套基于selenium+Python3.7+yaml+Robot Framework而设计的数据驱动UI自动化测试框架,Robot Framework 作为执行 ...

  7. 自动化测试中级篇——LazyAndroid UI自动化测试框架使用指南

    原文地址https://blog.csdn.net/iamhuanggua/article/details/53104345 简介   一直以来,安卓UI自动化测试都存在以下两个障碍,一是测试工具Mo ...

  8. 简单Web UI 自动化测试框架 pyse

    WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动 ...

  9. Ui自动化测试框架

    为了提高我们的UI测试效率,我们引用Ui自动化测试框架,这里简单先描述一下,后续会详细补充: 了解一个测试框架,我们就需要了解一下源码,能看懂源码即可: 1.稳定先封装wait EC,电脑性能配置较好 ...

随机推荐

  1. Facebook广告目标摘要

    Facebook Ads look slightly different depending on the results you want. This guide includes recommen ...

  2. JavaIO详解

    很全面的内容:http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html

  3. Linux学习之批量修改文件名

    1. 通过专业的改名命令rename实现 [root@oldboy oldboy]# ll total -rw-r--r-- root root Nov : stu_102999_1_finished ...

  4. Egret类class和module写法区别

    普通类 Test.ts class Test { public name:string = "Test"; public run(){ console.log(this.name) ...

  5. gradle多项目构建及依赖

    上项目结构图: idea里面一个project其实相当于eclipse的一个workspace,这样一来就很好理解了,我们新建了两个module,相当于eclipse的两个项目工程 主要看配置:bui ...

  6. ExtJS学习

    ExtJS是一门比较纠结的框架,自己不太熟,因为现在在做一些老项目,所以没办法要学点.记录下.其实Ext也不是很难,主要是多查查API,了解其基本的用法,然后慢慢去学习,学成之后做管理系统还是很有优势 ...

  7. BeginnerAdmin后台框架的使用!

    基于layui的后台框架,我比较喜欢使用BeginnerAdmin模板.但是在构建的时候可能会遇到一些问题. 问题一:侧栏出不来: 报错是这样的: 这个错误:说明的是 navbar.js没有引进来. ...

  8. 从零打造在线网盘系统之Hibernate查询与更新技术

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

  9. supervisor 配置篇

    1,配置管理进程 进程管理配置参数,不建议全都写在supervisord.conf文件中,应该每个进程写一个配置文件放在include指定的目录下包含进supervisord.conf文件中. 1&g ...

  10. Oracle数据类型之nchar

    nchar(size)  nvarchar2(size) n 代表的意思是编码格式为unicode编码,无论中文或者英文都以一个字符来存放数据. 举例: 比如“a” ,占用一个字符 比如“月”,占用一 ...