UI自动化测试框架之Selenium关键字驱动
一、原理及特点
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关键字驱动的更多相关文章
- UI自动化测试框架之Selenium关键字驱动 (转)
摘要 自动化测试框架demo,用关键字的形式将测试逻辑封装在数据文件中,测试工具解释这些关键字即可对其应用自动化 一.原理及特点 1. 关键字驱动测试是数据驱动测试的一种改进类型 2. 主要 ...
- 【转】UI自动化测试框架之Selenium关键字驱动
原网址:https://my.oschina.net/hellotest/blog/531932#comment-list 摘要: 自动化测试框架demo,用关键字的形式将测试逻辑封装在数据文件中,测 ...
- 数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索
UI自动化测试用例剖析 让我们先从分析一端自动化测试案例的代码开始我们的旅程.以下是我之前写的一个自动化测试的小Demo.这个Demo基于Selenium与Java.由于现在Selenium在自动化测 ...
- UI自动化测试框架(项目实战)python、Selenium(日志、邮件、pageobject)
其实百度UI自动化测试框架,会出来很多相关的信息,不过就没有找到纯项目的,无法拿来使用的:所以我最近就写了一个简单,不过可以拿来在真正项目中可以使用的测试框架. 项目的地址:https://githu ...
- Selenium关键字驱动测试框架Demo(Java版)
Selenium关键字驱动测试框架Demo(Java版)http://www.docin.com/p-803493675.html
- 基于selenium+Python3.7+yaml+Robot Framework的UI自动化测试框架
前端自动化测试框架 项目说明 本框架是一套基于selenium+Python3.7+yaml+Robot Framework而设计的数据驱动UI自动化测试框架,Robot Framework 作为执行 ...
- 自动化测试中级篇——LazyAndroid UI自动化测试框架使用指南
原文地址https://blog.csdn.net/iamhuanggua/article/details/53104345 简介 一直以来,安卓UI自动化测试都存在以下两个障碍,一是测试工具Mo ...
- 简单Web UI 自动化测试框架 pyse
WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动 ...
- Ui自动化测试框架
为了提高我们的UI测试效率,我们引用Ui自动化测试框架,这里简单先描述一下,后续会详细补充: 了解一个测试框架,我们就需要了解一下源码,能看懂源码即可: 1.稳定先封装wait EC,电脑性能配置较好 ...
随机推荐
- Linux 下配置网卡的别名即网卡子IP的配置
what 什么是ip别名?用windows的话说,就是为一个网卡配置多个ip.when 什么场合增加ip别名能派上用场?布网需要.多ip访问测试.特定软件对多ip的需要...and so on. ho ...
- discuz 文档说明
Discuz 文档说明 基于7.0的标准程序,部分与插件无关的文件不作说明 文件颜色说明: 红色:程序核心文件,修改这类文件时千万要注意安全! 橙色:做插件几乎不会用到的文件,大概了解功能就可以了, ...
- iOS中UIImage转换为NSData 方法
参考网址:http://blog.csdn.net/lovenjoe/article/details/7484217 天牛 感谢作者的硕果 在Iphone上有两种读取图片数据的简单方法: UIImag ...
- Android 使用RadioGroup和RadioButton实现单选效果
RadioButton和CheckBox的区别:CheckBox选中之后可以直接取消,RadioButton选中之后不能直接取消,所以一般情况下不建议单独使用.1.RadioGroup:RadioBu ...
- Java自动类型转换
■ 自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型. ■ 特例:可以讲整型常量直接赋给byte,short,char等类型变量,而不需要强制类型转换,只要不超出其表数范围. ■ 强制类型 ...
- Xcode模版生成文件头部注释
在使用Xcode创建工程或者新建类的时候,顶部都会有一些xcode帮我们生成的注释 //// MySingletonClass.h// 单例模式//// Created by mark on 15/8 ...
- 服务器报错 500,请确保 ASP.NET State Service(ASP.NET 状态服务)已启动
报错信息: 解决方案: 开启此服务
- ScrollView 设置滚动是否可用
extends:http://stackoverflow.com/questions/5763304/disable-scrollview-programmatically , http://stac ...
- WCF(四) 深入契约
服务契约中的请求-响应操作 1.请求-响应模式 [OperationContract]//1默认就是 请求-相应 Requst- Replay DateTime GetDateTime(); [Ope ...
- [MongoDB] 用户权限管理
在新环境按照原来的步骤新装了MongoDB,结果出现了一些错误,才发现版本升到了2.6.1,用户权限相关的内容全部改掉了. 现在使用Role来管理用户,有一些内置的Role,也可以自定义Role. 内 ...