Commit 16f71256 by DuJunLi

优化场景断言

parent 490439fe
...@@ -141,7 +141,7 @@ public class ReserveTools extends XMBaseTest { ...@@ -141,7 +141,7 @@ public class ReserveTools extends XMBaseTest {
* @param dataUserInfos * @param dataUserInfos
* @return: com.alibaba.fastjson.JSONArray * @return: com.alibaba.fastjson.JSONArray
**/ **/
public JSONArray getPageByStudio(String courseId,String reserveState,String signState,String coachId,Long scheduleStartTime,Long scheduleEndDate,String memberId,String courseType,DataUserInfo...dataUserInfos){ public JSONArray getPageByStudio(String courseId,String reserveState,String signState,String coachId,Long scheduleStartTime,Long scheduleEndDate,String memberId,String courseType,String campId,DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Reserve) dataApi.setApiModule(ApiModule.Polar_Reserve)
.setApiName("API_memberReserve_getPageByStudio") .setApiName("API_memberReserve_getPageByStudio")
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
...@@ -150,7 +150,7 @@ public class ReserveTools extends XMBaseTest { ...@@ -150,7 +150,7 @@ public class ReserveTools extends XMBaseTest {
JSONObject body = new JSONObject(); JSONObject body = new JSONObject();
body.put("current",0); body.put("current",0);
body.put("size",20); body.put("size",200);
if (!courseId.equals("")){ if (!courseId.equals("")){
body.put("courseId",courseId); body.put("courseId",courseId);
} }
...@@ -170,6 +170,10 @@ public class ReserveTools extends XMBaseTest { ...@@ -170,6 +170,10 @@ public class ReserveTools extends XMBaseTest {
if(!memberId.equals("")){ if(!memberId.equals("")){
body.put("memberId",memberId); body.put("memberId",memberId);
} }
if(courseType.equals("TRAINING_CAMP")&& !campId.isEmpty()){
body.put("tenantMemberCardId",campId);
}
body.put("courseType",courseType); body.put("courseType",courseType);
body.put("brandId", dataApi.getLoginInfo().getBrandId()); body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId()); // 操作人id body.put("operatorId", dataApi.getLoginInfo().getAdminId()); // 操作人id
......
...@@ -129,7 +129,7 @@ public class TestSignIn extends BaseTestImpl { ...@@ -129,7 +129,7 @@ public class TestSignIn extends BaseTestImpl {
} }
Assert.assertTrue(success,"约课后在会员详情页面未查询到相关信息"); Assert.assertTrue(success,"约课后在会员详情页面未查询到相关信息");
// check 2.2 预约记录列表 // check 2.2 预约记录列表
JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"SUCCESS","SIGNED","",startTime,scheduleEndTime, memberInfo.getString(0),"GROUP_CLASS"); JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"SUCCESS","SIGNED","",startTime,scheduleEndTime, memberInfo.getString(0),"GROUP_CLASS","");
success = false; success = false;
for(int i =0;i<getPageByStudio.size();i++){ for(int i =0;i<getPageByStudio.size();i++){
if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){ if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){
......
...@@ -171,7 +171,7 @@ public class TestAddMemberReserve extends BaseTestImpl { ...@@ -171,7 +171,7 @@ public class TestAddMemberReserve extends BaseTestImpl {
} }
Assert.assertTrue(success,"约课后在会员详情页面未查询到相关信息"); Assert.assertTrue(success,"约课后在会员详情页面未查询到相关信息");
// check 2.2 预约记录列表 // check 2.2 预约记录列表
JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"SUCCESS","","",startTime,scheduleEndTime,memberId,"GROUP_CLASS"); JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"SUCCESS","","",startTime,scheduleEndTime,memberId,"GROUP_CLASS","");
success = false; success = false;
for(int i =0;i<getPageByStudio.size();i++){ for(int i =0;i<getPageByStudio.size();i++){
if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){ if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){
...@@ -284,7 +284,7 @@ public class TestAddMemberReserve extends BaseTestImpl { ...@@ -284,7 +284,7 @@ public class TestAddMemberReserve extends BaseTestImpl {
Assert.assertTrue(success,"取消约课后查询取消状态在会员详情页面未查询到相关信息"); Assert.assertTrue(success,"取消约课后查询取消状态在会员详情页面未查询到相关信息");
// check 3:预约记录列表中已取消 // check 3:预约记录列表中已取消
JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"RESERVE_CANCEL","","",startTime,TimeUtils.getTodayEndTime(),memberId,"GROUP_CLASS"); JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,"RESERVE_CANCEL","","",startTime,TimeUtils.getTodayEndTime(),memberId,"GROUP_CLASS","");
success = false; success = false;
for(int i =0;i<getPageByStudio.size();i++){ for(int i =0;i<getPageByStudio.size();i++){
if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){ if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){
......
...@@ -354,7 +354,7 @@ public class TestAddToQueue extends BaseTestImpl { ...@@ -354,7 +354,7 @@ public class TestAddToQueue extends BaseTestImpl {
} }
Assert.assertTrue(success,message+"在会员详情页面未查询到相关信息"); Assert.assertTrue(success,message+"在会员详情页面未查询到相关信息");
// check 1.2 预约记录列表 // check 1.2 预约记录列表
JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,reserveState,"","",startTime,scheduleEndTime,memberId,"GROUP_CLASS"); JSONArray getPageByStudio = reserveTools.getPageByStudio(courseId,reserveState,"","",startTime,scheduleEndTime,memberId,"GROUP_CLASS","");
success = false; success = false;
for(int i =0;i<getPageByStudio.size();i++){ for(int i =0;i<getPageByStudio.size();i++){
if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){ if (getPageByStudio.getJSONObject(i).getString("id").equals(reserveId)){
......
package com.xiaomai.cases.polar.schedule.camp; package com.xiaomai.cases.polar.schedule.camp;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.reserve.ReserveTools;
import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools; import com.xiaomai.cases.polar.schedule.group.GroupScheduleTools;
import com.xiaomai.cases.polar.training.TrainingTools;
import com.xiaomai.enums.ApiModule; import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType; import com.xiaomai.enums.RequestType;
...@@ -30,10 +35,22 @@ public class TestEditCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo ...@@ -30,10 +35,22 @@ public class TestEditCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo
GroupScheduleTools groupScheduleTools; GroupScheduleTools groupScheduleTools;
@Resource(name = "campScheduleTools") @Resource(name = "campScheduleTools")
CampScheduleTools campScheduleTools; CampScheduleTools campScheduleTools;
@Resource(name = "tools")
Tools tools;
@Resource(name = "reserveTools")
ReserveTools reserveTools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
@Resource(name = "orderTools")
OrderTools orderTools;
String campId = ""; String campId = "";
String chiefCoachId = ""; String chiefCoachId = "";
String ruldId = ""; String ruldId = "";
String memberId = "";
String orderId = "";
String phone="";
@BeforeClass @BeforeClass
public void beforeTest() { public void beforeTest() {
setTestInfo(ApiModule.Polar_Schedule, "API_editCampRuleSchedule", LoginAccount.ADU_PROD, Terminal.B, "adu"); setTestInfo(ApiModule.Polar_Schedule, "API_editCampRuleSchedule", LoginAccount.ADU_PROD, Terminal.B, "adu");
...@@ -62,6 +79,24 @@ public class TestEditCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo ...@@ -62,6 +79,24 @@ public class TestEditCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo
ruldId = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").getJSONObject(0).getString("ruleId"); ruldId = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").getJSONObject(0).getString("ruleId");
int scheduleClassHourBefore = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").getJSONObject(0).getJSONObject("campVO").getIntValue("scheduleClassHour"); int scheduleClassHourBefore = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").getJSONObject(0).getJSONObject("campVO").getIntValue("scheduleClassHour");
//创建排课后,学员报名关联的训练营活动
//搜索目标会员
phone= "15658063769";
memberId = trainingTools.searchTargerMember(phone);
if (memberId.isEmpty()) {
memberId = tools.create("晨晨爸爸", phone).getString("result");
}
//给会员报名
trainingTools.doSignCampOrder(memberId, this.price, this.campId);
orderId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result");
//check 预约记录(训练营预约记录,根据训练营活动筛选)
JSONArray reserverList= reserveTools.getPageByStudio("","","","",null,
null,"","TRAINING_CAMP",campId);
//check 学员报名后生成的预约记录数量
Assert.assertTrue(reserverList.size()==scheduleClassHourBefore,"排课后再报名训练营活动,生成课次的预约记录数量对不上");
//下面要操作缩短结束日期,check //下面要操作缩短结束日期,check
String[] weekDaysArray = {"TUESDAY", "THURSDAY", "SATURDAY", "SUNDAY"}; String[] weekDaysArray = {"TUESDAY", "THURSDAY", "SATURDAY", "SUNDAY"};
List<String> weekdaysList = Arrays.asList(weekDaysArray); List<String> weekdaysList = Arrays.asList(weekDaysArray);
...@@ -92,21 +127,53 @@ public class TestEditCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo ...@@ -92,21 +127,53 @@ public class TestEditCampRuleSchedule extends SelectTargetTrainingCampAndGetInfo
//查询训练营日程详情,check修改项是否被同步修改 //查询训练营日程详情,check修改项是否被同步修改
campScheduleTools.getCampRuleScheduleDetail(ruldId); campScheduleTools.getCampRuleScheduleDetail(ruldId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.chiefCoachId"), chiefCoachId); Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.chiefCoachId"), chiefCoachId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.endDate").substring(0, 9), CommUtil.getNDayEndTimeTamp(22).substring(0, 9)); //Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.endDate").substring(0, 9), CommUtil.getNDayEndTimeTamp(22).substring(0, 9));
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.venueAreaIds").containsAll(venueAreaIds), "场地有空改为有数据后,查看日程详情发现数据没变更"); Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.venueAreaIds").containsAll(venueAreaIds), "场地有空改为有数据后,查看日程详情发现数据没变更");
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.assistCoachIds").containsAll(assistTrainer), "助教有空改为有数据后,查看日程详情发现数据没变更"); Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.assistCoachIds").containsAll(assistTrainer), "助教有空改为有数据后,查看日程详情发现数据没变更");
Assert.assertEquals(XMJSONPath.getJSONObjectByReadPath(dataApi.getApi_response(), "$.result.campVO").getIntValue("totalClassHour"), super.totalClassHour, "总课时数有问题"); Assert.assertEquals(XMJSONPath.getJSONObjectByReadPath(dataApi.getApi_response(), "$.result.campVO").getIntValue("totalClassHour"), super.totalClassHour, "总课时数有问题");
int scheduleClassHourAfter =XMJSONPath.getJSONObjectByReadPath(dataApi.getApi_response(), "$.result.campVO").getIntValue("scheduleClassHour"); int scheduleClassHourAfter = XMJSONPath.getJSONObjectByReadPath(dataApi.getApi_response(), "$.result.campVO").getIntValue("scheduleClassHour");
//校验已排课次数是否同步变更:原排课次数-缩短日期那段时间的次数 //校验已排课次数是否同步变更:原排课次数-缩短日期那段时间的次数
Assert.assertEquals(scheduleClassHourAfter, (scheduleClassHourBefore - loopNum)); Assert.assertEquals(scheduleClassHourAfter, (scheduleClassHourBefore - loopNum));
//check 编辑日程后(缩短日期)预约记录数量减少check
JSONArray reserverListAfter= reserveTools.getPageByStudio("","","","",null,
null,"","TRAINING_CAMP",campId);
Assert.assertTrue(reserverListAfter.size()==scheduleClassHourAfter,"排课后再报名训练营活动,生成课次的预约记录数量对不上");
//筛选出符合条件的数据有多少条
// Long count = reserverListAfter.toJavaList(JSONObject.class).stream().filter(e -> e.getString("tenantMemberCardId").equals(campId)).count();
//check 编辑日程后,对应的预约记录是否同步变更
reserverListAfter.toJavaList(JSONObject.class).stream().forEach(object ->
Assert.assertTrue(object.getJSONArray("assistCoachIds").containsAll(assistTrainer)&&
object.getJSONArray("areaIds").containsAll(venueAreaIds),"编辑日程后,预约记录没同步变更")
);
//作废学员训练营报名订单
orderTools.discard(orderId,"重复录入","自动化测试作废训练营订单");
//作废订单后,学员之前报名训练营生成的课次预约记录要被删除check
JSONArray reserverRecords= reserveTools.getPageByStudio("","","","",null,
null,"","TRAINING_CAMP",campId);
Assert.assertTrue(reserverRecords.size()==0,"作废学员订单后,训练营课次中对应的预约记录没有被删除哈");
} }
@AfterClass(description = "删除此case创建的训练营排课日程") @AfterClass(description = "删除此case创建的训练营排课日程")
public void delData() { public void delData() {
if (null!=campId||!campId.isEmpty()) { if (null != ruldId || !ruldId.isEmpty()) {
campScheduleTools.delCampRuleSchedule(ruldId);
}
if (null != orderId || !orderId.isEmpty()) {
trainingTools.fetchUserTrainingCardList(memberId);
if (!XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").getJSONObject(0).getString("state").equals("DISCARD")) {
orderTools.discard(orderId, "重复录入", "自动化测试作废训练营订单");
}
}
if (null != campId || !campId.isEmpty()) {
this.getTrainingTools().deleteTraining(campId); this.getTrainingTools().deleteTraining(campId);
} }
} }
} }
......
...@@ -2,6 +2,9 @@ package com.xiaomai.cases.polar.schedule.camp; ...@@ -2,6 +2,9 @@ package com.xiaomai.cases.polar.schedule.camp;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.training.TrainingTools;
import com.xiaomai.enums.ApiModule; import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType; import com.xiaomai.enums.RequestType;
...@@ -26,9 +29,17 @@ import java.util.Set; ...@@ -26,9 +29,17 @@ import java.util.Set;
public class TestGetCampScheduleItemDetail extends SelectTargetTrainingCampAndGetInfo { public class TestGetCampScheduleItemDetail extends SelectTargetTrainingCampAndGetInfo {
@Resource(name = "campScheduleTools") @Resource(name = "campScheduleTools")
CampScheduleTools campScheduleTools; CampScheduleTools campScheduleTools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
@Resource(name = "orderTools")
OrderTools orderTools;
@Resource(name = "tools")
Tools tools;
String campId = ""; String campId = "";
String chiefCoachId = ""; String chiefCoachId = "";
String ruldId = ""; String ruldId = "";
String memberId = "";
String orderId = "";
@BeforeClass @BeforeClass
public void beforeTest() { public void beforeTest() {
...@@ -42,6 +53,22 @@ public class TestGetCampScheduleItemDetail extends SelectTargetTrainingCampAndGe ...@@ -42,6 +53,22 @@ public class TestGetCampScheduleItemDetail extends SelectTargetTrainingCampAndGe
campId = super.campId; campId = super.campId;
//获取训练营活动的指定教练ID //获取训练营活动的指定教练ID
chiefCoachId = super.chiefCoachId; chiefCoachId = super.chiefCoachId;
//先报名训练营活动,再创建课次,创建课次后check 课次中有学员,自动生成预约记录
//搜索目标会员
String phone = "15558121569";
memberId = trainingTools.searchTargerMember(phone);
if (memberId.isEmpty()) {
memberId = tools.create("阿杜", phone).getString("result");
}
//给会员报名
trainingTools.doSignCampOrder(memberId, this.price, this.campId);
orderId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result");
trainingTools.getTrainingApplyRecordsList(this.campId, phone);
String memberCardId = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").getJSONObject(0).getString("memberCardId");
//创建训练营排课:按次数 星期:2,4,6,7 //创建训练营排课:按次数 星期:2,4,6,7
campScheduleTools.oneKeyCreateCampRuleSchedule(campId, chiefCoachId, super.courseId, campScheduleTools.oneKeyCreateCampRuleSchedule(campId, chiefCoachId, super.courseId,
super.traineeLowerLimit, super.traineeUpperLimit, super.traineeLowerLimit, super.traineeUpperLimit,
...@@ -79,6 +106,8 @@ public class TestGetCampScheduleItemDetail extends SelectTargetTrainingCampAndGe ...@@ -79,6 +106,8 @@ public class TestGetCampScheduleItemDetail extends SelectTargetTrainingCampAndGe
xmAppApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true); xmAppApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
//断言check //断言check
//课次中有1个学员check
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(xmAppApi.getApi_response(), "$.result.memberReserveList").size() == 1, "排课前有学员报名了关联的训练营活动,所以课次中有1个预约学员,目前没发现课次中有学员");
//主教练check //主教练check
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getApi_response(), "$.result.chiefCoachId"), chiefCoachId, "教练和创建时设置的不一致"); Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getApi_response(), "$.result.chiefCoachId"), chiefCoachId, "教练和创建时设置的不一致");
//助教check //助教check
...@@ -86,10 +115,26 @@ public class TestGetCampScheduleItemDetail extends SelectTargetTrainingCampAndGe ...@@ -86,10 +115,26 @@ public class TestGetCampScheduleItemDetail extends SelectTargetTrainingCampAndGe
//场地check //场地check
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(xmAppApi.getApi_response(), "$.result.venueAreaIds").isEmpty(), "创建排课时场地设置为空,但是课次详情中显示不为空哦"); Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(xmAppApi.getApi_response(), "$.result.venueAreaIds").isEmpty(), "创建排课时场地设置为空,但是课次详情中显示不为空哦");
//会员退款订单check
trainingTools.refundCampOrder(memberId, this.price, memberCardId, this.totalClassHour);
//退单后再次check课次详情
campScheduleTools.getCampScheduleItemDetail(scheduleId);
JSONArray memberReserveList = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.memberReserveList");
Assert.assertTrue(memberReserveList == null || memberReserveList.size() == 0, "学员退单后,没有从课次中移除");
} }
@AfterClass(description = "删除此case创建的训练营排课日程") @AfterClass(description = "删除此case创建的训练营排课日程")
public void delData() { public void delData() {
if (null != orderId || !orderId.isEmpty()) {
trainingTools.fetchUserTrainingCardList(memberId);
if (!XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").getJSONObject(0).getString("state").equals("REFUNDED")) {
orderTools.discard(orderId, "重复录入", "自动化测试作废训练营订单");
}
}
if (null != campId || !campId.isEmpty()) { if (null != campId || !campId.isEmpty()) {
this.getTrainingTools().deleteTraining(campId); this.getTrainingTools().deleteTraining(campId);
} }
......
...@@ -111,4 +111,25 @@ public class RuleTools extends XMBaseTest { ...@@ -111,4 +111,25 @@ public class RuleTools extends XMBaseTest {
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true); dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result"); return dataApi.getBodyInJSON().getJSONObject("result");
} }
/**
* 获取训练营签到规则
* @return
*/
public JSONObject getCampBookingRules(){
dataApi.setApiModule(ApiModule.Polar_Setting)
.setApiName("API_getCampBookingRules")
.setTerminal(Terminal.B);
super.beforeDataRequest();
JSONObject body= new JSONObject();
body.put("brandId",dataApi.getLoginInfo().getBrandId());
body.put("studioId",dataApi.getLoginInfo().getStudioId());
body.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
} }
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