Commit aed5fc3d authored by xiongjunyi's avatar xiongjunyi

[modify:1.修改期望值校验功能,可按正则表达式校验,增加不等校验

        2.修改切面方法中的if错误逻辑,修改为else if
        3.用例执行结束增加打印所有res_map中变量到日志
        4.修改用例执行步骤,前置语句最先执行]
parent 157c5001
This diff is collapsed.
......@@ -32,12 +32,12 @@ public class IfConditionAspect {
log.info("控制器条件值为:" + string_var_map.get(conditions) + "," + "比较值为:" + expect);
log.info("控制器条件判断结果为:" + flag);
}
if(int_var_map.containsKey(conditions)){
else if(int_var_map.containsKey(conditions)){
flag = int_var_map.get(conditions).toString().equals(expect);
log.info("控制器条件值为:" + int_var_map.get(conditions).toString() + "," + "比较值为:" + expect);
log.info("控制器条件判断结果为:" + flag);
}
if(res_map.containsKey(conditions)){
else if(res_map.containsKey(conditions)){
flag = res_map.get(conditions).equals(expect);
log.info("控制器条件值为:" + res_map.get(conditions) + "," + "比较值为:" + expect);
log.info("控制器条件判断结果为:" + flag);
......@@ -57,12 +57,12 @@ public class IfConditionAspect {
log.info("控制器条件值为:" + string_var_map.get(conditions) + "," + "比较值为:" + expect);
log.info("控制器条件判断结果为:" + flag);
}
if(int_var_map.containsKey(conditions)){
else if(int_var_map.containsKey(conditions)){
flag = !int_var_map.get(conditions).toString().equals(expect);
log.info("控制器条件值为:" + int_var_map.get(conditions).toString() + "," + "比较值为:" + expect);
log.info("控制器条件判断结果为:" + flag);
}
if(res_map.containsKey(conditions)){
else if(res_map.containsKey(conditions)){
flag = !res_map.get(conditions).equals(expect);
log.info("控制器条件值为:" + res_map.get(conditions).toString() + "," + "比较值为:" + expect);
log.info("控制器条件判断结果为:" + flag);
......
......@@ -2,6 +2,7 @@ package com.miya.manning.framework.util;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
/**
* @ProjectName: MY_INTERFACE_TEST
......@@ -220,8 +221,9 @@ public class ParamsBuilt {
public static void main(String[] args) {
String a = "\"goodsId\":varg_data_0_records_0_goodsId";
a = a.replaceAll("varg_data_0_records_0_goodsId","8964");
System.out.println(a);
String regex = "门店未开启快递开关";
String origin = "门店未开启快递开关";
boolean flag = origin.matches(regex);
System.out.println(flag);
}
}
......@@ -18,6 +18,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -45,7 +46,7 @@ public class TestCaseUtil {
TestCase ts = new TestCase();
//按照用例约定格式,依次给Testcase对象各属性赋值
ts.setNo(Integer.valueOf(eachrow.getCell(0).getRawValue() == null ? "0" : eachrow.getCell(0).getRawValue() ));//设置用例组号
ts.setNo(Integer.valueOf(eachrow.getCell(0).getRawValue() == null ? "0" : eachrow.getCell(0).toString() ));//设置用例组号
ts.setTest_point(eachrow.getCell(1, Row.RETURN_NULL_AND_BLANK) == null ? "" : eachrow.getCell(1).toString());//设置测试点
ts.setStep_desc(eachrow.getCell(2, Row.RETURN_NULL_AND_BLANK) == null ? "" : eachrow.getCell(2).toString());//设置步骤描述
ts.setInterface_name(eachrow.getCell(3, Row.RETURN_NULL_AND_BLANK).toString());//设置url
......@@ -172,7 +173,46 @@ public class TestCaseUtil {
String[] split = expect.split(";");
//先按;分组,多个期望值一起校验
for(String each_expect : split){
String[] split1 = each_expect.split("=");
if(each_expect.matches(".*<>.*")){
String[] split1 = each_expect.split("<>");
logger.info(split1[0] + "采用不等校验");
if(!res_map.containsKey(split1[0])){
logger.error("响应中未获取到对应的变量:" + split1[0]);
return false;
}
else{
String true_value = res_map.get(split1[0]).toLowerCase();
String check_string = split1[1].toLowerCase();
flag = true_value.matches(check_string);
if(flag){
logger.info("校验模式:不等校验,根据条件:" + check_string + "匹配实际值" + true_value + ",校验结果:失败");
flag = false;
}else{
logger.info("校验模式:不等校验,根据条件:" + check_string + "匹配实际值" + true_value + ",校验结果:成功");
}
}
}
if(each_expect.matches(".*=.*")){
String[] split1 = each_expect.split("=");
logger.info(split1[0] + "采用相等校验");
if(!res_map.containsKey(split1[0])){
logger.error("响应中未获取到对应的变量:" + split1[0]);
return false;
}
else{
String true_value = res_map.get(split1[0]).toLowerCase();
String check_string = split1[1].toLowerCase();
flag = true_value.matches(check_string);
if(flag){
logger.info("校验模式:相等校验,根据条件:" + check_string + "匹配实际值" + true_value + ",校验结果:成功");
}else{
logger.info("校验模式:相等校验,根据条件:" + check_string + "匹配实际值" + true_value + ",校验结果:失败");
flag = false;
}
}
}
/*String[] split1 = each_expect.split("=");
if (split1[1].startsWith("*") && split1[1].endsWith("*")){
String check_string = split1[1].substring(1,split1[1].length()-2); //*abc*
logger.info(split1[0] + "采用通配符校验");
......@@ -196,7 +236,7 @@ public class TestCaseUtil {
}else{
logger.info(split1[0]+ "的期望值校验成功");
}
}
}*/
}
}
......
......@@ -73,7 +73,10 @@ public class Express {
@AfterClass
public void tearDown() {
logger.info("分页查询券接口测试结束!");
for (Map.Entry<String, String> entry : res_map.entrySet())
logger.info(entry.getKey() + ":" + entry.getValue());
}
@BeforeMethod
......@@ -83,6 +86,11 @@ public class Express {
@Test(dataProvider = "ex")
public void Express( TestCase testCase) throws Exception {
//前置语句最先执行
String pre_sql = testCase.getPre_sql();
String databasename = testCase.getDatabasename();
//1.处理前置语句,赋值给变量或者直接执行
TestCaseUtil.deal_pre_sql(pre_sql, string_var_map, int_var_map, res_map , databasename);
//检查是否有控制器,判断是否执行该用例
String condition_name = testCase.getCondition_name();
if(!condition_name.isEmpty()){
......@@ -99,10 +107,7 @@ public class Express {
List<Script> execScriptList = Scripts.stream().filter(x -> x.getScript_name().equals(testCase.getScript_name())).collect(Collectors.toList());
ToolUtil.ExecuteScript(execScriptList);
}
String pre_sql = testCase.getPre_sql();
String databasename = testCase.getDatabasename();
//1.处理前置语句,赋值给变量或者直接执行
TestCaseUtil.deal_pre_sql(pre_sql, string_var_map, int_var_map, res_map , databasename);
//用例执行部分
//2.设置请求头
Map<String, String> httpheadermap = new HashMap<>();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment