java自动化之自动化框架项目(第四天-常用变量解析到map)

1.实现目标

常用变量解析到map,方便后面解析初始化sql或者入参的时候对变量进行替换

2.添加工具类

VariableUtil.java

package com.syq.autotest.utils;import com.syq.autotest.entity.Variable;
import org.apache.log4j.Logger;import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;/*** @description* @author: Admin* @create: 2024/2/28 14:38*/
public class VariableUtil {public static Logger logger = Logger.getLogger(VariableUtil.class);// 存放变量和值的mappublic static Map<String, String> variableMap = new HashMap<String, String>();// 从对象列表variableList中获取变量和值,放到map中public static void loadVariablesToMap(List<Variable> variableList) {for (Variable variable : variableList){String name = variable.getName();String value = variable.getValue();variableMap.put(name,value);}}// 替换变量public static String variableSubstitution(String parameters) {// 获取所有变量名Set<String> names = variableMap.keySet();for (String name : names) {if (parameters.contains(name)){parameters = parameters.replace(name,variableMap.get(name));}}return parameters;}
}

3.修改@BeforeTest修饰的方法

调用VariableUtil工具类中方法(在BaseCase.java中)

@Parameters({ "excelPath", "dataSheetName", "variableSheetName"})@BeforeTestpublic void readDataFromExcel(@Optional("caseData/caseData-解决韧.xlsx") String excelPath, @Optional("case") String dataSheetName, @Optional("variables") String variableSheetName){logger.info("excelPath: " + excelPath);logger.info("dataSheetName: " + dataSheetName);logger.info("variableSheetName: " + variableSheetName);cases = ExcelUtil.loadExcel(excelPath, dataSheetName, CaseData.class);variables = ExcelUtil.loadExcel(excelPath, variableSheetName, Variable.class);// logger.info("读取文件获取到的cases对象:" + cases);// logger.info("读取文件获取到的variables对象:" + variables);VariableUtil.loadVariablesToMap(variables);Set<String> keys = VariableUtil.variableMap.keySet();for (String key : keys) {System.out.println(key + "=" + VariableUtil.variableMap.get(key));}}

4.结果演示

运行xml

通过结果可以看到,常用变量放到了map中

如需要代码,可在资源中自行下载,如有其他问题,可在评论区评论!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/498652.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型 拍照搜题

最近&#xff0c;发现一款小程序【问智通】&#xff0c;实现了拍照搜题结合AI大模型&#xff0c;省去了打字和敲数学公式向AI提问&#xff0c;完美的补充了其它拍照搜题平台拍不到&#xff0c;没解析等不足&#xff01;&#xff01;&#xff01; 小程序码&#xff1a; APP下载…

map和set的简单介绍

由于博主的能力有限&#xff0c;所以为了方便大家对于map和set的学习&#xff0c;我放一个官方的map和set的链接供大家参考&#xff1a; https://cplusplus.com/ 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque&#x…

四、《任务列表案例》后端程序实现和测试

本章概要 准备工作功能实现前后联调 4.1 准备工作 数据库脚本 CREATE TABLE schedule (id INT NOT NULL AUTO_INCREMENT,title VARCHAR(255) NOT NULL,completed BOOLEAN NOT NULL,PRIMARY KEY (id) );INSERT INTO schedule (title, completed) VALUES(学习java, true),(学…

Tkinter.Text控件中,文本存在某个关键字的将被高亮显示(标记颜色+字体加粗)

在Tkinter的Text控件中&#xff0c;要标记某个关键字并改变其颜色&#xff0c;你可以使用tag_add方法来给包含关键字的文本添加标签&#xff0c;然后使用tag_config方法来配置该标签的显示样式&#xff0c;包括前景色&#xff08;字体颜色&#xff09;和背景色等。以下是一个完…

《2024年网络钓鱼现状全球报告》解读

文章目录 前言一、报告解读二、最常见的与员工相关的网络安全漏洞三、员工的网络安全“责任认知”四、真实的安全意识培训与钓鱼演练覆盖率不足前言 Proofpoint年度报告简述基于对15个国家的7500名终端用户和1050名网络安全专业人士的调研。难能可贵的是,本报告不仅基于主观调…

leetcode — 动态规划 — 打家劫舍、完全平方数

1 打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个房…

Windows系统安装TortoiseSVN并结合内网穿透实现远程访问本地服务器——“cpolar内网穿透”

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…

4_相机透镜畸变

理论上讲&#xff0c;是可能定义一种透镜而不引入任何畸变的。然而现实世界没有完美的透镜。这主要是制造上的原因&#xff0c;因为制作一个“球形”透镜比制作一个数学上理想的透镜更容易。而且从机械方面也很难把透镜和成像仪保持平行。下面主要描述两种主要的透镜畸变并为他…

Java最全面试总结——7.MySQL篇

1、数据库的三范式是什么&#xff1f; 第一范式&#xff08;1st Normal Form, 1NF&#xff09;&#xff1a; 定义&#xff1a;确保数据库中的每个属性都是原子的&#xff0c;即不可再分的。应用&#xff1a;每个属性的值不能包含多个值或重复的值。目的&#xff1a;消除数据中的…

【数学】【深度优先搜索】【图论】【欧拉环路】753. 破解保险箱

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 数学 深度优先搜索 图论 欧拉环路 LeetCode753. 破解保险箱 有一个需要密码才能打开的保险箱。密码是 n 位数, 密码的每一位都是范围 [0, k - 1] 中的一个数字。 保险箱有一种特殊的密码校验方法&#xff0c;你可以随意…

第104讲:数据库分库分表的意义与实现策略(MyCat)

文章目录 1.分库分表的目的2.分库分表的拆分策略2.1.垂直拆分2.2.水平拆分 3.Mycat水平拆分的分片规则 1.分库分表的目的 互联网中的应用程序&#xff0c;随着公司的发展&#xff0c;应用系统的使用人数、数据量都再持续增长&#xff0c;数据库层面就会产生一定的瓶颈。 如果…

Qt篇——QTableWidget选中多行右键删除

效果如图&#xff1a; 代码如下&#xff1a; 头文件中&#xff1a; QTableWidgetItem *selectedItem; //表格被选中的一行 QMenu* originDataTableContextMenu; //表格右键菜单 QAction* originDataTableActionDel; //表格右键菜单…