一、原理及特点

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. 查看用户信息:w

    w命令有两个用途: (1) 用于查看当前系统负载(2) 用于查看当前登录用户的行为和信息,执行这个命令可以得知当前登入系统的用户有哪些人,以及他们正在执行哪些程序 [root@localhost ~] ...

  2. ssh通过密钥进行连接

    sshd服务提供两种安全验证的方法: 基于口令的安全验证:经过验证帐号与密码即可登陆到远程主机. 基于密钥的安全验证:需要在本地生成"密钥对"后将公钥传送至服务端,进行公共密钥的比 ...

  3. redis学习之集群报错Node is not empty

    遇到的问题及解决办法 在redis.conf里bind 真机ip后,接着重新执行每个redis.conf,最后再创建集群,但报错,如下图所示: 图中报的错即: [ERR] Node 192.168.1 ...

  4. poj_2752 kmp

    题目大意 给定字符串S,求出S的所有可能相同前后缀的长度.比如: "alala"的前缀分别为{"a", "al", "ala&qu ...

  5. JS-点和中括号

    今天上午做一个很low的小练习,代码写完了想要封装重复利用来着 可是憋屈啊,怎么都不对,在document.style.width这里,想把width变成参数可是用点的话,会报错说找不到点后边这个属性 ...

  6. c# Winform间的页面传值

    Form2 public partial class Form2 : Form { public string str; public Form2() { InitializeComponent(); ...

  7. mysql格式化日期的函数

    转自:https://www.cnblogs.com/duhuo/p/5650876.html mysql格式化日期   mysql查询记录如果有时间戳字段时,查看结果不方便,不能即时看到时间戳代表的 ...

  8. 170523、快速提升你 MySQL 数据库的段位

    MySQL 数据库知识脉络,大致可以分为四大模块: ● MySQL 体系结构: ● MySQL 备份恢复: ● MySQL 高可用集群: ● MySQL 优化. 从四大模块中,抽离7个部分给大家做分析 ...

  9. .net配置404错误页面

    如果你的网站出现一堆让人看不懂的报错,那么你就不是一个合格的程序员,也不是一个合格的站长. 下面的方面可以帮助你的网站远离让人头大的页面. 第一步:配置web.config 打开web.config, ...

  10. HDU_5517_Triple

    Triple Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...