Commit 98acce22 authored by xiongjunyi's avatar xiongjunyi

add:第一个版本用例+测试数据提交

modify:1.解析excel单元格时,支持"aaa":["1","2"]类型的传参
       2.解析返回的json内容时,遇到纯数组对象类似"aaa":[17],可以正常解析存放变量到res_map中
       3.增加传参中支持运算符的功能
parent ab849450
......@@ -4,10 +4,11 @@ public enum DataRefTypeEnum {
Type_Object(0,"对象类型"),
Type_List(1,"数组类型"),
Type_List(1,"对象数组类型"),
Type_Integer(2,"整数类型"),
Type_normal(3,"普通类型"),
Type_bool(4,"布尔类型");
Type_bool(4,"布尔类型"),
Type_ArrayList(5,"数组类型");
private int typeId;
......
package com.miya.manning.enums;
public enum Symbol {
Type_plus("+","加法"),
Type_minus("-","减法"),
Type_multi("*","乘法"),
Type_divide("/","除法");
private String symbol;
private String desc;
Symbol(String symbol, String desc) {
this.symbol = symbol;
this.desc = desc;
}
public String getSymbol() {
return symbol;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package com.miya.manning.framework.util;
import com.miya.interfacetest.huihua.enums.DataRefTypeEnum;
import com.miya.manning.enums.DataRefTypeEnum;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
......@@ -151,7 +151,8 @@ public class ExcelUtil {
buffer.append("\"");
String header = header_row.getCell(j).toString();//每个字段单元格的内容
//Object类型字段 or Array类型字段 or Integer类型字段
if(header.contains("(Object)") || header.contains("(Array)") || header.contains("(Integer)") || header.contains("(bool)") ){
if(header.contains("(Object)") || header.contains("(Array)") || header.contains("(Integer)") || header.contains("(bool)") ||
header.contains("(ArrayList)")){
buffer.append(header.substring(0, header.lastIndexOf("(") ));
buffer.append("\"");
//String object = postdata(sheets, "1", "1")
......@@ -182,9 +183,10 @@ public class ExcelUtil {
buffer.append(reference_data);
}
}
else if(header.contains("(Integer)") || header.contains("(bool)")){
else if(header.contains("(Integer)") || header.contains("(bool)") || header.contains("(ArrayList)")){
//Integer字段不加引用数据组数,所以不能放上面的if分支里,单独拉出来
//考虑到该字段可能采用变量方式填入值,不采取直接转int的方式,而是不拼接""处理
//如果是纯数组类型的传参 例如 "excludeCalculateActivityTypes":["FULL-PACKAGE_PRICE"] 则直接拼接内容
//Double value = Double.valueOf(data_row.getCell(j).toString());
String value = data_row.getCell(j).toString();
if("".equals(value)){
......
......@@ -2,7 +2,7 @@ package com.miya.manning.framework.util;
/**
* @ProjectName: MY_INTERFACE_TEST
* @Package: com.miya.interfacetest.huihua.framework.util
* @Package: com.miya.manning.framework.util
* @ClassName: GPSUtil
* @Description: 定位距离计算工具类
* @Author: 梁振振
......
......@@ -8,7 +8,7 @@ import java.util.Map;
/**
* @ProjectName: MY_INTERFACE_TEST
* @Package: com.miya.interfacetest.huihua.framework.util
* @Package: com.miya.manning.framework.util
* @ClassName: 以http header中的参数作为键值对生成map,作为HTTPGet方法的入参
* @Description: java类作用描述
* @Author: 唐奇良
......@@ -54,7 +54,7 @@ public class HttpHeaderBuilt {
return headerMap;
}
public static Map<String,String> httpHeadBuiltHuihuaSaasB(Map<String,String> res_map){
public static Map<String,String> httpHeadBuiltManningsB(Map<String,String> res_map){
Map<String,String> httpheadermap = new HashMap<>();
httpheadermap.put("content-type","application/json");
httpheadermap.put("authorization", res_map.containsKey("varg_data_0_token")? res_map.get("varg_data_0_token") : "");
......@@ -64,20 +64,24 @@ public class HttpHeaderBuilt {
}
public static Map<String,String> httpHeadBuiltHuihuaSaasC(Map<String,String> string_var_map){
public static Map<String,String> httpHeadBuiltManningsC(Map<String,String> string_var_map){
Map<String,String> httpheadermap = new HashMap<>();
httpheadermap.put("hh-app","wx5e87437bdd346c77");
httpheadermap.put("hh-from","cocaCola");
httpheadermap.put("hh-version","v1.3.7");
httpheadermap.put("apppublishtype","1");
httpheadermap.put("hh-app","wxc836213220ab21fb");
httpheadermap.put("hh-from","149");
httpheadermap.put("hh-from-id","149");
httpheadermap.put("traceid","");
httpheadermap.put("hh-ci","saas-wechat-app");
httpheadermap.put("content-type","application/json");
httpheadermap.put("access_token", string_var_map.containsKey("varg_access_token")? string_var_map.get("varg_access_token") : "");
httpheadermap.put("authorization", string_var_map.containsKey("varg_access_token")? "bearer " + string_var_map.get("varg_access_token") : "");
httpheadermap.put("ONE-ID", "1408936455002181661");
httpheadermap.put("shareUid", "");
httpheadermap.put("sence","");
httpheadermap.put("userId","");
httpheadermap.put("c-user-id",string_var_map.containsKey("varg_user_id")? string_var_map.get("varg_user_id") : "");
httpheadermap.put("c-member-id",string_var_map.containsKey("varg_member_id")? string_var_map.get("varg_member_id") : "");
httpheadermap.put("c-bind-store-id",string_var_map.containsKey("varg_bind_store_id")? string_var_map.get("varg_bind_store_id") : "");
return httpheadermap;
}
}
......@@ -131,10 +131,19 @@ public class JsonTransfer {
}
}
}
else{
sb.append(jsonobject_str);//如果是这种类型的数组{"a":xxx,"b":[],"c":zzz},{"a":xxx,"b":[],"c":zzz,"d":7},则没有需要替换成"+"的"}"字符,则原封不动返回
}
return sb.toString();
}
return jsonobject_str;
}
public static void main(String[] args) {
ArrayInObject("{\"a\":xxx,\"b\":[7],\"c\":zzz},{\"a\":xxx,\"b\":[8],\"c\":zzz,\"d\":[{\"e\":1,\"f\":2},{\"e\":3,\"f\":4}]}");
//ArrayInObject("{\"onlyGift\":false,\"goodsId\":8694,\"goodsSort\":2411,\"storeGoodsId\":22217,\"brandId\":158,\"goodsCode\":\"111043528\",\"goodsName\":\"万宁饮用天然矿泉水600ml\",\"barcode\":\"9556135003344\",\"summary\":\"\",\"price\":250,\"stock\":75,\"detailIconUrls\":\"\",\"videoUrl\":\"\",\"display\":1,\"brandLabel\":null,\"expressTemplateId\":1,\"labelNameList\":[],\"memberPrice\":null,\"thirdCategoryIds\":[109],\"labelIds\":[17]},{\"onlyGift\":false,\"goodsId\":7569,\"goodsSort\":450,\"storeGoodsId\":13749,\"brandId\":3176,\"goodsCode\":\"111042119\",\"goodsName\":\"芙丝饮用天然矿泉水500ml\",\"barcode\":\"6970920140022\",\"summary\":\"\",\"price\":750,\"stock\":3,\"videoUrl\":\"\",\"display\":1,\"brandLabel\":null,\"expressTemplateId\":1,\"labelNameList\":[],\"memberPrice\":null,\"thirdCategoryIds\":[109],\"labelIds\":null}");
}
}
......
package com.miya.manning.framework.util;
import com.miya.manning.enums.Symbol;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
......@@ -41,6 +44,42 @@ public class ParamsBuilt {
if (int_var_map.size() != 0) {
for (Map.Entry<String, Integer> entry : int_var_map.entrySet()) {
params = params.replaceAll(entry.getKey(), String.valueOf(entry.getValue()));
if(params.contains(Symbol.Type_plus.getSymbol())){
BigDecimal sum = BigDecimal.valueOf(0);
String[] every = params.split(Symbol.Type_plus.getSymbol());//根据加号拆分每项
for(String addend : every){
sum = sum.add(BigDecimal.valueOf(Integer.parseInt(addend)));
sum.setScale(2,BigDecimal.ROUND_HALF_UP);//按照四舍五入取两位小数处理
}
params = String.valueOf(sum);
}
if(params.contains(Symbol.Type_minus.getSymbol())){
BigDecimal sum = BigDecimal.valueOf(0);
String[] every = params.split(Symbol.Type_minus.getSymbol());//根据减号拆分每项
for(String minuend :every){
sum = sum.subtract(BigDecimal.valueOf(Integer.parseInt(minuend)));
sum.setScale(2,BigDecimal.ROUND_HALF_UP);//按照四舍五入取两位小数处理
}
params = String.valueOf(sum);
}
if(params.contains(Symbol.Type_multi.getSymbol())){
BigDecimal sum = BigDecimal.valueOf(1);
String[] every = params.split(Symbol.Type_multi.getSymbol());//根据乘号拆分每项
for(String multiplicand :every){
sum = sum.multiply(BigDecimal.valueOf(Integer.parseInt(multiplicand)));
sum.setScale(2,BigDecimal.ROUND_HALF_UP);//按照四舍五入取两位小数处理
}
params = String.valueOf(sum);
}
if(params.contains(Symbol.Type_divide.getSymbol())){
String[] every = params.split(Symbol.Type_divide.getSymbol());//根据除号拆分每项
BigDecimal sum = BigDecimal.valueOf(Integer.parseInt(every[0]));
for(int i = 1 ; i< every.length; i ++){
sum = sum.divide(BigDecimal.valueOf(Integer.parseInt(every[i])));
sum.setScale(2,BigDecimal.ROUND_HALF_UP);
}
params = String.valueOf(sum);
}
}
}
if (string_var_map.size() != 0) {
......
......@@ -23,7 +23,7 @@ public class ScriptUtil {
}if(list_script.size() >1 ){
throw new Exception("匹配到多个同名脚本!");
}else{
Class<?> clz = Class.forName("com.miya.interfacetest.huihua.vo.ScriptFactory");
Class<?> clz = Class.forName("com.miya.manning.vo.ScriptFactory");
Script sc = list_script.get(0);
Method method = clz.getDeclaredMethod("create" + sc.getSrcipt_type() + "Script",String.class);
if(ScriptType.JAVA_SCRIPT.getType().equals(sc.getSrcipt_type())){
......
......@@ -196,7 +196,7 @@ public class TestCaseUtil {
else{
for(Map.Entry<String,Object> entry:query_data.get(0).entrySet()){
if(entry.getValue() instanceof BigInteger){
int_var_map.put(var,(Integer) entry.getValue());
int_var_map.put(var,(Integer.parseInt(entry.getValue().toString())));
}
else if(entry.getValue() instanceof Long){
Number value = (Number) entry.getValue();
......
package com.miya.manning.framework.util.dbutil;
import com.miya.interfacetest.huihua.framework.util.PropertiesHandle;
import com.miya.manning.framework.util.PropertiesHandle;
import java.sql.*;
import java.util.ArrayList;
......
package com.miya.manning.framework.util.redisutil;
import com.miya.interfacetest.huihua.framework.util.StringUtil;
import com.miya.manning.framework.util.StringUtil;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
......
......@@ -31,10 +31,10 @@ public class Mainprocess {
private String apiprefixUrl = StringUtil.brand_apiprefix;*/
//private String testUrl = "web-front/coupon/get-page";
//private String url_start = baseUrl + apiprefixUrl ;
private String url_start = "https://applets-dev.miyapay.com/";
private String url_start = "https://cs2-uat.mannings.com.cn/";
private String script_path = System.getProperty("user.dir") + File.separator + "target" + File.separator + "classes"
+ File.separator + "testcase" + File.separator + "Scripts" + File.separator + "Script.xls";
private String path = System.getProperty("user.dir") + File.separator + "target" + File.separator + "classes" + File.separator + "testcase" + File.separator + "shangcheng.xls";
private String path = System.getProperty("user.dir") + File.separator + "target" + File.separator + "classes" + File.separator + "testcase" + File.separator + "Mainprocess.xls";
//private String path = "D:\\autotest\\test_liucheng\\test_liucheng\\huihua_saas1.xls";
private Map<String,String> res_map = new TreeMap<>();
private static Map<String,Integer> int_var_map = new HashMap<>();
......@@ -75,7 +75,7 @@ public class Mainprocess {
@Test(dataProvider = "ex")
public void Cart( TestCase testCase) throws Exception {
public void Mainprocess( TestCase testCase) throws Exception {
String script_name = testCase.getScript_name();
if(!script_name.isEmpty()){
ScriptUtil.ExcuteScript(Scripts,testCase);
......@@ -88,10 +88,10 @@ public class Mainprocess {
//2.设置请求头
Map<String, String> httpheadermap = new HashMap<>();
if("C".equals(testCase.getPlatform())){
httpheadermap = HttpHeaderBuilt.httpHeadBuiltHuihuaSaasC(string_var_map);
httpheadermap = HttpHeaderBuilt.httpHeadBuiltManningsC(string_var_map);
}
if("B".equals(testCase.getPlatform())){
httpheadermap = HttpHeaderBuilt.httpHeadBuiltHuihuaSaasB(res_map);
httpheadermap = HttpHeaderBuilt.httpHeadBuiltManningsB(res_map);
}
logger.info("以下是请求头信息:");
......
......@@ -4,7 +4,7 @@
#sql_pwd=iDevAZ7vcqsFqIsTqTMy
#sql_host=jdbc:mysql://124.70.140.44:3306/huihua_saas?useUnicode=true&characterEncoding=utf-8
sql_host=jdbc:mysql://rm-wz9983yk40d7k47ooso.mysql.rds.aliyuncs.com:3306?serverTimezone=UTC
sql_host=jdbc:mysql://rm-wz9983yk40d7k47ooso.mysql.rds.aliyuncs.com/mannings_test?useUnicode=true&characterEncoding=utf-8&useSSL=false
sql_username=manning_test
sql_pwd=!QAZ2wsx
......
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