热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

记一次通过json参数化做复杂参数接口自动化过程

请求参数如下复杂的请求体  这种复杂的参数体,最好通过将每个字段拆分成不同的子请求体,然后在请求的时候进行组装,上图的每个字段都可以单独拆分出来一个请求,最后可以拼接

请求参数如下



复杂的请求体

 

 

这种复杂的参数体,最好通过将每个字段拆分成不同的子请求体,然后在请求的时候进行组装,上图的每个字段都可以单独拆分出来一个请求,最后可以拼接出不同的业务流程。


先将请求json放置到本地,将需要参数化的值使用${}声明为一个变量

引入需要的jar包



com.fasterxml.jackson.core
jackson-annotations


com.fasterxml.jackson.core
jackson-databind


com.fasterxml.jackson.dataformat
jackson-dataformat-yaml


com.fasterxml.jackson.dataformat
jackson-dataformat-csv

通过Jackson typereference 泛型读取相关文件

读取json文件并替换变量

// 活动名称
public static HashMap getActivityName(String activityName){
MapperUtil> mapperUtil = new MapperUtil<>();
HashMap activityNameMap = mapperUtil.getReadValue(
"src/main/resources/data/basic-parameter/activityName.json");
log.info("读取的活动名称相关json"+activityNameMap);
HashMap newActivityName = new HashMap<>();
activityNameMap.forEach((
(s, o) -> { // 遍历value以 { 和} 结尾的值
log.info("未转换前" + o);
if (Objects.nonNull(o)) {
String value = o.toString();
if (value.startsWith("${") && value.endsWith("}")) { //获取到的结果为: ${activityName}
String value1 = StringUtils.stripStart(value, "${"); // 去掉${--> activityName}
String value2 = StringUtils.stripEnd(value1, "}"); // 去掉} -->activityName
if ("activityName".equals(value2)) {
o = activityName;
}
}
}
newActivityName.put(s, o);
}
));
log.info("遍历后"+activityNameMap);
return newActivityName;
}

测试

因为json中有值为null的参数,使用fastjson转换时,需要加 WriteMapNullValue

String jsOnString= JSONObject.toJSONString(bodyDepart, WriteMapNullValue);

名称已经被参数

 



推荐阅读
author-avatar
菠萝和尚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有