- { url : 10 }
- { param : 'name', normal : '张三,李四', abnormal : 'null' }
- { param : 'age', normal : '0,50', abnormal : '-10,50.5' }
- { param : 'sex', normal : '男,女', abnormal : 'null' }
- { jsonTemplate: '{
"name":"nameV",
"age":"ageV"
}' }
private static void getData() {
YamlReader reader = null;
String filePath = "/Users/mc/Documents/code/mctest/testng/src/main/java/com/test";
List<Map<String,String>> mapList = new ArrayList<>();
try {
reader = new YamlReader(new FileReader(filePath+"/testData.yml"));
mapList = (List<Map<String,String>>) reader.read();
log.info(String.format("\n\ntestData中数据为 =【 %s 】", mapList));
} catch (Exception e) {
e.printStackTrace();
}
for (Map<String,String> map : mapList) {
if (map.containsKey("url")) {
url = map.get("url");
}
if (map.containsKey("jsonTemplate")) {
jsonTemplate = map.get("jsonTemplate");
}
}
Map stringToMap = JSONObject.parseObject(jsonTemplate);
Map<String, String> request = new HashMap();
for (Map<String, String> paramMap : mapList) {
if (paramMap.containsKey("param")) {
String[] normals = paramMap.get("normal").split(",");
request.put(paramMap.get("param"), normals[0]);
}
}
for (Map<String, String> paramMap : mapList) {
if (paramMap.get("normal") != null) {
if (paramMap.get("normal").contains(",")) {
String[] normals = paramMap.get("normal").split(",");
for (String normal : normals) {
Map<String, String> temp = new HashMap();
temp.putAll(request);
temp.put(paramMap.get("param"), normal);
temp.put("expectCode", "0");
requestList.add(temp);
}
}
if (paramMap.get("abnormal") != null) {
String[] abnormals = paramMap.get("abnormal").split(",");
for (String abnormal : abnormals) {
Map<String, String> temp = new HashMap();
temp.putAll(request);
temp.put(paramMap.get("param"), abnormal);
temp.put("expectCode", "-1");
requestList.add(temp);
}
}
}
}
Yaml yaml = new Yaml();
try {
File f = new File(NoticeControllerProvideData.class.getResource("").getPath());
System.out.println(f);
yaml.dump(requestList, new FileWriter(filePath+"/testRequestParam.yaml"));
} catch (IOException e) {
e.printStackTrace();
}
log.info(String.format("\n\n组合后的数据为 =【 %s 】", requestList));
}
- {name: 张三, age: '0', sex: 男, expectCode: '0'}
- {name: 李四, age: '0', sex: 男, expectCode: '0'}
- {name: 'null', age: '0', sex: 男, expectCode: '-1'}
- {name: 张三, age: '0', sex: 男, expectCode: '0'}
- {name: 张三, age: '50', sex: 男, expectCode: '0'}
- {name: 张三, age: '-10', sex: 男, expectCode: '-1'}
- {name: 张三, age: '50.5', sex: 男, expectCode: '-1'}
- {name: 张三, age: '0', sex: 男, expectCode: '0'}
- {name: 张三, age: '0', sex: 女, expectCode: '0'}
- {name: 张三, age: '0', sex: 'null', expectCode: '-1'}
@DataProvider(name = "provideData")
private Object[][] provideData(){
String cookie = getCookie(new File("src/main/java/com/test/cookie")).replace("\n","");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
List<String> cookies =new ArrayList<String>();
cookies.add(cookie);
headers.put(HttpHeaders.COOKIE,cookies);
YamlReader reader = null;
List<Map> mapList = new ArrayList<>();
try {
reader = new YamlReader(new FileReader("src/main/java/com/test/testRequestParam.yaml"));
mapList = (List<Map>) reader.read();
} catch (Exception e) {
e.printStackTrace();
}
Object[][] objects =new Object[mapList.size()][1];
int numFlag = 0;
for (Map<String, String> map:mapList) {
Map<String, Integer> newMap = new HashMap<>();
for(Map.Entry<String, String> entry : map.entrySet()){
String mapKey = entry.getKey();
String v = map.get(mapKey);
if (v == null ||v.equals("null") || v.equals("")) {
newMap.put(mapKey,null);
}else {
newMap.put(mapKey,Integer.valueOf(v));
}
}
objects[numFlag][0] = new HttpEntity<Map<String, Integer>>(newMap, headers);
numFlag++;
}
return objects;
}
@Test(description = "testNg测试",dataProvider = "provideData",dataProviderClass = provideData.class)
public void testAddMessageJiedaibaoPush(HttpEntity<MultiValueMap<String, String>> request) {
String url = "http://xxx";
try {
String result = restTemplate.postForObject(url, request, String.class);
log.info(String.format("\n\n请求地址 =【 %s 】,\n\n请求入参 =【 %s 】, \n\n返回结果 =【 %s 】",url,JSON.toJSONString(request), result));
} catch (Exception e) {
e.printStackTrace();
}
}