Commit ef8c8b04 authored by 张艳玲's avatar 张艳玲

新增

parent 633fc37f
......@@ -43,63 +43,62 @@ public class LiveMaterial implements AdminAuthorization {
Assert.assertTrue(data, network.message(saveOrUpdateParam, BasicConfig.MANAGER_SAVEORUPDATE6, "添加奖品失败", saveOrUpdatePes.body().asString()));
}
@Test(description = "查询福利并删除", priority = 2)
public void 查询福利并删除() {
@Test(description = "查询福利并删除", priority = 2)
public void 查询福利并删除() {
Map<String, Object> params = new HashMap<>();
params.put("companyId", 101);
params.put("pageIndex", 1);
params.put("pageSize", 1);
Map<String, Object> params = new HashMap<>();
params.put("companyId", 101);
params.put("pageIndex", 1);
params.put("pageSize", 1);
Response response = network.getResponse(params, BasicConfig.MANAGER_WELFARELIST);
WelfareListBean data1 = JsonUtil.parseResponseToBean(response, WelfareListBean.class);
Response response = network.getResponse(params, BasicConfig.MANAGER_WELFARELIST);
WelfareListBean data1 = JsonUtil.parseResponseToBean(response, WelfareListBean.class);
if(data1.getTotalCount()>0)
{
WelfareBean bean= data1.getList().get(0);
Assert.assertNotNull(bean, network.message(params, BasicConfig.MANAGER_WELFARELIST, "查询福利失败", response.body().asString()));
if (data1.getTotalCount() > 0) {
WelfareBean bean = data1.getList().get(0);
Assert.assertNotNull(bean, network.message(params, BasicConfig.MANAGER_WELFARELIST, "查询福利失败", response.body().asString()));
//删除福利
int id= bean.getId();
//删除福利
int id = bean.getId();
Map<String, Object> delParam = new HashMap<>();
delParam.put("id",id );
Response delRes = network.postResponse(delParam, BasicConfig.MANAGER_DEL);
boolean data2 = delRes.jsonPath().getBoolean("data");
System.out.println(data2);
Assert.assertTrue(data2, network.message(delParam, BasicConfig.MANAGER_DEL, "删除福利失败", delRes.body().asString()));
}
delParam.put("id", id);
Response delRes = network.postResponse(delParam, BasicConfig.MANAGER_DEL);
boolean data2 = delRes.jsonPath().getBoolean("data");
System.out.println(data2);
Assert.assertTrue(data2, network.message(delParam, BasicConfig.MANAGER_DEL, "删除福利失败", delRes.body().asString()));
}
}
//添加投票
@Test(description = "添加投票", priority = 3)
public void 添加投票() {
Map<String, Object> choiceParam = new HashMap<>();
choiceParam.put("companyId", 101);
choiceParam.put("question", "投票测试一");
List<VoteListBean> votes = new ArrayList<>();
VoteListBean vote = new VoteListBean();
vote.setAnswer("选项一");
vote.setRelationResourceId(358);
VoteBean vote1 = new VoteBean();
vote1.setId(358);
vote1.setName("免费领取");
vote1.setResourceType(11);
vote.setRelationResource(vote1);
votes.add(vote);
VoteListBean vote2 = new VoteListBean();
vote2.setAnswer("选项二");
votes.add(vote2);
choiceParam.put("answerList", votes);
Response choiceRes = network.postResponse(choiceParam, BasicConfig.MANAGER_CHOICE);
Boolean data3 = choiceRes.jsonPath().getBoolean("data");
System.out.println(data3);
Assert.assertTrue(data3, network.message(choiceParam, BasicConfig.MANAGER_CHOICE, "投票创建失败", choiceRes.body().asString()));
//添加投票
@Test(description = "添加投票", priority = 3)
public void 添加投票() {
Map<String, Object> choiceParam = new HashMap<>();
choiceParam.put("companyId", 101);
choiceParam.put("question", "投票测试一");
List<VoteListBean> votes = new ArrayList<>();
VoteListBean vote = new VoteListBean();
vote.setAnswer("选项一");
vote.setRelationResourceId(358);
VoteBean vote1 = new VoteBean();
vote1.setId(358);
vote1.setName("免费领取");
vote1.setResourceType(11);
vote.setRelationResource(vote1);
votes.add(vote);
VoteListBean vote2 = new VoteListBean();
vote2.setAnswer("选项二");
votes.add(vote2);
choiceParam.put("answerList", votes);
Response choiceRes = network.postResponse(choiceParam, BasicConfig.MANAGER_CHOICE);
Boolean data3 = choiceRes.jsonPath().getBoolean("data");
System.out.println(data3);
Assert.assertTrue(data3, network.message(choiceParam, BasicConfig.MANAGER_CHOICE, "投票创建失败", choiceRes.body().asString()));
}
}
@Test(description = "查询投票并删除", priority = 4)
public void 查询投票并删除() {
......@@ -112,15 +111,14 @@ public class LiveMaterial implements AdminAuthorization {
Response choiceListRes = network.getResponse(choiceListPram, BasicConfig.MANAGER_GETLIST);
WelfareListBean data1 = JsonUtil.parseResponseToBean(choiceListRes, WelfareListBean.class);
if(data1.getTotalCount()>0)
{
WelfareBean bean= data1.getList().get(0);
if (data1.getTotalCount() > 0) {
WelfareBean bean = data1.getList().get(0);
Assert.assertNotNull(bean, network.message(choiceListPram, BasicConfig.MANAGER_GETLIST, "查询投票失败", choiceListRes.body().asString()));
//删除投票
int id=bean.getId();
int id = bean.getId();
Map<String, Object> delParam = new HashMap<>();
delParam.put("id",id );
delParam.put("id", id);
Response delRes = network.postResponse(delParam, BasicConfig.MANAGER_DELCHOICE);
boolean data4 = delRes.jsonPath().getBoolean("data");
System.out.println(data4);
......@@ -154,17 +152,16 @@ public class LiveMaterial implements AdminAuthorization {
Response question1Res = network.getResponse(question1Param, BasicConfig.MANAGER_LIST1);
WelfareListBean data1 = JsonUtil.parseResponseToBean(question1Res, WelfareListBean.class);
if(data1.getTotalCount()>0)
{
WelfareBean bean= data1.getList().get(0);
if (data1.getTotalCount() > 0) {
WelfareBean bean = data1.getList().get(0);
Assert.assertNotNull(bean, network.message(question1Param, BasicConfig.MANAGER_LIST1, "查询福利失败", question1Res.body().asString()));
//删除问题
int id=bean.getId();
int id = bean.getId();
Map<String, Object> delParam = new HashMap<>();
delParam.put("id",id );
delParam.put("id", id);
Response delRes = network.postResponse(delParam, BasicConfig.MANAGER_DEL1);
boolean data6= delRes.jsonPath().getBoolean("data");
boolean data6 = delRes.jsonPath().getBoolean("data");
System.out.println(data6);
Assert.assertTrue(data6, network.message(delParam, BasicConfig.MANAGER_DEL1, "删除问题失败", delRes.body().asString()));
......@@ -202,17 +199,16 @@ public class LiveMaterial implements AdminAuthorization {
Response imageTextRes = network.getResponse(imageTextParam, BasicConfig.MANAGER_RESOURCELIST);
WelfareListBean data1 = JsonUtil.parseResponseToBean(imageTextRes, WelfareListBean.class);
if(data1.getTotalCount()>0)
{
WelfareBean bean= data1.getList().get(0);
if (data1.getTotalCount() > 0) {
WelfareBean bean = data1.getList().get(0);
Assert.assertNotNull(bean, network.message(imageTextParam, BasicConfig.MANAGER_RESOURCELIST, "查询图文失败", imageTextRes.body().asString()));
//删除图文权益
int id=bean.getId();
//删除图文
int id = bean.getId();
Map<String, Object> delResourceParam = new HashMap<>();
delResourceParam.put("id",id );
delResourceParam.put("id", id);
Response elResourceRes = network.postResponse(delResourceParam, BasicConfig.MANAGER_GELRESOURCE);
boolean data8= elResourceRes.jsonPath().getBoolean("data");
boolean data8 = elResourceRes.jsonPath().getBoolean("data");
System.out.println(data8);
Assert.assertTrue(data8, network.message(delResourceParam, BasicConfig.MANAGER_GELRESOURCE, "删除图文失败", elResourceRes.body().asString()));
......@@ -248,19 +244,19 @@ public class LiveMaterial implements AdminAuthorization {
linkParam.put("resourceTypeList", 9);
Response linkRes = network.getResponse(linkParam, BasicConfig.MANAGER_RESOURCELIST);
System.out.println(JSON.toJSON(linkRes.jsonPath()));
WelfareListBean data1 = JsonUtil.parseResponseToBean(linkRes, WelfareListBean.class);
if(data1.getTotalCount()>0)
{
WelfareBean bean= data1.getList().get(0);
if (data1.getTotalCount() > 0) {
WelfareBean bean = data1.getList().get(0);
Assert.assertNotNull(bean, network.message(linkParam, BasicConfig.MANAGER_RESOURCELIST, "查询链接失败", linkRes.body().asString()));
//删除链接权益
int id=bean.getId();
//删除链接
int id = bean.getId();
Map<String, Object> delResourceParam = new HashMap<>();
delResourceParam.put("id",id );
delResourceParam.put("id", id);
Response elResourceRes = network.postResponse(delResourceParam, BasicConfig.MANAGER_GELRESOURCE);
boolean data10= elResourceRes.jsonPath().getBoolean("data");
boolean data10 = elResourceRes.jsonPath().getBoolean("data");
System.out.println(data10);
Assert.assertTrue(data10, network.message(delResourceParam, BasicConfig.MANAGER_GELRESOURCE, "删除链接失败", elResourceRes.body().asString()));
......@@ -269,6 +265,154 @@ public class LiveMaterial implements AdminAuthorization {
}
@Test(description = "添加表单", priority = 11)
public void 添加表单() {
Map<String, Object> formParam = new HashMap<>();
formParam.put("companyId", 101);
formParam.put("resourceTitle", "表单");
formParam.put("resourceButtonTitle", "我要报名");
formParam.put("resourcePicturesArr", Arrays.asList("https://yun.dui88.com/kjy/image/20210306/1615033326937.jpg"));
formParam.put("resourceImg", "https://yun.dui88.com/kjy/image/20210306/1615033315608.jpeg");
formParam.put("formBanner", "https://yun.dui88.com/kjy/image/20210306/1615033326937.jpg");
formParam.put("fieldIds", "1,2");
Response formRes = network.postResponse(formParam, BasicConfig.MANAGER_FORM);
Object data11 = formRes.jsonPath().getJsonObject("data");
System.out.println(data11);
Assert.assertNotNull(data11, network.message(formParam, BasicConfig.MANAGER_FORM, "新增表单失败", formRes.body().asString()));
}
@Test(description = "查询表单并删除", priority = 12)
public void 查询表单并删除() {
Map<String, Object> form1Param = new HashMap<>();
form1Param.put("companyId", 101);
form1Param.put("pageIndex", 1);
form1Param.put("pageSize", 1);
form1Param.put("resourceTypeList", 12);
Response linkRes = network.getResponse(form1Param, BasicConfig.MANAGER_RESOURCELIST);
WelfareListBean data1 = JsonUtil.parseResponseToBean(linkRes, WelfareListBean.class);
if (data1.getTotalCount() > 0) {
WelfareBean bean = data1.getList().get(0);
Assert.assertNotNull(bean, network.message(form1Param, BasicConfig.MANAGER_RESOURCELIST, "查询表单失败", linkRes.body().asString()));
//删除表单
int id = bean.getId();
Map<String, Object> delResourceParam = new HashMap<>();
delResourceParam.put("id", id);
Response elResourceRes = network.postResponse(delResourceParam, BasicConfig.MANAGER_GELRESOURCE);
boolean data12 = elResourceRes.jsonPath().getBoolean("data");
System.out.println(data12);
Assert.assertTrue(data12, network.message(delResourceParam, BasicConfig.MANAGER_GELRESOURCE, "删除链接失败", elResourceRes.body().asString()));
}
}
@Test(description = "免费领资料", priority = 13)
public void 免费领资料() {
Map<String, Object> freeParam = new HashMap<>();
freeParam.put("companyId", 101);
freeParam.put("resourceTitle", "免费领资料");
freeParam.put("resourceButtonTitle", "领取资料");
freeParam.put("resourcePicturesArr", Arrays.asList("https://yun.dui88.com/kjy/image/20210306/1615033326937.jpg"));
freeParam.put("resourceImg", "https://yun.dui88.com/kjy/image/20210306/1615033315608.jpeg");
freeParam.put("resourcePictures", "https://yun.dui88.com/kjy/image/20210306/1615039670425.jpg");
Response FreeRes = network.postResponse(freeParam, BasicConfig.MANAGER_FREE);
Object data13 = FreeRes.jsonPath().getJsonObject("data");
System.out.println(data13);
Assert.assertNotNull(data13, network.message(freeParam, BasicConfig.MANAGER_FREE, "新增免费资料失败", FreeRes.body().asString()));
}
@Test(description = "删除免费领资料", priority = 14)
public void 删除免费领资料() {
Map<String, Object> form1Param = new HashMap<>();
form1Param.put("companyId", 101);
form1Param.put("pageIndex", 1);
form1Param.put("pageSize", 1);
form1Param.put("resourceTypeList", 11);
Response linkRes = network.getResponse(form1Param, BasicConfig.MANAGER_RESOURCELIST);
WelfareListBean data1 = JsonUtil.parseResponseToBean(linkRes, WelfareListBean.class);
if (data1.getTotalCount() > 0) {
WelfareBean bean = data1.getList().get(0);
Assert.assertNotNull(bean, network.message(form1Param, BasicConfig.MANAGER_RESOURCELIST, "查询免费领资料失败", linkRes.body().asString()));
//删除表单
int id = bean.getId();
Map<String, Object> delResourceParam = new HashMap<>();
delResourceParam.put("id", id);
Response elResourceRes = network.postResponse(delResourceParam, BasicConfig.MANAGER_GELRESOURCE);
boolean data14 = elResourceRes.jsonPath().getBoolean("data");
System.out.println(data14);
Assert.assertTrue(data14, network.message(delResourceParam, BasicConfig.MANAGER_GELRESOURCE, "删除免费领资料失败", elResourceRes.body().asString()));
}
}
@Test(description = "秒薪测试", priority = 15)
public void 秒薪测试() {
Map<String, Object> testParam = new HashMap<>();
testParam.put("companyId", 101);
testParam.put("clueType", 1);
testParam.put("mainButtonTitle", "领取门票");
testParam.put("resourcePicturesArr", Arrays.asList("https://yun.dui88.com/kjy/image/20210306/1615033326937.jpg"));
testParam.put("resourceImg", "https://yun.dui88.com/kjy/image/20210306/1615033315608.jpeg");
testParam.put("resourceTitle", "秒薪测试");
testParam.put("testType", 1);
testParam.put("tradeIntroducePictures", "https://yun.dui88.com/kjy/image/20210306/1615040918512.jpeg");
Response testRes = network.postResponse(testParam, BasicConfig.MANAGER_FREE);
Object data15 = testRes.jsonPath().getJsonObject("data");
System.out.println(data15);
Assert.assertNotNull(data15, network.message(testParam, BasicConfig.MANAGER_FREE, "新增免费资料失败", testRes.body().asString()));
}
@Test(description = "删除秒薪测试", priority = 16)
public void 删除秒薪测试() {
Map<String, Object> test1Param = new HashMap<>();
test1Param.put("companyId", 101);
test1Param.put("pageIndex", 1);
test1Param.put("pageSize", 1);
test1Param.put("resourceTypeList", 13);
Response test1Res = network.getResponse(test1Param, BasicConfig.MANAGER_RESOURCELIST);
WelfareListBean data1 = JsonUtil.parseResponseToBean(test1Res, WelfareListBean.class);
if (data1.getTotalCount() > 0) {
WelfareBean bean = data1.getList().get(0);
Assert.assertNotNull(bean, network.message(test1Param, BasicConfig.MANAGER_RESOURCELIST, "查询测试失败", test1Res.body().asString()));
int id = bean.getId();
Map<String, Object> delResourceParam = new HashMap<>();
delResourceParam.put("id", id);
Response elResourceRes = network.postResponse(delResourceParam, BasicConfig.MANAGER_GELRESOURCE);
boolean data16 = elResourceRes.jsonPath().getBoolean("data");
System.out.println(data16);
Assert.assertTrue(data16, network.message(delResourceParam, BasicConfig.MANAGER_GELRESOURCE, "删除测试失败", elResourceRes.body().asString()));
}
}
}
......@@ -8,7 +8,6 @@ import com.kjj.utils.BaseUtils;
import io.restassured.response.Response;
import org.apache.commons.lang3.time.DateUtils;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
......@@ -34,15 +33,15 @@ public class SaveAndUpdate implements AdminAuthorization {
saveAndUpdateParam.put("welfareUrl", "https://streamimg.kjjcrm.com/kjy/image/20210201/62c25dcb3b9b4d269a74894e4255a193.jpg");
saveAndUpdateParam.put("coverUrl", "https://streamimg.kjjcrm.com/kjy/image/20210201/d4093b24aaca49da8f0e3e276721feea.jpg");
saveAndUpdateParam.put("mpShareUrl", "https://streamimg.kjjcrm.com/kjy/image/20210201/182f3659e39b4ea6898af781cc6344a1.jpg");
saveAndUpdateParam.put("title", "营业部公司直播间");
saveAndUpdateParam.put("mpShareTitle", "营业部公司直播间");
saveAndUpdateParam.put("title", "自动化直播");
saveAndUpdateParam.put("mpShareTitle", "自动化直播");
saveAndUpdateParam.put("companyId", 101);
long noticeTime = DateUtils.addHours(new Date(), 2).getTime();
long broadcastTime = DateUtils.addHours(new Date(), 5).getTime();
saveAndUpdateParam.put("noticeTime", noticeTime);
saveAndUpdateParam.put("broadcastTime", broadcastTime);
saveAndUpdateParam.put("shareContent", "营业部公司直播间");
saveAndUpdateParam.put("shareContent", "自动化直播");
saveAndUpdateParam.put("shelfStatus", "2");
saveAndUpdateParam.put("secondPoster", "https://streamimg.kjjcrm.com/kjy/image/20210201/cc999ebde48e49f99ac3f0d93480453f.jpg");
......@@ -52,20 +51,9 @@ public class SaveAndUpdate implements AdminAuthorization {
Assert.assertNotNull(liveID, network.message(saveAndUpdateParam, BasicConfig.MANAGER_SAVEANDUPDATE, "新增直播失败", response.body().asString()));
}
@Test(description = "查询直播配置", priority = 2)
public void 查询直播配置() {
Map<String, Object> params = new HashMap<>();
params.put("liveId", liveID);
Response response = network.getResponse(params, BasicConfig.MANAGER_GETCONFDETAIL);
Object data = response.jsonPath().getJsonObject("data");
System.out.println(data);
Assert.assertNotNull(data, network.message(params, BasicConfig.MANAGER_GETCONFDETAIL, "查询配置失败", response.body().asString()));
}
@Test(description = "添加基础配置", priority = 3)
public void 添加基础配置() {
@Test(description = "单场红包配置", priority = 3)
public void 单场红包配置() {
//单场红包限额
Map<String, Object> maxAmountParam = new HashMap<>();
maxAmountParam.put("liveId", liveID);
......@@ -76,17 +64,22 @@ public class SaveAndUpdate implements AdminAuthorization {
System.out.println(data);
Assert.assertTrue(data, network.message(maxAmountParam, BasicConfig.MANAGER_SAVEORUPDATEMAXAMOUNT, "单场红包限额配置失败", maxAmountRes.body().asString()));
//展示红包金额
Map<String, Object> saveOrUpdateShowAmountParam = new HashMap<>();
saveOrUpdateShowAmountParam.put("liveId", liveID);
saveOrUpdateShowAmountParam.put("showAmount", 100000);
Response saveOrUpdateShowAmountRes = network.postResponse(saveOrUpdateShowAmountParam, BasicConfig.MANAGER_SAVEORUPDATESHOWEAMOUNT);
boolean data1 = saveOrUpdateShowAmountRes.jsonPath().getBoolean("data");
System.out.println(data1);
Assert.assertTrue(data1, network.message(saveOrUpdateShowAmountParam, BasicConfig.MANAGER_SAVEORUPDATESHOWEAMOUNT, "展示红包配置失败", saveOrUpdateShowAmountRes.body().asString()));
//互动问题
}
@Test(description = "展示红包金额", priority = 4)
public void 展示红包金额() {
//展示红包金额
Map<String, Object> saveOrUpdateShowAmountParam = new HashMap<>();
saveOrUpdateShowAmountParam.put("liveId", liveID);
saveOrUpdateShowAmountParam.put("showAmount", 100000);
Response saveOrUpdateShowAmountRes = network.postResponse(saveOrUpdateShowAmountParam, BasicConfig.MANAGER_SAVEORUPDATESHOWEAMOUNT);
boolean data1 = saveOrUpdateShowAmountRes.jsonPath().getBoolean("data");
System.out.println(data1);
Assert.assertTrue(data1, network.message(saveOrUpdateShowAmountParam, BasicConfig.MANAGER_SAVEORUPDATESHOWEAMOUNT, "展示红包配置失败", saveOrUpdateShowAmountRes.body().asString()));
}
@Test(description = "互动问题", priority = 5)
public void 互动问题() {
Map<String, Object> saveOrUpdateParam = new HashMap<>();
saveOrUpdateParam.put("liveId", liveID);
List<Long> ids = new ArrayList<>();
......@@ -98,9 +91,12 @@ public class SaveAndUpdate implements AdminAuthorization {
Response saveOrUpdateRes = network.postResponse(saveOrUpdateParam, BasicConfig.MANAGER_SAVEORUPDATE);
boolean data2 = saveOrUpdateRes.jsonPath().getBoolean("data");
System.out.println(data2);
Assert.assertNotNull(data2, network.message(saveOrUpdateParam, BasicConfig.MANAGER_SAVEORUPDATE, "互动问题配置失败", saveOrUpdateRes.body().asString()));
Assert.assertTrue(data2, network.message(saveOrUpdateParam, BasicConfig.MANAGER_SAVEORUPDATE, "互动问题配置失败", saveOrUpdateRes.body().asString()));
}
@Test(description = "投票", priority = 6)
public void 投票() {
//投票
Map<String, Object> saveOrUpdate2Param = new HashMap<>();
saveOrUpdate2Param.put("liveId", liveID);
List<Long> ids1 = new ArrayList<>();
......@@ -108,12 +104,15 @@ public class SaveAndUpdate implements AdminAuthorization {
ids1.add(380L);
saveOrUpdate2Param.put("ids", ids1);
Response saveOrUpdate2Res = network.postResponse(saveOrUpdateParam, BasicConfig.MANAGER_SAVEORUPDATE2);
Response saveOrUpdate2Res = network.postResponse(saveOrUpdate2Param, BasicConfig.MANAGER_SAVEORUPDATE2);
boolean data3 = saveOrUpdate2Res.jsonPath().getBoolean("data");
System.out.println(data3);
Assert.assertNotNull(data3, network.message(saveOrUpdate2Param, BasicConfig.MANAGER_SAVEORUPDATE2, "投票配置失败", saveOrUpdate2Res.body().asString()));
Assert.assertTrue(data3, network.message(saveOrUpdate2Param, BasicConfig.MANAGER_SAVEORUPDATE2, "投票配置失败", saveOrUpdate2Res.body().asString()));
}
@Test(description = "产品资料", priority = 7)
public void 产品资料() {
//产品资料
Map<String, Object> saveOrUpdate3Param = new HashMap<>();
saveOrUpdate3Param.put("liveId", liveID);
List<Long> ids2 = new ArrayList<>();
......@@ -127,8 +126,11 @@ public class SaveAndUpdate implements AdminAuthorization {
boolean data4 = saveOrUpdate3Res.jsonPath().getBoolean("data");
System.out.println(data4);
Assert.assertTrue(data4, network.message(saveOrUpdate3Param, BasicConfig.MANAGER_SAVEORUPDATE3, "产品资料配置失败", saveOrUpdate3Res.body().asString()));
}
@Test(description = "问卷", priority = 8)
public void 问卷() {
//问卷
Map<String, Object> saveOrUpdate4Param = new HashMap<>();
saveOrUpdate4Param.put("id", "null");
saveOrUpdate4Param.put("liveId", liveID);
......@@ -139,8 +141,11 @@ public class SaveAndUpdate implements AdminAuthorization {
boolean data5 = saveOrUpdate4Res.jsonPath().getBoolean("data");
System.out.println(data5);
Assert.assertTrue(data5, network.message(saveOrUpdate4Param, BasicConfig.MANAGER_SAVEORUPDATE4, "问卷配置失败", saveOrUpdate4Res.body().asString()));
}
@Test(description = "代理人参与条件", priority = 9)
public void 代理人参与条件() {
//代理人参与条件
Map<String, Object> saveAgentParticipateParam = new HashMap<>();
saveAgentParticipateParam.put("liveId", liveID);
saveAgentParticipateParam.put("inviteCount", 1);
......@@ -149,8 +154,10 @@ public class SaveAndUpdate implements AdminAuthorization {
boolean data6 = saveAgentParticipateParamRes.jsonPath().getBoolean("data");
System.out.println(data6);
Assert.assertTrue(data6, network.message(saveAgentParticipateParam, BasicConfig.MANAGER_SAVEAGENTPARTICIPATE, "代理人参与条件配置失败", saveAgentParticipateParamRes.body().asString()));
}
//指定中奖奖品
@Test(description = "指定中奖奖品", priority = 10)
public void 指定中奖奖品() {
Map<String, Object> saveSpecifyAwardParam = new HashMap<>();
saveSpecifyAwardParam.put("Id", "");
saveSpecifyAwardParam.put("liveId", liveID);
......@@ -163,8 +170,10 @@ public class SaveAndUpdate implements AdminAuthorization {
boolean data7 = saveSpecifyAwardRes.jsonPath().getBoolean("data");
System.out.println(data7);
Assert.assertTrue(data7, network.message(saveSpecifyAwardParam, BasicConfig.MANAGER_SAVESPECIFYAWARD, "指定中奖配置失败", saveSpecifyAwardRes.body().asString()));
}
//个人PK奖励
@Test(description = "个人PK奖励", priority = 11)
public void 个人PK奖励() {
Map<String, Object> saveOrUpdate5Param = new HashMap<>();
saveOrUpdate5Param.put("liveId", liveID);
saveOrUpdate5Param.put("rewardType", 1);//1:个人,2:团队
......@@ -190,8 +199,11 @@ public class SaveAndUpdate implements AdminAuthorization {
boolean data8 = saveOrUpdate5Res.jsonPath().getBoolean("data");
System.out.println(data8);
Assert.assertTrue(data8, network.message(saveOrUpdate5Param, BasicConfig.MANAGER_SAVEORUPDATE5, "个人pk奖励配置失败", saveOrUpdate5Res.body().asString()));
}
//团队PK奖励
@Test(description = "团队PK奖励", priority = 12)
public void 团队PK奖励() {
Map<String, Object> saveOrUpdate6Param = new HashMap<>();
saveOrUpdate6Param.put("liveId", liveID);
......@@ -222,7 +234,7 @@ public class SaveAndUpdate implements AdminAuthorization {
}
@Test(description = "获取剩余红包金额", priority = 4)
@Test(description = "获取剩余红包金额", priority = 13)
public void 获取剩余红包金额() {
Map<String, Object> getSurplusAmountParam = new HashMap<>();
getSurplusAmountParam.put("liveId", liveID);
......@@ -235,7 +247,7 @@ public class SaveAndUpdate implements AdminAuthorization {
}
//添加红包配置
@Test(description = "新增红包配置", priority = 5)
@Test(description = "新增红包配置", priority = 14)
public void 新增红包配置() {
Map<String, Object> saveOrUpdateRedParam = new HashMap<>();
saveOrUpdateRedParam.put("liveId", liveID);
......@@ -253,7 +265,7 @@ public class SaveAndUpdate implements AdminAuthorization {
}
//答题红包配置
@Test(description = "新增答题红包", priority = 6)
@Test(description = "新增答题红包", priority = 15)
public void 新增答题红包() {
Map<String, Object> saveOrUpdate9Param = new HashMap<>();
saveOrUpdate9Param.put("liveId", liveID);
......@@ -285,7 +297,7 @@ public class SaveAndUpdate implements AdminAuthorization {
}
//直播前奖品配置
@Test(description = "直播前抽奖", priority = 7)
@Test(description = "直播前抽奖", priority = 16)
public void 直播前抽奖() {
Map<String, Object> addParam = new HashMap<>();
addParam.put("liveId", liveID);
......@@ -302,7 +314,7 @@ public class SaveAndUpdate implements AdminAuthorization {
}
//直播中奖品配置
@Test(description = "直播中抽奖", priority = 8)
@Test(description = "直播中抽奖", priority = 17)
public void 直播中抽奖() {
Map<String, Object> add1Param = new HashMap<>();
add1Param.put("liveId", liveID);
......@@ -318,7 +330,7 @@ public class SaveAndUpdate implements AdminAuthorization {
}
//配置免费福利
@Test(description = "配置免费福利", priority = 9)
@Test(description = "配置免费福利", priority = 18)
public void 配置免费福利() {
Map<String, Object> saveOrUpdate8Param = new HashMap<>();
saveOrUpdate8Param.put("liveId", liveID);
......
......@@ -102,7 +102,9 @@ public class BasicConfig {
public static final String MANAGER_SAVEORUPDATELINK= MANAGER_HOST+ "/kjy/manager/live/resource/saveOrUpdateLink";
// public static final String MANAGER_SAVEORUPDATELINK= MANAGER_HOST+ "/kjy/manager/live/resource/list";
public static final String MANAGER_FORM= MANAGER_HOST+ "/kjy/manager/live/resource/saveOrUpdateForm";
public static final String MANAGER_FREE= MANAGER_HOST+ "/kjy/manager/live/resource/saveOrUpdateFree";
// *************** 素材ID ***************
......
......@@ -35,6 +35,7 @@
<ul id='slide-out' class='side-nav fixed hide-on-med-and-down'>
<li class='waves-effect active'><a href='#!' view='test-view' onclick="configureView(0);chartsView('test');"><i class='material-icons'>dashboard</i></a></li>
<li class='waves-effect'><a href='#!' view='category-view' onclick="configureView(1)"><i class='material-icons'>label_outline</i></a></li>
<li class='waves-effect'><a href='#!' view='exception-view' onclick="configureView(2)"><i class='material-icons'>bug_report</i></a></li>
<li class='waves-effect'><a href='#!' onclick="configureView(-1);chartsView('dashboard');" view='dashboard-view'><i class='material-icons'>track_changes</i></i></a></li>
</ul>
......@@ -48,7 +49,7 @@
<ul id='nav-mobile' class='right hide-on-med-and-down nav-right'>
<li>
<a href='#!'>
<span class='label suite-start-time blue darken-3'>Mar 6, 2021 07:22:38 PM</span>
<span class='label suite-start-time blue darken-3'>Mar 6, 2021 10:38:14 PM</span>
</a>
</li>
<li>
......@@ -74,6 +75,7 @@
</a>
<ul id='tests-toggle' class='dropdown-content'>
<li status='pass'><a href='#!'>Pass <i class='material-icons green-text'>check_circle</i></a></li>
<li status='fail'><a href='#!'>Fail <i class='material-icons red-text'>cancel</i></a></li>
<li class='divider'></li>
<li status='clear' clear='true'><a href='#!'>Clear Filters <i class='material-icons'>clear</i></a></li>
</ul>
......@@ -136,10 +138,10 @@
<canvas id='parent-analysis' width='100' height='80'></canvas>
</div>
<div class='block text-small'>
<span class='tooltipped' data-position='top' data-tooltip='100%'><span class='strong'>19</span> test(s) passed</span>
<span class='tooltipped' data-position='top' data-tooltip='96.97%'><span class='strong'>32</span> test(s) passed</span>
</div>
<div class='block text-small'>
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> test(s) failed, <span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> others
<span class='strong tooltipped' data-position='top' data-tooltip='3.03%'>1</span> test(s) failed, <span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> others
</div>
</div>
</div>
......@@ -151,10 +153,10 @@
<canvas id='child-analysis' width='100' height='80'></canvas>
</div>
<div class='block text-small'>
<span class='tooltipped' data-position='top' data-tooltip='100%'><span class='strong'>19</span> step(s) passed</span>
<span class='tooltipped' data-position='top' data-tooltip='96.97%'><span class='strong'>32</span> step(s) passed</span>
</div>
<div class='block text-small'>
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> step(s) failed, <span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> others
<span class='strong tooltipped' data-position='top' data-tooltip='3.03%'>1</span> step(s) failed, <span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> others
</div>
</div>
</div>
......@@ -172,16 +174,16 @@
<li class='test displayed active has-leaf pass' status='pass' bdd='false' test-id='1'>
<div class='test-heading'>
<span class='test-name'>直播 : 创建直播</span>
<span class='test-time'>Mar 6, 2021 07:22:38 PM</span>
<span class='test-time'>Mar 6, 2021 10:38:14 PM</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='test-content hide'>
<div class='test-time-info'>
<span class='label start-time'>Mar 6, 2021 07:22:38 PM</span>
<span class='label end-time'>Mar 6, 2021 07:22:44 PM</span>
<span class='label time-taken grey lighten-1 white-text'>0h 0m 6s+74ms</span>
<span class='label start-time'>Mar 6, 2021 10:38:14 PM</span>
<span class='label end-time'>Mar 6, 2021 10:38:23 PM</span>
<span class='label time-taken grey lighten-1 white-text'>0h 0m 8s+558ms</span>
</div>
<div class='test-desc'>Pass: 9 ; Fail: 0 ; </div>
<div class='test-desc'>Pass: 17 ; Fail: 0 ; </div>
<div class='test-attributes'>
<div class='category-list'>
<span class='category label white-text'>直播</span>
......@@ -193,8 +195,8 @@
<li class='node level-1 leaf pass' status='pass' test-id='2'>
<div class='collapsible-header'>
<div class='node-name'>创建直播</div>
<span class='node-time'>Mar 6, 2021 07:22:38 PM</span>
<span class='node-duration'>0h 0m 8s+309ms</span>
<span class='node-time'>Mar 6, 2021 10:38:14 PM</span>
<span class='node-duration'>0h 0m 14s+19ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -214,7 +216,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -224,9 +226,9 @@
</li>
<li class='node level-1 leaf pass' status='pass' test-id='3'>
<div class='collapsible-header'>
<div class='node-name'>查询直播配置</div>
<span class='node-time'>Mar 6, 2021 07:22:41 PM</span>
<span class='node-duration'>0h 0m 4s+942ms</span>
<div class='node-name'>单场红包配置</div>
<span class='node-time'>Mar 6, 2021 10:38:19 PM</span>
<span class='node-duration'>0h 0m 8s+993ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -246,7 +248,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -256,9 +258,9 @@
</li>
<li class='node level-1 leaf pass' status='pass' test-id='4'>
<div class='collapsible-header'>
<div class='node-name'>添加基础配置</div>
<span class='node-time'>Mar 6, 2021 07:22:42 PM</span>
<span class='node-duration'>0h 0m 4s+741ms</span>
<div class='node-name'>展示红包金额</div>
<span class='node-time'>Mar 6, 2021 10:38:20 PM</span>
<span class='node-duration'>0h 0m 8s+703ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -278,7 +280,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -288,9 +290,9 @@
</li>
<li class='node level-1 leaf pass' status='pass' test-id='5'>
<div class='collapsible-header'>
<div class='node-name'>获取剩余红包金额</div>
<span class='node-time'>Mar 6, 2021 07:22:43 PM</span>
<span class='node-duration'>0h 0m 3s+248ms</span>
<div class='node-name'>互动问题</div>
<span class='node-time'>Mar 6, 2021 10:38:20 PM</span>
<span class='node-duration'>0h 0m 8s+525ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -310,7 +312,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -320,9 +322,9 @@
</li>
<li class='node level-1 leaf pass' status='pass' test-id='6'>
<div class='collapsible-header'>
<div class='node-name'>新增红包配置</div>
<span class='node-time'>Mar 6, 2021 07:22:43 PM</span>
<span class='node-duration'>0h 0m 3s+93ms</span>
<div class='node-name'>投票</div>
<span class='node-time'>Mar 6, 2021 10:38:20 PM</span>
<span class='node-duration'>0h 0m 8s+286ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -342,7 +344,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -352,9 +354,9 @@
</li>
<li class='node level-1 leaf pass' status='pass' test-id='7'>
<div class='collapsible-header'>
<div class='node-name'>新增答题红包</div>
<span class='node-time'>Mar 6, 2021 07:22:43 PM</span>
<span class='node-duration'>0h 0m 2s+879ms</span>
<div class='node-name'>产品资料</div>
<span class='node-time'>Mar 6, 2021 10:38:20 PM</span>
<span class='node-duration'>0h 0m 8s+135ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -374,7 +376,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -384,9 +386,9 @@
</li>
<li class='node level-1 leaf pass' status='pass' test-id='8'>
<div class='collapsible-header'>
<div class='node-name'>直播前抽奖</div>
<span class='node-time'>Mar 6, 2021 07:22:44 PM</span>
<span class='node-duration'>0h 0m 2s+717ms</span>
<div class='node-name'>问卷</div>
<span class='node-time'>Mar 6, 2021 10:38:20 PM</span>
<span class='node-duration'>0h 0m 7s+946ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -406,7 +408,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -416,9 +418,9 @@
</li>
<li class='node level-1 leaf pass' status='pass' test-id='9'>
<div class='collapsible-header'>
<div class='node-name'>直播中抽奖</div>
<span class='node-time'>Mar 6, 2021 07:22:44 PM</span>
<span class='node-duration'>0h 0m 2s+567ms</span>
<div class='node-name'>代理人参与条件</div>
<span class='node-time'>Mar 6, 2021 10:38:21 PM</span>
<span class='node-duration'>0h 0m 7s+593ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -438,7 +440,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -447,10 +449,266 @@
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='10'>
<div class='collapsible-header'>
<div class='node-name'>指定中奖奖品</div>
<span class='node-time'>Mar 6, 2021 10:38:21 PM</span>
<span class='node-duration'>0h 0m 7s+387ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>创建直播</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='11'>
<div class='collapsible-header'>
<div class='node-name'>个人PK奖励</div>
<span class='node-time'>Mar 6, 2021 10:38:21 PM</span>
<span class='node-duration'>0h 0m 7s+148ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>创建直播</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='12'>
<div class='collapsible-header'>
<div class='node-name'>团队PK奖励</div>
<span class='node-time'>Mar 6, 2021 10:38:21 PM</span>
<span class='node-duration'>0h 0m 6s+910ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>创建直播</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='13'>
<div class='collapsible-header'>
<div class='node-name'>获取剩余红包金额</div>
<span class='node-time'>Mar 6, 2021 10:38:22 PM</span>
<span class='node-duration'>0h 0m 6s+763ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>创建直播</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='14'>
<div class='collapsible-header'>
<div class='node-name'>新增红包配置</div>
<span class='node-time'>Mar 6, 2021 10:38:22 PM</span>
<span class='node-duration'>0h 0m 6s+587ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>创建直播</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='15'>
<div class='collapsible-header'>
<div class='node-name'>新增答题红包</div>
<span class='node-time'>Mar 6, 2021 10:38:22 PM</span>
<span class='node-duration'>0h 0m 6s+337ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>创建直播</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='16'>
<div class='collapsible-header'>
<div class='node-name'>直播前抽奖</div>
<span class='node-time'>Mar 6, 2021 10:38:22 PM</span>
<span class='node-duration'>0h 0m 6s+107ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>创建直播</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='17'>
<div class='collapsible-header'>
<div class='node-name'>直播中抽奖</div>
<span class='node-time'>Mar 6, 2021 10:38:22 PM</span>
<span class='node-duration'>0h 0m 5s+883ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>创建直播</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='18'>
<div class='collapsible-header'>
<div class='node-name'>配置免费福利</div>
<span class='node-time'>Mar 6, 2021 07:22:44 PM</span>
<span class='node-duration'>0h 0m 2s+430ms</span>
<span class='node-time'>Mar 6, 2021 10:38:23 PM</span>
<span class='node-duration'>0h 0m 5s+709ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -470,7 +728,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -483,19 +741,19 @@
</li>
<li class='test displayed active has-leaf pass' status='pass' bdd='false' test-id='11'>
<li class='test displayed active has-leaf fail' status='fail' bdd='false' test-id='19'>
<div class='test-heading'>
<span class='test-name'>直播 : 直播素材</span>
<span class='test-time'>Mar 6, 2021 07:22:44 PM</span>
<span class='test-status right pass'>pass</span>
<span class='test-time'>Mar 6, 2021 10:38:23 PM</span>
<span class='test-status right fail'>fail</span>
</div>
<div class='test-content hide'>
<div class='test-time-info'>
<span class='label start-time'>Mar 6, 2021 07:22:44 PM</span>
<span class='label end-time'>Mar 6, 2021 07:22:46 PM</span>
<span class='label time-taken grey lighten-1 white-text'>0h 0m 2s+156ms</span>
<span class='label start-time'>Mar 6, 2021 10:38:23 PM</span>
<span class='label end-time'>Mar 6, 2021 10:38:28 PM</span>
<span class='label time-taken grey lighten-1 white-text'>0h 0m 5s+386ms</span>
</div>
<div class='test-desc'>Pass: 10 ; Fail: 0 ; </div>
<div class='test-desc'>Pass: 15 ; Fail: 1 ; </div>
<div class='test-attributes'>
<div class='category-list'>
<span class='category label white-text'>直播</span>
......@@ -504,11 +762,77 @@
</div>
<ul class='collapsible node-list' data-collapsible='accordion'>
<li class='node level-1 leaf pass' status='pass' test-id='12'>
<li class='node level-1 leaf fail' status='fail' test-id='20'>
<div class='collapsible-header'>
<div class='node-name'>秒薪测试</div>
<span class='node-time'>Mar 6, 2021 10:38:28 PM</span>
<span class='node-duration'>0h 0m 0s+425ms</span>
<span class='test-status right fail'>fail</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>直播素材</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='fail'>
<td class='status fail' title='fail' alt='fail'><i class='material-icons'>cancel</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'><pre>java.lang.AssertionError:
path: https://kjj-mng.duibatest.com.cn/kjy/manager/live/resource/saveOrUpdateFree
params: {clueType=1, resourceImg=https://yun.dui88.com/kjy/image/20210306/1615033315608.jpeg, companyId=101, tradeIntroducePictures=https://yun.dui88.com/kjy/image/20210306/1615040918512.jpeg, resourceTitle=秒薪测试, testType=1, resourcePicturesArr=[https://yun.dui88.com/kjy/image/20210306/1615033326937.jpg], mainButtonTitle=领取门票}
message: 新增免费资料失败
response:{"code":"9999991","desc":"按钮名称不能为空","success":false,"timestamp":1615041508596}
expected object to not be null
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.assertNotNull(Assert.java:423)
at com.kjj.cases.live.LiveMaterial.秒薪测试(LiveMaterial.java:382)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:645)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:756)
at org.testng.TestRunner.run(TestRunner.java:610)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
at org.testng.SuiteRunner.run(SuiteRunner.java:289)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1289)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)
at org.testng.TestNG.runSuites(TestNG.java:1133)
at org.testng.TestNG.run(TestNG.java:1104)
at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109)
</pre></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='21'>
<div class='collapsible-header'>
<div class='node-name'>添加奖品</div>
<span class='node-time'>Mar 6, 2021 07:22:44 PM</span>
<span class='node-duration'>0h 0m 2s+173ms</span>
<span class='node-time'>Mar 6, 2021 10:38:23 PM</span>
<span class='node-duration'>0h 0m 5s+366ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -528,7 +852,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -536,11 +860,11 @@
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='13'>
<li class='node level-1 leaf pass' status='pass' test-id='22'>
<div class='collapsible-header'>
<div class='node-name'>查询福利并删除</div>
<span class='node-time'>Mar 6, 2021 07:22:44 PM</span>
<span class='node-duration'>0h 0m 2s+37ms</span>
<span class='node-time'>Mar 6, 2021 10:38:23 PM</span>
<span class='node-duration'>0h 0m 5s+172ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -560,7 +884,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -568,11 +892,11 @@
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='14'>
<li class='node level-1 leaf pass' status='pass' test-id='23'>
<div class='collapsible-header'>
<div class='node-name'>添加投票</div>
<span class='node-time'>Mar 6, 2021 07:22:45 PM</span>
<span class='node-duration'>0h 0m 1s+735ms</span>
<span class='node-time'>Mar 6, 2021 10:38:24 PM</span>
<span class='node-duration'>0h 0m 4s+797ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -592,7 +916,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -600,11 +924,11 @@
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='15'>
<li class='node level-1 leaf pass' status='pass' test-id='24'>
<div class='collapsible-header'>
<div class='node-name'>查询投票并删除</div>
<span class='node-time'>Mar 6, 2021 07:22:45 PM</span>
<span class='node-duration'>0h 0m 1s+601ms</span>
<span class='node-time'>Mar 6, 2021 10:38:24 PM</span>
<span class='node-duration'>0h 0m 4s+484ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -624,7 +948,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -632,11 +956,11 @@
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='16'>
<li class='node level-1 leaf pass' status='pass' test-id='25'>
<div class='collapsible-header'>
<div class='node-name'>添加问题</div>
<span class='node-time'>Mar 6, 2021 07:22:45 PM</span>
<span class='node-duration'>0h 0m 1s+364ms</span>
<span class='node-time'>Mar 6, 2021 10:38:24 PM</span>
<span class='node-duration'>0h 0m 4s+172ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -656,7 +980,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -664,11 +988,11 @@
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='17'>
<li class='node level-1 leaf pass' status='pass' test-id='26'>
<div class='collapsible-header'>
<div class='node-name'>查询问题并删除</div>
<span class='node-time'>Mar 6, 2021 07:22:45 PM</span>
<span class='node-duration'>0h 0m 1s+185ms</span>
<span class='node-time'>Mar 6, 2021 10:38:24 PM</span>
<span class='node-duration'>0h 0m 3s+994ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -688,7 +1012,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -696,11 +1020,11 @@
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='18'>
<li class='node level-1 leaf pass' status='pass' test-id='27'>
<div class='collapsible-header'>
<div class='node-name'>添加图文资料</div>
<span class='node-time'>Mar 6, 2021 07:22:45 PM</span>
<span class='node-duration'>0h 0m 0s+891ms</span>
<span class='node-time'>Mar 6, 2021 10:38:25 PM</span>
<span class='node-duration'>0h 0m 3s+631ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -720,7 +1044,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -728,11 +1052,11 @@
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='19'>
<li class='node level-1 leaf pass' status='pass' test-id='28'>
<div class='collapsible-header'>
<div class='node-name'>查询图文并删除</div>
<span class='node-time'>Mar 6, 2021 07:22:46 PM</span>
<span class='node-duration'>0h 0m 0s+762ms</span>
<span class='node-time'>Mar 6, 2021 10:38:25 PM</span>
<span class='node-duration'>0h 0m 3s+276ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -752,7 +1076,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -760,11 +1084,11 @@
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='20'>
<li class='node level-1 leaf pass' status='pass' test-id='29'>
<div class='collapsible-header'>
<div class='node-name'>添加链接资料</div>
<span class='node-time'>Mar 6, 2021 07:22:46 PM</span>
<span class='node-duration'>0h 0m 0s+512ms</span>
<span class='node-time'>Mar 6, 2021 10:38:26 PM</span>
<span class='node-duration'>0h 0m 1s+843ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -784,7 +1108,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -792,11 +1116,171 @@
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='21'>
<li class='node level-1 leaf pass' status='pass' test-id='30'>
<div class='collapsible-header'>
<div class='node-name'>查询链接并删除</div>
<span class='node-time'>Mar 6, 2021 07:22:46 PM</span>
<span class='node-duration'>0h 0m 0s+389ms</span>
<span class='node-time'>Mar 6, 2021 10:38:27 PM</span>
<span class='node-duration'>0h 0m 1s+667ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>直播素材</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='31'>
<div class='collapsible-header'>
<div class='node-name'>添加表单</div>
<span class='node-time'>Mar 6, 2021 10:38:27 PM</span>
<span class='node-duration'>0h 0m 1s+376ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>直播素材</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='32'>
<div class='collapsible-header'>
<div class='node-name'>查询表单并删除</div>
<span class='node-time'>Mar 6, 2021 10:38:27 PM</span>
<span class='node-duration'>0h 0m 1s+196ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>直播素材</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='33'>
<div class='collapsible-header'>
<div class='node-name'>免费领资料</div>
<span class='node-time'>Mar 6, 2021 10:38:27 PM</span>
<span class='node-duration'>0h 0m 0s+894ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>直播素材</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='34'>
<div class='collapsible-header'>
<div class='node-name'>删除免费领资料</div>
<span class='node-time'>Mar 6, 2021 10:38:28 PM</span>
<span class='node-duration'>0h 0m 0s+749ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
<div class='category-list right'>
<span class='category label white-text'>直播</span>
<span class='category label white-text'>直播素材</span>
</div>
<div class='node-steps'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Status</th>
<th>Timestamp</th>
<th>Details</th>
</tr>
</thead>
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='node level-1 leaf pass' status='pass' test-id='35'>
<div class='collapsible-header'>
<div class='node-name'>删除秒薪测试</div>
<span class='node-time'>Mar 6, 2021 10:38:28 PM</span>
<span class='node-duration'>0h 0m 0s+267ms</span>
<span class='test-status right pass'>pass</span>
</div>
<div class='collapsible-body'>
......@@ -816,7 +1300,7 @@
<tbody>
<tr class='log' status='pass'>
<td class='status pass' title='pass' alt='pass'><i class='material-icons'>check_circle</i></td>
<td class='timestamp'>7:22:46 PM</td>
<td class='timestamp'>10:38:28 PM</td>
<td class='step-details'>Test passed</td>
</tr>
</tbody>
......@@ -881,13 +1365,14 @@
<div class='category-heading'>
<span class='category-name'>直播</span>
<span class='category-status right'>
<span class='label pass'>21</span>
<span class='label pass'>33</span>
<span class='label fail'>2</span>
</span>
</div>
<div class='category-content hide'>
<div class='category-status-counts'>
<span class='label green accent-4 white-text'>Passed: 21</span>
<span class='label green accent-4 white-text'>Passed: 33</span>
<span class='label red lighten-1 white-text'>Failed: 2</span>
</div>
......@@ -902,108 +1387,178 @@
</thead>
<tbody>
<tr>
<td>Mar 6, 2021 07:22:38 PM</td>
<td>Mar 6, 2021 10:38:14 PM</td>
<td class='linked' test-id='1'>创建直播</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:38 PM</td>
<td>Mar 6, 2021 10:38:14 PM</td>
<td class='linked' test-id='2'>创建直播.创建直播</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:41 PM</td>
<td class='linked' test-id='3'>创建直播.查询直播配置</td>
<td>Mar 6, 2021 10:38:19 PM</td>
<td class='linked' test-id='3'>创建直播.单场红包配置</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='4'>创建直播.展示红包金额</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='5'>创建直播.互动问题</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='6'>创建直播.投票</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:42 PM</td>
<td class='linked' test-id='4'>创建直播.添加基础配置</td>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='7'>创建直播.产品资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:43 PM</td>
<td class='linked' test-id='5'>创建直播.获取剩余红包金额</td>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='8'>创建直播.问卷</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:43 PM</td>
<td class='linked' test-id='6'>创建直播.新增红包配置</td>
<td>Mar 6, 2021 10:38:21 PM</td>
<td class='linked' test-id='9'>创建直播.代理人参与条件</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:43 PM</td>
<td class='linked' test-id='7'>创建直播.新增答题红包</td>
<td>Mar 6, 2021 10:38:21 PM</td>
<td class='linked' test-id='10'>创建直播.指定中奖奖品</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='8'>创建直播.直播前抽奖</td>
<td>Mar 6, 2021 10:38:21 PM</td>
<td class='linked' test-id='11'>创建直播.个人PK奖励</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='9'>创建直播.直播中抽奖</td>
<td>Mar 6, 2021 10:38:21 PM</td>
<td class='linked' test-id='12'>创建直播.团队PK奖励</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='10'>创建直播.配置免费福利</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='13'>创建直播.获取剩余红包金额</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='11'>直播素材</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='14'>创建直播.新增红包配置</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='12'>直播素材.添加奖品</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='15'>创建直播.新增答题红包</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='13'>直播素材.查询福利并删除</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='16'>创建直播.直播前抽奖</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='14'>直播素材.添加投票</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='17'>创建直播.直播中抽奖</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='15'>直播素材.查询投票并删除</td>
<td>Mar 6, 2021 10:38:23 PM</td>
<td class='linked' test-id='18'>创建直播.配置免费福利</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='16'>直播素材.添加问题</td>
<td>Mar 6, 2021 10:38:23 PM</td>
<td class='linked' test-id='19'>直播素材</td>
<td><span class='test-status fail'>fail</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:28 PM</td>
<td class='linked' test-id='20'>直播素材.秒薪测试</td>
<td><span class='test-status fail'>fail</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:23 PM</td>
<td class='linked' test-id='21'>直播素材.添加奖品</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='17'>直播素材.查询问题并删除</td>
<td>Mar 6, 2021 10:38:23 PM</td>
<td class='linked' test-id='22'>直播素材.查询福利并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='18'>直播素材.添加图文资料</td>
<td>Mar 6, 2021 10:38:24 PM</td>
<td class='linked' test-id='23'>直播素材.添加投票</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:46 PM</td>
<td class='linked' test-id='19'>直播素材.查询图文并删除</td>
<td>Mar 6, 2021 10:38:24 PM</td>
<td class='linked' test-id='24'>直播素材.查询投票并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:46 PM</td>
<td class='linked' test-id='20'>直播素材.添加链接资料</td>
<td>Mar 6, 2021 10:38:24 PM</td>
<td class='linked' test-id='25'>直播素材.添加问题</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:46 PM</td>
<td class='linked' test-id='21'>直播素材.查询链接并删除</td>
<td>Mar 6, 2021 10:38:24 PM</td>
<td class='linked' test-id='26'>直播素材.查询问题并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:25 PM</td>
<td class='linked' test-id='27'>直播素材.添加图文资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:25 PM</td>
<td class='linked' test-id='28'>直播素材.查询图文并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:26 PM</td>
<td class='linked' test-id='29'>直播素材.添加链接资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:27 PM</td>
<td class='linked' test-id='30'>直播素材.查询链接并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:27 PM</td>
<td class='linked' test-id='31'>直播素材.添加表单</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:27 PM</td>
<td class='linked' test-id='32'>直播素材.查询表单并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:27 PM</td>
<td class='linked' test-id='33'>直播素材.免费领资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:28 PM</td>
<td class='linked' test-id='34'>直播素材.删除免费领资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:28 PM</td>
<td class='linked' test-id='35'>直播素材.删除秒薪测试</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
</tbody>
......@@ -1015,12 +1570,12 @@
<div class='category-heading'>
<span class='category-name'>创建直播</span>
<span class='category-status right'>
<span class='label pass'>10</span>
<span class='label pass'>18</span>
</span>
</div>
<div class='category-content hide'>
<div class='category-status-counts'>
<span class='label green accent-4 white-text'>Passed: 10</span>
<span class='label green accent-4 white-text'>Passed: 18</span>
</div>
......@@ -1036,53 +1591,93 @@
</thead>
<tbody>
<tr>
<td>Mar 6, 2021 07:22:38 PM</td>
<td>Mar 6, 2021 10:38:14 PM</td>
<td class='linked' test-id='1'>创建直播</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:38 PM</td>
<td>Mar 6, 2021 10:38:14 PM</td>
<td class='linked' test-id='2'>创建直播.创建直播</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:41 PM</td>
<td class='linked' test-id='3'>创建直播.查询直播配置</td>
<td>Mar 6, 2021 10:38:19 PM</td>
<td class='linked' test-id='3'>创建直播.单场红包配置</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='4'>创建直播.展示红包金额</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='5'>创建直播.互动问题</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='6'>创建直播.投票</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='7'>创建直播.产品资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:20 PM</td>
<td class='linked' test-id='8'>创建直播.问卷</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:21 PM</td>
<td class='linked' test-id='9'>创建直播.代理人参与条件</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:21 PM</td>
<td class='linked' test-id='10'>创建直播.指定中奖奖品</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:42 PM</td>
<td class='linked' test-id='4'>创建直播.添加基础配置</td>
<td>Mar 6, 2021 10:38:21 PM</td>
<td class='linked' test-id='11'>创建直播.个人PK奖励</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:43 PM</td>
<td class='linked' test-id='5'>创建直播.获取剩余红包金额</td>
<td>Mar 6, 2021 10:38:21 PM</td>
<td class='linked' test-id='12'>创建直播.团队PK奖励</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:43 PM</td>
<td class='linked' test-id='6'>创建直播.新增红包配置</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='13'>创建直播.获取剩余红包金额</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:43 PM</td>
<td class='linked' test-id='7'>创建直播.新增答题红包</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='14'>创建直播.新增红包配置</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='8'>创建直播.直播前抽奖</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='15'>创建直播.新增答题红包</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='9'>创建直播.直播中抽奖</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='16'>创建直播.直播前抽奖</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='10'>创建直播.配置免费福利</td>
<td>Mar 6, 2021 10:38:22 PM</td>
<td class='linked' test-id='17'>创建直播.直播中抽奖</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:23 PM</td>
<td class='linked' test-id='18'>创建直播.配置免费福利</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
</tbody>
......@@ -1094,13 +1689,14 @@
<div class='category-heading'>
<span class='category-name'>直播素材</span>
<span class='category-status right'>
<span class='label pass'>11</span>
<span class='label pass'>15</span>
<span class='label fail'>2</span>
</span>
</div>
<div class='category-content hide'>
<div class='category-status-counts'>
<span class='label green accent-4 white-text'>Passed: 11</span>
<span class='label green accent-4 white-text'>Passed: 15</span>
<span class='label red lighten-1 white-text'>Failed: 2</span>
</div>
......@@ -1115,58 +1711,88 @@
</thead>
<tbody>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='11'>直播素材</td>
<td>Mar 6, 2021 10:38:23 PM</td>
<td class='linked' test-id='19'>直播素材</td>
<td><span class='test-status fail'>fail</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:28 PM</td>
<td class='linked' test-id='20'>直播素材.秒薪测试</td>
<td><span class='test-status fail'>fail</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:23 PM</td>
<td class='linked' test-id='21'>直播素材.添加奖品</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:23 PM</td>
<td class='linked' test-id='22'>直播素材.查询福利并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:24 PM</td>
<td class='linked' test-id='23'>直播素材.添加投票</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:24 PM</td>
<td class='linked' test-id='24'>直播素材.查询投票并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 10:38:24 PM</td>
<td class='linked' test-id='25'>直播素材.添加问题</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='12'>直播素材.添加奖品</td>
<td>Mar 6, 2021 10:38:24 PM</td>
<td class='linked' test-id='26'>直播素材.查询问题并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:44 PM</td>
<td class='linked' test-id='13'>直播素材.查询福利并删除</td>
<td>Mar 6, 2021 10:38:25 PM</td>
<td class='linked' test-id='27'>直播素材.添加图文资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='14'>直播素材.添加投票</td>
<td>Mar 6, 2021 10:38:25 PM</td>
<td class='linked' test-id='28'>直播素材.查询图文并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='15'>直播素材.查询投票并删除</td>
<td>Mar 6, 2021 10:38:26 PM</td>
<td class='linked' test-id='29'>直播素材.添加链接资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='16'>直播素材.添加问题</td>
<td>Mar 6, 2021 10:38:27 PM</td>
<td class='linked' test-id='30'>直播素材.查询链接并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='17'>直播素材.查询问题并删除</td>
<td>Mar 6, 2021 10:38:27 PM</td>
<td class='linked' test-id='31'>直播素材.添加表单</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:45 PM</td>
<td class='linked' test-id='18'>直播素材.添加图文资料</td>
<td>Mar 6, 2021 10:38:27 PM</td>
<td class='linked' test-id='32'>直播素材.查询表单并删除</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:46 PM</td>
<td class='linked' test-id='19'>直播素材.查询图文并删除</td>
<td>Mar 6, 2021 10:38:27 PM</td>
<td class='linked' test-id='33'>直播素材.免费领资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:46 PM</td>
<td class='linked' test-id='20'>直播素材.添加链接资料</td>
<td>Mar 6, 2021 10:38:28 PM</td>
<td class='linked' test-id='34'>直播素材.删除免费领资料</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
<tr>
<td>Mar 6, 2021 07:22:46 PM</td>
<td class='linked' test-id='21'>直播素材.查询链接并删除</td>
<td>Mar 6, 2021 10:38:28 PM</td>
<td class='linked' test-id='35'>直播素材.删除秒薪测试</td>
<td><span class='test-status pass'>pass</span></td>
</tr>
</tbody>
......@@ -1186,6 +1812,101 @@
</div>
</div>
<!-- category view -->
<div id='exception-view' class='view hide'>
<section id='controls'>
<div class='controls grey lighten-4'>
<!-- search -->
<div class='chip transparent' alt='Search Tests' title='Search Tests'>
<a href="#" class='search-div'>
<i class='material-icons'>search</i> Search
</a>
<div class='input-field left hide'>
<input id='search-tests' type='text' class='validate browser-default' placeholder='Search Tests...'>
</div>
</div>
<!-- search -->
</div>
</section>
<div class='subview-left left'>
<div class='view-summary'>
<h5>Exceptions</h3>
<ul id='exception-collection' class='exception-collection'>
<li class='exception displayed active'>
<div class='exception-heading'>
<span class='exception-name'>java.lang.AssertionError</span>
<span class='exception-count right'><span class='label red lighten-1 white-text'>1</span></span>
</div>
<div class='exception-content hide'>
<div class='exception-tests'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Timestamp</th>
<th>TestName</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mar 6, 2021 10:38:28 PM</td>
<td class='linked' test-id='20'>直播素材.秒薪测试</td>
<td><pre><pre>java.lang.AssertionError:
path: https://kjj-mng.duibatest.com.cn/kjy/manager/live/resource/saveOrUpdateFree
params: {clueType=1, resourceImg=https://yun.dui88.com/kjy/image/20210306/1615033315608.jpeg, companyId=101, tradeIntroducePictures=https://yun.dui88.com/kjy/image/20210306/1615040918512.jpeg, resourceTitle=秒薪测试, testType=1, resourcePicturesArr=[https://yun.dui88.com/kjy/image/20210306/1615033326937.jpg], mainButtonTitle=领取门票}
message: 新增免费资料失败
response:{"code":"9999991","desc":"按钮名称不能为空","success":false,"timestamp":1615041508596}
expected object to not be null
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.assertNotNull(Assert.java:423)
at com.kjj.cases.live.LiveMaterial.秒薪测试(LiveMaterial.java:382)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:645)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:756)
at org.testng.TestRunner.run(TestRunner.java:610)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
at org.testng.SuiteRunner.run(SuiteRunner.java:289)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1289)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)
at org.testng.TestNG.runSuites(TestNG.java:1133)
at org.testng.TestNG.run(TestNG.java:1104)
at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109)
</pre></pre></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class='subview-right left'>
<div class='view-summary'>
<h5 class='exception-name'></h5>
</div>
</div>
</div>
<!-- exception view -->
<div id='dashboard-view' class='view hide'>
<div class='card-panel transparent np-v'>
......@@ -1195,31 +1916,31 @@
<div class='col s2'>
<div class='card-panel r'>
Tests
<div class='panel-lead'>19</div>
<div class='panel-lead'>33</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Steps
<div class='panel-lead'>19</div>
<div class='panel-lead'>33</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Start
<div class='panel-lead'>Mar 6, 2021 07:22:38 PM</div>
<div class='panel-lead'>Mar 6, 2021 10:38:14 PM</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
End
<div class='panel-lead'>Mar 6, 2021 07:22:44 PM</div>
<div class='panel-lead'>Mar 6, 2021 10:38:23 PM</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Time Taken
<div class='panel-lead'>6,074ms</div>
<div class='panel-lead'>8,558ms</div>
</div>
</div>
<div class='col s4'>
......@@ -1235,20 +1956,20 @@
</tr>
<tr>
<td>直播</td>
<td>21</td>
<td>0</td>
<td>33</td>
<td>2</td>
<td>0</td>
</tr>
<tr>
<td>创建直播</td>
<td>10</td>
<td>18</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>直播素材</td>
<td>11</td>
<td>0</td>
<td>15</td>
<td>2</td>
<td>0</td>
</tr>
</table>
......@@ -1264,22 +1985,22 @@
<script>
var statusGroup = {
passParent: 19,
failParent: 0,
passParent: 32,
failParent: 1,
fatalParent: 0,
errorParent: 0,
warningParent: 0,
skipParent: 0,
exceptionsParent: 0,
exceptionsParent: 1,
passChild: 19,
failChild: 0,
passChild: 32,
failChild: 1,
fatalChild: 0,
errorChild: 0,
warningChild: 0,
skipChild: 0,
infoChild: 0,
exceptionsChild: 0,
exceptionsChild: 1,
passGrandChild: 0,
failGrandChild: 0,
......
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