Web自动化框架LazyUI使用手册(8)--excel数据驱动详解(ExcelDataProvider)
概述
框架提供了excel数据驱动方式运行测试用例的工具,本文将针对数据驱动,进行详细演示。
详见类:lazy.test.ui.browser.ExcelDataProvider
被测对象:
http://bj.sqyishi.com/user/login.htm
测试场景:
输入用户名,点击登录,校验各种异常输入
输入后,红框里会出现一些异常提示,如图:
bean层代码:
使用插件生成
package test;
import lazy.test.ui.annotations.*;
import lazy.test.ui.beans.PageBean;
import lazy.test.ui.controls.*;
import lazy.test.ui.browser.BrowserEmulator;
public class login extends PageBean {
@Xpath(xpath={"//input[@id='username']", "//input[@name='username']", "//input[contains(@class,'text highlight1')]"})
@Frame(frame="")
@Description(description="username")
public Text username;
@Xpath(xpath={"//button[@id='pwdLoginSubmit']", "/html/body/form/div/div[3]/div/div[8]/button"})
@Frame(frame="")
@Description(description="pwdLoginSubmit")
public Click pwdLoginSubmit;
public login(BrowserEmulator be) { super(be); }
}
page层代码
import lazy.test.ui.browser.BrowserEmulator;
public class LoginRegisterBean {
private BrowserEmulator be;
Login loginBean = new Login(be);
//打开登陆页
public void openLoginURL(){
be.open("http://bj.sqyishi.com/user/login.htm");
}
//校验是否存在文字
public void expectTextCheck(String expectText){
be.expectTextExistOrNot(true, expectText, 3500);
}
//手机号输入校验
public void userNameCheck(String telephone, String expectText){
openLoginURL();
loginBean.username.input(userName);
loginBean.pwdLoginSubmit.click();
expectTextCheck(expectText);
}
}
数据驱动文件
1. Excel放在Data文件夹下,即根目录的/data/下面
2. Excel命名方式:测试类名.xls,如图中①
3. Excel的sheet命名方式:测试方法名,如图中②
4. Excel第一行为Map键值,如图中第一行
5. 最后一样必须以“#”号结尾,表示终止,如图中③
6. 可以使用第一列控制其是否运行,如图中④,第六行,不运行
Test层代码
package com.ebl.UIAutomation.test.loginRegister;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.Map;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import lazy.test.ui.browser.ExcelDataProvider;
public class LoginRegisterParamTest extends loginBaseTest{
//使用驱动数据运行测试用例
@Test(dataProvider = "dp" )
public void UsernameCheck(Map<String,String> data) {
if(data.get("isRun").equals("1")){//使用第一列控制其是否运行
loginPage.userNameCheck(data.get("telephone"), data.get("expectText"));
}
}
//根据类名、方法名,加载驱动数据
@DataProvider(name = "dp")
public Iterator<Object[]> dataFortestMethod(Method method) throws IOException {
return new ExcelDataProvider(this.getClass().getName(),method.getName());
}
}
运行
使用testng运行test:UsernameCheck
便会启动浏览器
打开登录页面
一行为一个case,按excel中顺序,向用户名框中填入telephone列的值,
点击登录,
校验页面上是否出现了expectText列的文字。
Web自动化框架LazyUI使用手册(8)--excel数据驱动详解(ExcelDataProvider)的更多相关文章
- Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)
概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...
- Web自动化框架LazyUI使用手册(2)--先跑起来再说(第一个测试用例-百度搜索)
作者:cryanimal QQ:164166060 上篇文章中,简要介绍了LazyUI框架,本文便来演示,如何从无到有快速搭建基于lazyUI的工程,并成功运行第一个测试用例. 本文以百度搜索为例,选 ...
- Web自动化框架LazyUI使用手册(1)--框架简介
作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...
- Web自动化框架LazyUI使用手册(5)--模板工程:LazyUI-template详解
概述: LazyUI-template: 提供Maven管理的,基于Spring+Testng的,包含常用浏览器driver的,方便连接各种数据库的java模板工程,并提供以百度搜索为例的第一个测试用 ...
- Web自动化框架LazyUI使用手册(4)--控件抓取工具Elements Extractor详解(批量抓取)
概述 前面的一篇博文详细介绍了单个控件抓取的设计思路&逻辑以及使用方法,本文将详述批量控件抓取功能. 批量抓取:打开一个web页面,遍历页面上所有能被抓取的元素,获得每个元素的iframe.和 ...
- Web自动化框架LazyUI使用手册(7)--浏览器常用操作API
LazyUI框架中,BrowserEmulator类提供了大量的浏览器操作,常用的API列举如下: 1. 基本操作 /** * Open the URL * 打开一个URL * @param ur ...
- Web自动化框架LazyUI使用手册(6)--8种控件对应的class,及可对其进行的操作
概述: 本文详述8种控件对应的class,及可对其进行的操作 回顾: 回顾一下,下文中的工具设计思路部分: http://blog.csdn.net/kaka1121/article/details/ ...
- APP自动化框架LazyAndroid使用手册(2)--元素自动抓取
作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...
- web自动化框架如何设计
web自动化框架如何设计po模式总结: 1. 页面对象模型:当页面特别多的时候,代码更好的维护 2. Po是pageObject设计模式,用来管理和维护一组web元素的对象库 3. 每一个page c ...
随机推荐
- Java之GC
Java之GC GC:GC 是JVM的垃圾回收器.与C/C++不同,java程序员无需考虑太多内存分配的位置,更不用考虑内存释放的机制,java对象内存的申请和释放都有JVM托管.JVM的内存释放机制 ...
- C#之FTP上传下载(一)
搭建FTP服务器 最近要实现这样一个功能:FTP服务器的上传和下载,搜集了一些资料,在c播客上看到昵称为"傻丫头和科技"的作者写的一篇文章写得挺好,有的地方个人觉得不是很详细,自己 ...
- [原创]手把手教你写网络爬虫(4):Scrapy入门
手把手教你写网络爬虫(4) 作者:拓海 摘要:从零开始写爬虫,初学者的速成指南! 封面: 上期我们理性的分析了为什么要学习Scrapy,理由只有一个,那就是免费,一分钱都不用花! 咦?怎么有人扔西红柿 ...
- [LeetCode] Employee Importance 员工重要度
You are given a data structure of employee information, which includes the employee's unique id, his ...
- [HNOI2014]江南乐
Description 小A是一个名副其实的狂热的回合制游戏玩家.在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏. 游戏的规则是这样的,首先给定一 ...
- UVA11795 Mega Man's Mission
状压dp #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> ...
- 【NOIP2016】天天爱跑步
题目描述 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.«天天爱跑步»是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一一棵包含 个结点 ...
- Codeforces Round #402 (Div. 1)
A题卡壳了,往离线倒着加那方面想了会儿,后来才发现方向错了,二十多分钟才过掉,过了B后做D,想法好像有点问题,最后只过两题,掉分了,差一点回紫. AC:AB Rank:173 Rating:2227- ...
- bzoj 4974: 字符串大师
Description 一个串T是S的循环节,当且仅当存在正整数k,使得S是T^k(即T重复k次)的前缀,比如abcd是abcdabcdab的循环节 .给定一个长度为n的仅由小写字符构成的字符串S,请 ...
- 习题 7-2 uva225(回溯)
题意:从(0.0)点出发,第一次走一步……第k次走k步,且每次必须转90度,不能走重复的点.求k次后回到出发点的所有情况.按最小字典序从小到大输出. 思路: 把所有坐标+220,保证其是正数,然后搜索 ...