一、封装登录后POST请求以及GET请求

/**
* 全局运行时环境参数管理器
*/
public static Map<String, String> BASE_GLOBAL_MAP;

全局运行时环境参数管理器:BASE_GLOBAL_MAP

 /**
* 全局测试结果数据收集器
*/
public static JSONArray BASE_URI_COLLECTOR;

全局测试结果数据收集器:BASE_URI_COLLECTOR

 /**
* 全局请求处理器
*/
public static UcRESTTemplate BASE_REST;

全局请求处理器:BASE_REST

 /**
* 运行时日志文件路径
*/
public static String RUNTIM_FILE_PATH = ""; public static SalesRequestRunTimeVo lendRequest; public static CollectionRequestRunTimeVo collectionRequest;

运行时日志文件路径

import com.uc.qa.utils.encrypt.SJS;
import com.uc.qa.utils.map.TreeMap2MultiValueMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.util.MultiValueMap;
import org.testng.Reporter; import java.util.TreeMap; import static com.uc.qa.cases.assistant.BaseParameters.*; public class BaseRunner { final static Logger logger = LoggerFactory.getLogger(BaseParameters.class); /**
* 根据产品服务请求规则处理请求前的UTI
* @param map 原始请求参数
* @return MultiValueMap<String, Object> 处理后的请求报文体
*/
public static TreeMap<String, Object> dealWithUri(TreeMap<String, Object> map){
     //secret(根秘钥)已在Login中获取到参数,BASE_GLOBAL_MAP为全局参数收集器
if (BASE_GLOBAL_MAP.get("product").equalsIgnoreCase("当前系统名字") && null != BASE_GLOBAL_MAP.get("secret")){
try {
          //SJS在上一篇文章中已说明
map.put("sign", new SJS().getSJSInfo(map, BASE_GLOBAL_MAP.get("secret")));
} catch (Exception e) {
logger.error("当前执行产品【当前系统名字】请求加密过程处理失败");
e.printStackTrace();
}
}
return map;
} /**
* 发送 Rest Template 请求
* @param map 发送Rest请求前的UTI
* @param uri 发送Rest请求的目的接口
* @return ResponseEntity<String>响应报文体
*/
public static ResponseEntity<String> dealWithPost(TreeMap<String, Object> map, String uri) {
TreeMap2MultiValueMap treeMap2MultiValueMap = new TreeMap2MultiValueMap();
MultiValueMap<String, Object> body = treeMap2MultiValueMap.getMultiValueMap(dealWithUri(map));
     //BASE_URI_CLLOCTOR为全局测试结果收集器
BASE_URI_COLLECTOR.add(BASE_GLOBAL_MAP.get(uri));
Reporter.log("Request URL is : " + BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), true);
Reporter.log("Post Request Body is : " + body.toSingleValueMap().toString(), true);
final HttpEntity<?> request = new HttpEntity<>(body);
     //server为域名,uri为接口名
ResponseEntity<String> responseEntity = BASE_REST.postEntity(BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), request);
Reporter.log("Get Response : " + responseEntity.toString(), true);
return responseEntity;
} /**
* 发送 Rest Template Get 请求
* @param map 发送Rest请求前的UTI
* @param uri 发送Rest请求的目的接口
* @return ResponseEntity<String>响应报文体
*/
public static ResponseEntity<String> dealGetWithHeader(TreeMap<String, Object> map, String uri) {
MultiValueMap<String, Object> body = (new TreeMap2MultiValueMap()).getMultiValueMap(map);
BASE_URI_COLLECTOR.add(BASE_GLOBAL_MAP.get(uri));
Reporter.log("Request URL is : " + BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), true);
Reporter.log("Post Request Body is : " + body.toSingleValueMap().toString(), true); HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer " + collectionRequest.getToken());
final HttpEntity<?> request = new HttpEntity<>(body, headers);
ResponseEntity<String> responseEntity = BASE_REST.getEntity(BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), request, map);
Reporter.log("Get Response : " + responseEntity.toString(), true);
return responseEntity;
} /**
* 发送 Rest Template Post 请求
* @param map 发送Rest请求前的UTI
* @param uri 发送Rest请求的目的接口
* @return ResponseEntity<String>响应报文体
*/
public static ResponseEntity<String> dealPostWithHeader(TreeMap<String, Object> map, String uri) {
TreeMap2MultiValueMap treeMap2MultiValueMap = new TreeMap2MultiValueMap();
MultiValueMap<String, Object> body = treeMap2MultiValueMap.getMultiValueMap(map);
BASE_URI_COLLECTOR.add(BASE_GLOBAL_MAP.get(uri));
Reporter.log("Request URL is : " + BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), true);
Reporter.log("Post Request Body is : " + body.toSingleValueMap().toString(), true);
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer " + collectionRequest.getToken());
final HttpEntity<?> request = new HttpEntity<>(body, headers);
ResponseEntity<String> responseEntity = BASE_REST.postEntity(BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), request);
Reporter.log("Get Response : " + responseEntity.toString(), true);
return responseEntity;
} }

最新文章

  1. MDI窗体容器 权限设置
  2. 关于vco
  3. spring框架和junit框架结合使用案例
  4. java判定字符串中仅有数字和- 正则表达式匹配 *** 最爱那水货
  5. Future模式
  6. Kd-tree算法原理
  7. sgu 495. Kids and Prizes (简单概率dp 正推求期望)
  8. struts2-2.3.4.1的struts-default.xml源码
  9. 注意使用 BTREE 复合索引各字段的 ASC/DESC 以优化 order by 查询效率
  10. Service介绍(MediaPlayer应用)
  11. 【转】花开正当时,十四款120/128GB SSD横向评测
  12. python_tornado_session用户验证
  13. Java开发微服务为什么一定要选spring cloud?
  14. BZOJ3378:[USACO]MooFest 狂欢节(树状数组)
  15. HOWTO: 如何利用Avizo或Amira计算孔隙率(Porosity)
  16. 快速傅立叶变换(FFT)算法
  17. [转载]localStorage使用总结
  18. mint18.3 升级linux-libc-dev_4.4.0-102.132 导致外接显示屏无法旋转,设置分辨率
  19. 【转】关于在linux下清屏的几种技巧
  20. maven(3)------maven构建web项目详细步骤

热门文章

  1. Fescar锁和隔离级别的理解
  2. get获取后台数据
  3. java指定运行jar包中的其中一个main方法
  4. 第二章&#183; MySQL体系结构管理
  5. BLE 5协议栈-逻辑链路控制与适配协议层(L2CAP)
  6. python网络编程:TCP通讯模板、粘包及解决方案、自定义报头
  7. 在values中添加colors.xml
  8. QTP(12)
  9. Diagonal Walking v.2 CodeForces - 1036B (思维,贪心)
  10. Jenkins配置邮件信息