九、封裝登錄POST請求、登錄後POST請求以及GET請求

一、封裝登錄後POST請求以及GET請求

/**
* 全局運行時環境參數管理器
*/
public static Map<String, String> BASE_GLOBAL_MAP;

/**
* 全局測試結果數據收集器
*/
public static JSONArray BASE_URI_COLLECTOR;

/**
* 全局請求處理器
*/
public static UcRESTTemplate 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 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;
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章