Webdriver 自动化测试使用XML+DOM4J维护测试数据
来源:互联网 发布:ubuntu无法读取源列表 编辑:程序博客网 时间:2024/05/18 02:46
测试工程添加如下XML文件,并在POM中引入DOM4J的包:
<dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6</version></dependency>
XML结构:
<?xml version="1.0" encoding="UTF-8"?><testdata><data-node id="AdminPortalLoginPage"><data key="UserName" value="admin"/><data key="PassWord" value="111111"/></data-node><data-node id="AddProductLibraryPage"><data key="ProLibName" value="测试产品库"/><data key="PLDescription" value="测试专用"/></data-node></testdata>
在properties配置文件中维护测试数据文件地址:
#测试数据文件夹地址testcase.testdata.path=test-data
使用DOM解析上述XML文件:
package ec.qa.autotest.ui.framework.init;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;import ec.qa.autotest.ui.framework.utility.PropertiesUtil;/** * @author xin.wang * 解析XML文件 */public class ParseDataXml {/** * XML文件节点名及属性名 */private static String testDataFielsuffix = ".xml";private static String dataNodeTag = "data-node";private static String dataNodeID = "id";private static String dataTag = "data";private static String dataKey = "key";private static String dataValue = "value";public static HashMap<String, String> getDataNode(String dataNodeIds) throws DocumentException {if(null == dataNodeIds){return null;}String[] dataNodeId = dataNodeIds.split(",");HashSet<String> nodeSet = new HashSet<String>();for (String str : dataNodeId) {nodeSet.add(str);}HashMap<String, String> dataMap = new HashMap<String, String>();ArrayList<File> fs = InitPropertiesUtil.getConfigFiles(new File(PropertiesUtil.getProValue("testcase.testdata.path")), testDataFielsuffix);for (File f : fs) {setDataNodeMapFromFile(f, nodeSet, dataMap);}return dataMap;}@SuppressWarnings("unchecked")public static void setDataNodeMapFromFile(File f, HashSet<String> nodeSet, HashMap<String, String> dataMap)throws DocumentException {SAXReader saxReader = new SAXReader();Document document = saxReader.read(f);Element root = document.getRootElement();List<Element> childList = root.elements(dataNodeTag);for (Element e : childList) {if (nodeSet.contains(e.attributeValue(dataNodeID))) {List<Element> dataList = e.elements(dataTag);for (Element de : dataList) {dataMap.put(de.attributeValue(dataKey), de.attributeValue(dataValue));}nodeSet.remove(e.attributeValue(dataNodeID));}}}}
以上 setDataNodeMapFromFile 为解析XML文件主要逻辑,getDataNode 为获取数据节点方法
测试用例调用此方法获取指定ID的数据节点:
public LoginInfo getLoginInfo() throws DocumentException {HashMap<String, String> dataMap = ParseDataXml.getDataNode("AdminPortalLoginPage");info = new LoginInfo();info.setName(dataMap.get("UserName"));info.setPapassword(dataMap.get("PassWord"));return info;}
或者结合之前的自动注入方式 在测试用例中自动注入当前测试用例需要的数据节点:
如何实现自动注入详见:http://blog.csdn.net/wangxin1982314/article/details/50221641
@DataObject(DataNode = "AdminPortalLoginPage")private HashMap<String, String> dataMap;public LoginInfo getLoginInfo() {info.setName(dataMap.get("UserName"));info.setPapassword(dataMap.get("PassWord"));
0 0
- Webdriver 自动化测试使用XML+DOM4J维护测试数据
- 自动化测试数据模拟测试
- python3里使用selenium webdriver自动化测试
- 使用selenium和webdriver进行自动化测试
- 使用Webdriver进行自动化测试--ljw
- webdriver 自动化测试
- 自动化测试--selenium-webDriver
- webdriver自动化测试
- 自动化测试之测试数据准备
- Webdriver UI自动化测试使用mybatis访问数据库
- selenium+python自动化测试(二)--使用webdriver操作浏览器
- 自动化测试selenium webdriver启动
- Web自动化测试之WebDriver
- Webdriver Ui自动化测试,使用工厂方法生产不同浏览器的webdriver实例
- 自动化测试数据驱动之xml文件读取
- 自动化测试的维护问题
- 自动化测试工具 Selenium WebDriver 入门教程
- selenium webdriver junit自动化测试架构
- Qt,pro文件详解
- Hadoop集群节点的动态增加与删除
- updatedb与locate
- Sublime
- 在Mac下用pip安装Django过程介绍
- Webdriver 自动化测试使用XML+DOM4J维护测试数据
- $.ajax()方法详解
- Eclipse设置护眼背景色及字体
- Spring 定时监听配置
- ES6--set集合和WeakSet集合
- Hbase中常用命令用法
- 读什么——让天下没有被埋没的好书
- Android Service 之三(Bind Service, 继承自 Binder 类)
- Android Context完全解析