Commit c615f189 authored by xiamengchen's avatar xiamengchen

秒杀限制需求合入

parent ca2bb3bf
...@@ -14,14 +14,12 @@ import org.testng.Assert; ...@@ -14,14 +14,12 @@ import org.testng.Assert;
import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.kjj.utils.ThreadSleepUtils.sleep; import static com.kjj.utils.ThreadSleepUtils.sleep;
public class SecondKill implements Authorization { public class SecondKill implements Authorization {
private List<Long> confIds;
@BeforeClass @BeforeClass
public void setUp(){ public void setUp(){
...@@ -638,7 +636,101 @@ public class SecondKill implements Authorization { ...@@ -638,7 +636,101 @@ public class SecondKill implements Authorization {
} }
} }
@Test(description = "删除已上架过的轮次", priority = 30) // 秒杀限制
@Test(description = "添加秒杀限制", priority = 30)
public void 添加秒杀限制() {
confIds = new ArrayList<>();
// 用户已成功下单0元秒杀商品
// 将0元秒杀商品和第二轮秒杀添加进限制组
confIds.add(IdMakeUtil.managerDecodeingId(ConfSecondKill.skIdThird));
confIds.add(IdMakeUtil.managerDecodeingId(ConfSecondKill.skIdSecond));
Map<String, Object> addLimitPar = new HashMap<>();
addLimitPar.put("confIds", confIds);
addLimitPar.put("liveId", LiveConstants.getValue(LiveConstants.StringKeyEnum.LIVE_ID.getKey()));
Response addLimitRes = network.postResponse(addLimitPar, BasicConfig.MANAGER_secondKillSaveLimitGroup);
try {
boolean data = addLimitRes.jsonPath().getBoolean("data");
Assert.assertTrue(data, network.message(addLimitPar, BasicConfig.MANAGER_secondKillSaveLimitGroup, "添加秒杀限制失败", addLimitRes.body().asString()));
}catch (NullPointerException e){
e.printStackTrace();
Assert.fail(network.message(addLimitPar, BasicConfig.MANAGER_secondKillSaveLimitGroup, "获取数据失败", addLimitRes.body().asString()));
}
}
@Test(description = "查询秒杀限制组", priority = 31)
public void 查询秒杀限制组() {
Map<String, Object> limitGroupListPar = new HashMap<>();
limitGroupListPar.put("liveId", LiveConstants.getValue(LiveConstants.StringKeyEnum.LIVE_ID.getKey()));
Response limitGroupListRes = network.getResponse(limitGroupListPar, BasicConfig.MANAGER_secondKillLimitGroupList);
try {
List<Object> data = limitGroupListRes.jsonPath().getList("data");
if (data.size() != confIds.size()){
Assert.fail(network.message(limitGroupListPar, BasicConfig.MANAGER_secondKillLimitGroupList, "秒杀限制组与预定配置不一致", limitGroupListRes.body().asString()));
}
for (int i = 0; i < data.size(); i++){
Assert.assertEquals(data.get(i).toString(), confIds.get(i).toString(), network.message(limitGroupListPar, BasicConfig.MANAGER_secondKillLimitGroupList, "秒杀限制组与预定配置不一致", limitGroupListRes.body().asString()));
}
}catch (NullPointerException e){
e.printStackTrace();
Assert.fail(network.message(limitGroupListPar, BasicConfig.MANAGER_secondKillLimitGroupList, "获取数据失败", limitGroupListRes.body().asString()));
}
}
@Test(description = "限制组限制用户下单", priority = 32)
public void 限制组限制用户下单() {
// 等待两分钟代理人释放第二轮次库存
ThreadSleepUtils.sleep(180000);
// 用户下单
visitorAuth();
Map<String, Object> orderPar = new HashMap<>();
orderPar.put("liveId", LiveConstants.getValue(LiveConstants.StringKeyEnum.ENCODE_LIVE_ID.getKey()));
orderPar.put("confId", ConfSecondKill.skIdSecond);
Response orderRes = network.postResponse(orderPar, BasicConfig.MOBILE_secondKill_goodsOrder);
try {
boolean data = orderRes.jsonPath().getBoolean("data");
Assert.assertTrue(data, network.message(orderPar, BasicConfig.MOBILE_secondKill_goodsOrder, "下单失败", orderRes.body().asString()));
}catch (NullPointerException e){
e.printStackTrace();
Assert.fail(network.message(orderPar, BasicConfig.MOBILE_secondKill_goodsOrder, "未获取到数据", orderRes.body().asString()));
}
Map<String, Object> orderResultPar = new HashMap<>();
orderResultPar.put("liveId", LiveConstants.getValue(LiveConstants.StringKeyEnum.ENCODE_LIVE_ID.getKey()));
orderResultPar.put("confId", ConfSecondKill.skIdSecond);
Response orderResultRes = null;
Object data = null;
int i = 0;
try {
// 轮训下单接口
while (data == null){
sleep(2000);
orderResultRes = network.getResponse(orderResultPar, BasicConfig.MOBILE_secondKill_goodsOrderResult);
data = orderResultRes.jsonPath().getJsonObject("data");
System.out.println("data: "+data);
i++;
if (i == 10){
Assert.fail(network.message(orderResultPar, BasicConfig.MOBILE_secondKill_goodsOrderResult, "轮训下单结果超过10次", orderResultRes.body().asString()));
}
}
int state = orderResultRes.jsonPath().getInt("data.state");
if (state == 2){
int code = orderResultRes.jsonPath().getInt("data.code");
if (code == 4){
System.out.println("失败原因code="+code);
} else {
Assert.assertEquals(code, 3, network.message(orderResultPar, BasicConfig.MOBILE_secondKill_goodsOrderResult, "失败原因不是被限制", orderResultRes.body().asString()));
}
}else {
Assert.fail(network.message(orderResultPar, BasicConfig.MOBILE_secondKill_goodsOrderResult, "用户下单未收到限制组限制", orderResultRes.body().asString()));
}
}catch (Exception e){
e.printStackTrace();
Assert.fail(network.message(orderResultPar, BasicConfig.MOBILE_secondKill_goodsOrderResult, "获取数据失败", orderResultRes.body().asString()));
}
}
@Test(description = "删除已上架过的轮次", priority = 33)
public void 已上架过的轮次无法删除() { public void 已上架过的轮次无法删除() {
long id = IdMakeUtil.managerDecodeingId(ConfSecondKill.skIdFirst); long id = IdMakeUtil.managerDecodeingId(ConfSecondKill.skIdFirst);
Map<String, Object> delSkPar = new HashMap<>(); Map<String, Object> delSkPar = new HashMap<>();
...@@ -657,7 +749,7 @@ public class SecondKill implements Authorization { ...@@ -657,7 +749,7 @@ public class SecondKill implements Authorization {
} }
} }
@Test(description = "用户成功支付", priority = 31) @Test(description = "用户成功支付", priority = 34)
public void 用户成功支付() { public void 用户成功支付() {
visitorAuth(); visitorAuth();
// 新建订单 // 新建订单
......
...@@ -138,6 +138,8 @@ public class BasicConfig { ...@@ -138,6 +138,8 @@ public class BasicConfig {
public static final String MANAGER_secondKillLists = MANAGER_HOST + "/kjy/manager/live/second/kill/goods/list"; public static final String MANAGER_secondKillLists = MANAGER_HOST + "/kjy/manager/live/second/kill/goods/list";
public static final String MANAGER_secondKillDel = MANAGER_HOST + "/kjy/manager/live/second/kill/goods/delete"; public static final String MANAGER_secondKillDel = MANAGER_HOST + "/kjy/manager/live/second/kill/goods/delete";
public static final String MANAGER_secondKillUpdate = MANAGER_HOST + "/kjy/manager/live/second/kill/goods/update"; public static final String MANAGER_secondKillUpdate = MANAGER_HOST + "/kjy/manager/live/second/kill/goods/update";
public static final String MANAGER_secondKillSaveLimitGroup = MANAGER_HOST + "/kjy/manager/live/second/kill/goods/saveLimitGroup";
public static final String MANAGER_secondKillLimitGroupList = MANAGER_HOST + "/kjy/manager/live/second/kill/goods/limitGroupList";
public static final String ANCHOR_secondKillSave = MOBILE_HOST + "/conf/live/second/kill/goods/save"; public static final String ANCHOR_secondKillSave = MOBILE_HOST + "/conf/live/second/kill/goods/save";
public static final String ANCHOR_secondKillLists = MOBILE_HOST + "/conf/live/second/kill/goods/list"; public static final String ANCHOR_secondKillLists = MOBILE_HOST + "/conf/live/second/kill/goods/list";
public static final String ANCHOR_secondKillUpdate = MOBILE_HOST + "/conf/live/second/kill/goods/update"; public static final String ANCHOR_secondKillUpdate = MOBILE_HOST + "/conf/live/second/kill/goods/update";
......
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