Commit fff239e8 by xyy

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/xiaomai/enums/LoginAccount.java
parents 34c81d07 ea01aad8
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="约课case"> <!-- 起一个好听且唯一的名字-->
<test name="约课模块测试" preserve-order="true" verbose="3"> <!-- 再起一个听且唯一的名字 -->
<packages>
<package name="com.xiaomai.cases.lunar.reserve.*"></package> <!-- 添加自己想要集成测试的case 范围自己定 -->
</packages>
</test>
<listeners>
<listener class-name="com.xiaomai.client.RetryListener" />
<listener class-name="com.xiaomai.client.TestListener" />
<listener class-name="com.xiaomai.client.ExtentTestNGIReporterListener"/>
</listeners>
</suite>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="订单case"> <!-- 起一个好听且唯一的名字-->
<test name="订单测试" preserve-order="true" verbose="3"> <!-- 再起一个听且唯一的名字 -->
<packages>
<package name="com.xiaomai.cases.lunar.order.*"></package> <!-- 添加自己想要集成测试的case 范围自己定 -->
</packages>
</test>
<listeners>
<listener class-name="com.xiaomai.client.RetryListener" />
<listener class-name="com.xiaomai.client.TestListener" />
<listener class-name="com.xiaomai.client.ExtentTestNGIReporterListener"/>
</listeners>
</suite>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="小程序装修case"> <!-- 起一个好听且唯一的名字-->
<test name="小程序装修测试" preserve-order="true" verbose="3"> <!-- 再起一个听且唯一的名字 -->
<packages>
<package name="com.xiaomai.cases.polar.applet.*"></package> <!-- 添加自己想要集成测试的case 范围自己定 -->
</packages>
</test>
<listeners>
<listener class-name="com.xiaomai.client.RetryListener" />
<listener class-name="com.xiaomai.client.TestListener" />
<listener class-name="com.xiaomai.client.ExtentTestNGIReporterListener"/>
</listeners>
</suite>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="约课case"> <!-- 起一个好听且唯一的名字-->
<test name="约课模块测试" preserve-order="true" verbose="3"> <!-- 再起一个听且唯一的名字 -->
<packages>
<package name="com.xiaomai.cases.polar.reserve.*"></package> <!-- 添加自己想要集成测试的case 范围自己定 -->
</packages>
</test>
<listeners>
<listener class-name="com.xiaomai.client.RetryListener" />
<listener class-name="com.xiaomai.client.TestListener" />
<listener class-name="com.xiaomai.client.ExtentTestNGIReporterListener"/>
</listeners>
</suite>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="通用设置场景case"> <!-- 起一个好听且唯一的名字-->
<suite name="线索管理case"> <!-- 起一个好听且唯一的名字-->
<test name="通用设置模块测试" preserve-order="true" verbose="3"> <!-- 再起一个听且唯一的名字 -->
<test name="线索管理测试" preserve-order="true" verbose="3"> <!-- 再起一个听且唯一的名字 -->
<packages>
<package name="com.xiaomai.cases.polar.clue.*"></package> <!-- 添加自己想要集成测试的case 范围自己定 -->
</packages>
......
......@@ -45,6 +45,10 @@ public abstract class BaseTestImpl extends XMBaseTest implements BaseTestInterfa
return this.caseOwner;
}
public void setLoginUser(String loginUser) {
this.loginUser = loginUser;
}
public void setTestInfo(String apiModuleName, String loginUser, String terminal, String caseOwner) {
this.apiModuleName = apiModuleName;
this.loginUser = loginUser;
......
package com.xiaomai.cases.lunar.minmembercard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
public class MinCardTools extends XMBaseTest {
/**
* @param
* @description:小程序查看在售会员卡
* @author: yangjian
**/
public JSONObject fetchOnSaleMemberCard(String title, DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Card)
.setApiName("API_fetchOnSaleMemberCard")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
//jsonObject.put("memberCardIds","");
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("title",title);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
}
package com.xiaomai.cases.lunar.order;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
public class OrderCTools extends XMBaseTest {
/**
* @param
* @description:C端购买0元卡
* @param activatePattern [ "即时生效", "首次使用生效", "指定日期生效" ] 激活方式[ PURCHASE, FIRST_USED, SPECIFIC_DATE ]
* @param cardId 卡id
* @param cardSnapshotId:卡快照id
* @param memberId:会员id
* @param receivableAmount:应收金额
* @author: yangfangfang
**/
public JSONObject purchaseCard(String activatePattern, String cardId,String cardSnapshotId,String memberId,float receivableAmount,DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Order)
.setApiName("API_purchaseCard")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("activatePattern",activatePattern);
jsonObject.put("cardId",cardId);
jsonObject.put("cardSnapshotId",cardSnapshotId);
jsonObject.put("memberId",memberId);
jsonObject.put("memo", RandomStringUtil.randomString(6));
jsonObject.put("receivableAmount",receivableAmount);
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("objectId", RandomStringUtil.randomString(16));
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:获取C端订单详情
* @param id 订单ID
* @author: yangfangfang
**/
public JSONObject getDetail(String id,DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Order)
.setApiName("API_getDetail")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",id);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:获取C端我的订单列表
* @param receiverId 会员ID
* @author: yangfangfang
**/
public JSONObject pageOrder(String receiverId,DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Order)
.setApiName("API_pageOrder")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("receiverId",receiverId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
}
package com.xiaomai.cases.lunar.order;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.math.BigDecimal;
public class TestListByVoucherId extends BaseTestImpl {
String cardId;
OrderTools orderTools=new OrderTools();
CardTools cardTools=new CardTools();
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Order,"API_listByVoucherId", LoginAccount.GYM_MINIAPPC, Terminal.minApp,"yff");
super.beforeTest();
}
@Test(description = "C端获取订单支付记录")
public void testListByVoucherId() {
//切换B端购买实付金额>0的订单,否则0元单,看不了订单-支付记录.而且memberId只能用B/C通用的一个会员:1805435813468483586-GYM_MINIAPPC
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
//获取会员卡信息
//获取会员卡列表,没有则新建一个
int cardTotal = Integer.parseInt(orderTools.fetchPageOfMemberCard("次卡").getJSONObject("result").getString("total"));
if (cardTotal == 0) {
cardId = cardTools.memberCardCreate("次卡-创建订单会员卡"+ TimeUtils.getCurrentTime()).getString("result");
}
JSONObject memberCard=orderTools.fetchPageOfMemberCard("次卡");
cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
BigDecimal quantity= new BigDecimal(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("balance"));
float price= Float.parseFloat(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("price"));
int validPeriod= Integer.parseInt(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("validPeriod"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取签单要用的卡快照id
String latestSnapshotId=orderTools.fetchDetailById(cardId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("latestSnapshotId");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//检查会员对该卡是否超出购买上限
boolean limitResult=orderTools.checkAllowPurchase("MEMBER_CARD",cardId,"1805435813468483586","1",xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getBoolean("success");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if(limitResult == true) {
//创建订单
JSONObject orderResult = orderTools.signOrder(cardId, latestSnapshotId, quantity, price, validPeriod, latestSnapshotId, price / 2, "PURCHASE",
"MEMBER_CARD", "1805435813468483586", price - price / 2, price - price / 2, "1", dataUserInfo);
String success = orderResult.getString("success");
String getDetailId = orderResult.getString("result");
Assert.assertEquals(success, "true", "创建签单订单失败");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取B端订单详情
JSONObject getDetailResult = orderTools.getDetail(getDetailId, dataUserInfo);
String id = getDetailResult.getJSONObject("result").getString("id");//订单ID
String businessNo = getDetailResult.getJSONObject("result").getString("businessNo");//订单号
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//切换C端看B端创建的非0元单的支付记录
DataUserInfo info = new DataUserInfo();
info.setTerminal(Terminal.minApp);
info.setLoginUser(LoginAccount.GYM_MINIAPPC);
//获取订单详情-支付记录
JSONObject ListByVoucherId = new JSONObject();
ListByVoucherId.put("id", id);
xmAppApi.doRequest(RequestType.JSON, params, ListByVoucherId.toString(), headers).assetsSuccess(true);
JSONObject ListByVoucherIdResponse = xmAppApi.getBodyInJSON();
String ListByVoucherIdSuccess = ListByVoucherIdResponse.getString("success");
String ListByVoucherIdVoucherBusinessNo = ListByVoucherIdResponse.getJSONArray("result").getJSONObject(0).getString("businessNo");//订单号
Assert.assertEquals(ListByVoucherIdSuccess, "true", "C端获取B端创建非0元单的订单详情-支付记录失败");
Assert.assertEquals(ListByVoucherIdVoucherBusinessNo.equals(businessNo), true, "C端获取订单详情-支付记录失败的订单与B端创建订单非一个订单");
}
}
}
package com.xiaomai.cases.lunar.order;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.minmembercard.MinCardTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.math.BigDecimal;
public class TestPurchaseCard extends BaseTestImpl {
String memberId;
String cardId;
MinCardTools minCardTools=new MinCardTools();
UserTools userTools=new UserTools();
OrderCTools orderCTools=new OrderCTools();
OrderTools orderTools=new OrderTools();
CardTools cardTools=new CardTools();
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Order,"API_purchaseCard", LoginAccount.GYM_MINIAPPC, Terminal.minApp,"yff");
super.beforeTest();
}
@Test(description = "C端购买订单")
public void testPurchaseCard(){
//获取会员信息
memberId = userTools.getMemberInfo().getString("memberId");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取会员卡
cardId=minCardTools.fetchOnSaleMemberCard("C端0元会员卡自动化").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("activatePattern","PURCHASE");
jsonObject.put("cardId",cardId);
jsonObject.put("cardSnapshotId",cardId);
jsonObject.put("memberId",memberId);
jsonObject.put("memo", RandomStringUtil.randomString(6));
jsonObject.put("receivableAmount",0);
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("objectId", RandomStringUtil.randomString(16));
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toString(),headers).assetsSuccess(true);
JSONObject response=xmAppApi.getBodyInJSON();
String success=response.getString("success");
String signId=response.getString("result");//订单ID
Assert.assertEquals(success,"true","C端创建0元签单失败");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验C端订单详情
JSONObject getDetail=orderCTools.getDetail(signId);
String getDetailId=getDetail.getJSONObject("result").getString("id");
String getDetailBusinessNo=getDetail.getJSONObject("result").getString("businessNo");
String getDetailState=getDetail.getJSONObject("result").getString("state");
String getDetailSource=getDetail.getJSONObject("result").getString("source");
String getDetailSuccess=getDetail.getString("success");
Assert.assertEquals(getDetailSuccess,"true","获取创建的签单订单详情失败");
Assert.assertEquals(getDetailId.equals(signId),true,"获取签单订单详情和创建的签单订单ID不一致");
Assert.assertEquals(getDetailState,"PAID","创建签单订单成功,但订单状态不是已完成");
Assert.assertEquals(getDetailSource,"ONLINE_MALL","C端创建的签单订单,订单来源非会员创建");
//校验C端订单列表
JSONObject pageOrder=orderCTools.pageOrder(memberId);
int pageOrderPages=Integer.parseInt(pageOrder.getJSONObject("result").getString("pages"));
int pageOrderTotal=Integer.parseInt(pageOrder.getJSONObject("result").getString("total"));
for(int k=0; k == pageOrderPages+1; k++){
int n =k==pageOrderPages ? (pageOrderTotal%10==0 ? 10 : pageOrderTotal%10) : 10;
JSONArray records=pageOrder.getJSONObject("result").getJSONArray("records");
boolean flag=true;
for(int i=0; i<n; i++){
String pageOrderId=records.getJSONObject(i).getString("id");
if(pageOrderId.equals(signId)){
flag = true;
break;
}
}
Assert.assertEquals(true,flag,"在订单列表中未查询到创建的签单订单");
}
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//切换B端校验
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验获取B端订单管理列表
JSONObject pageVoucherResult=orderTools.pageVoucher1(xmAppApi.getLoginInfo().getStudioId(),getDetailBusinessNo,dataUserInfo);
int total=Integer.parseInt(pageVoucherResult.getJSONObject("result").getString("total"));
Assert.assertEquals(total>=1,true,"订单管理列表获取创建的签单订单失败");
//校验获取B端签单订单详情
JSONObject getDetailBResult=orderTools.getDetail(signId,dataUserInfo);
String getDetailBId = getDetailBResult.getJSONObject("result").getString("id");
String getDetailBBusinessNo = getDetailBResult.getJSONObject("result").getString("businessNo");
String getDetailBSource=getDetailBResult.getJSONObject("result").getString("source");
String getDetailBmemberId=getDetailBResult.getJSONObject("result").getJSONObject("receiver").getString("id");//会员id
BigDecimal quantity= new BigDecimal(getDetailBResult.getJSONObject("result").getJSONArray("voucherItems").getJSONObject(0).getJSONObject("purchaseCardSkuAttr").getJSONArray("skuItemAttrs").getJSONObject(0).getString("quantity"));
Assert.assertEquals(getDetailBId.equals(signId),true,"C端创建的签单订单在B端和C端展示的订单id不一致");
Assert.assertEquals(getDetailBBusinessNo.equals(getDetailBusinessNo),true,"C端创建的签单订单在B端和C端展示的订单号不一致");
Assert.assertEquals(getDetailBSource,"ONLINE_MALL","C端创建的签单订单,B端展示订单来源非会员创建");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验B端获取会员下的购买的会员卡是否生成卡包
//获取会员下的购买的会员卡
JSONObject fetchUserCardListResult=orderTools.fetchUserCardList("MEMBER",getDetailBmemberId,"NORMAL",dataUserInfo);
String fetchUserCardListId=fetchUserCardListResult.getJSONArray("result").getJSONObject(0).getString("id");//权益ID
//获取售卖详情
JSONObject findDetailByIdResult=cardTools.membercardfindDetailById(fetchUserCardListId);
String findDetailByIdState=findDetailByIdResult.getJSONObject("result").getString("state");//卡状态
String findDetailByIdTradeOrderNumber=findDetailByIdResult.getJSONObject("result").getString("tradeOrderNumber");//订单号
Assert.assertEquals(findDetailByIdTradeOrderNumber.equals(getDetailBBusinessNo),true,"创建C端已完成订单,未生成卡包");//断言的别意:生成的卡包的订单号和上述创建订单的订单号一致不一致的校验
Assert.assertEquals(findDetailByIdState,"NORMAL","创建即时生效的已完成订单,未生成生效中卡包");
//B端退C端订单
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//查询要退的卡id 从listUserRefundableCard-查询用户可退的会员卡列表中获取
JSONObject listUserRefundableCardResult=orderTools.listUserRefundableCard("MEMBER","",getDetailBmemberId,dataUserInfo);
String listUserRefundableId=listUserRefundableCardResult.getJSONArray("result").getJSONObject(0).getString("id");
//查询订单或者收支可退流水金额(包含乐动收银状态信息)
boolean checkRefundableAmountResult=orderTools.checkRefundableAmount(getDetailBId,0,dataUserInfo).getBoolean("success");
if(checkRefundableAmountResult == true) {
//退单-会员卡
JSONObject refundOrderResult = orderTools.refundOrder(0, listUserRefundableId, quantity, 0, "MEMBER_CARD",
getDetailBmemberId, 0, 0, "1",dataUserInfo);
String refundOrderSuccess = refundOrderResult.getString("success");
String refundOrderGetDetailId = refundOrderResult.getString("result");
Assert.assertEquals(refundOrderSuccess, "true", "创建的C端订单退单失败");
}
}
}
package com.xiaomai.cases.lunar.reserve;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.setting.rules.RuleTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.Random;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-27 11:03
* @Description: 编辑约课规则小程序查询规则
* @Version: 1.0
*/
public class TestGetGroupBookingRules extends BaseTestImpl {
@Resource(name = "reserveCTools")
ReserveCTools reserveCTools;
@Resource(name = "ruleTools")
RuleTools ruleTools;
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Lunar_Reserve, "API_getGroupBookingRules", LoginAccount.GYM_MINIAPPC, Terminal.minApp, "xym");
super.beforeTest();
}
@DataProvider
public Object[][] dataProvider() {
Random random = new Random();
int bookingSeatCount = random.nextInt(10) + 1; // 席位
return new Object[][]{
{true, bookingSeatCount, true, true, random.nextInt(30) + 10, true, random.nextInt(1000) + 10, random.nextInt(5) + 1, true, random.nextInt(1000) + 10, "minutes", true, random.nextInt(1000) + 10, "minutes"},
{false, bookingSeatCount, false, false, random.nextInt(30) + 10, false, random.nextInt(1000) + 10, random.nextInt(5) + 1, false, random.nextInt(1000) + 10, "minutes", false, random.nextInt(1000) + 10, "minutes"},
};
}
@Test(dataProvider = "dataProvider")
public void testGetGroupBookingRules(boolean allowQueuing, int bookingSeatCount, boolean xcxAutoSignIn, boolean scanSignIn, int signInBeforeMinutes,
boolean bookingStartRuleRequest, int startComingDayMinuteOffset, int startComingDays, boolean bookingEndRuleRequest,
int endBeforeMinutes, String endBeforeUnit, boolean cancelBookingRuleRequest, int cancelBookingBeforeMinutes, String cancelBookingBeforeUnit) {
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
JSONObject getRules = ruleTools.getGroupBookingRules(); // 获取场馆团课预约规则
String id = getRules.getString("id"); // 获取规则id
ruleTools.saveGroupBookingRules(id, allowQueuing, bookingSeatCount, xcxAutoSignIn, scanSignIn, signInBeforeMinutes, bookingStartRuleRequest, startComingDayMinuteOffset, startComingDays, bookingEndRuleRequest, endBeforeMinutes, endBeforeUnit, cancelBookingRuleRequest, cancelBookingBeforeMinutes, cancelBookingBeforeUnit,dataUserInfo);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
getRules = reserveCTools.getGroupBookingRules();
for (int i = 0; i < 14; i++){
Assert.assertEquals(getRules.getBooleanValue("allowQueuing"),allowQueuing);
Assert.assertEquals(getRules.getIntValue("bookingSeatCount"),bookingSeatCount);
Assert.assertEquals(getRules.getBooleanValue("xcxAutoSignIn"),xcxAutoSignIn);
Assert.assertEquals(getRules.getBooleanValue("scanSignIn"),scanSignIn);
Assert.assertEquals(getRules.getIntValue("signInBeforeMinutes"),signInBeforeMinutes);
if (bookingStartRuleRequest){ // 预约时间限制
Assert.assertEquals(getRules.getJSONObject("groupBookingStartRuleVO").getIntValue("bookingStartComingDays"),startComingDays);
Assert.assertEquals(getRules.getJSONObject("groupBookingStartRuleVO").getIntValue("bookingStartComingDayMinuteOffset"),startComingDayMinuteOffset);
}
Assert.assertEquals(getRules.getJSONObject("groupBookingStartRuleVO").getBooleanValue("limit"),bookingStartRuleRequest);
if (bookingEndRuleRequest){ // 截止预约时间限制
Assert.assertEquals(getRules.getJSONObject("groupBookingEndRuleVO").getIntValue("bookingEndBeforeMinutes"),endBeforeMinutes);
Assert.assertEquals(getRules.getJSONObject("groupBookingEndRuleVO").getString("bookingEndBeforeUnit"),endBeforeUnit);
}
Assert.assertEquals(getRules.getJSONObject("groupBookingEndRuleVO").getBooleanValue("limit"),bookingEndRuleRequest);
if (cancelBookingRuleRequest){ // 取消预约限制
Assert.assertEquals(getRules.getJSONObject("cancelGroupBookingRuleVO").getIntValue("cancelBookingBeforeMinutes"),cancelBookingBeforeMinutes);
Assert.assertEquals(getRules.getJSONObject("cancelGroupBookingRuleVO").getString("cancelBookingBeforeUnit"),cancelBookingBeforeUnit);
}
Assert.assertEquals(getRules.getJSONObject("cancelGroupBookingRuleVO").getBooleanValue("limit"),cancelBookingRuleRequest);
}
}
}
\ No newline at end of file
package com.xiaomai.cases.lunar.reserve;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve
* @Author: xuyamei
* @CreateTime: 2024-06-25 11:55
* @Description:
* @Version: 1.0
*/
public class TestMemberTimetable extends BaseTestImpl {
@Resource(name = "userTools")
UserTools userTools;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Reserve,"API_memberTimetable", LoginAccount.GYM_MINIAPPC, Terminal.minApp,"xym");
super.beforeTest();
}
@Test
public void testMemberTimetable() {
String memberId = userTools.getMemberInfo().getString("memberId");
JSONObject body = new JSONObject();
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("startDate", TimeUtils.getTodayTime());
body.put("endDate",TimeUtils.getTodayEndTime());
body.put("courseChooseEnum","ALL");
body.put("memberId",memberId);
xmAppApi.doRequest(RequestType.JSON,params,body.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.lunar.user;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.springframework.stereotype.Component;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.reserve.user
* @Author: xuyamei
* @CreateTime: 2024-06-25 13:42
* @Description: TODO
* @Version: 1.0
*/
@Component("userTools")
public class UserTools extends XMBaseTest {
public void setUP(String apiName, DataUserInfo... userInfo) {
dataApi.setApiModule(ApiModule.Lunar_User)
.setApiName(apiName)
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfo);
}
/**
* @description: 获取会员信息
* @author: xuyamei
* @date: 2024/6/25 13:50
* @param userInfo
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getMemberInfo(DataUserInfo... userInfo) {
setUP("API_getMemberInfo", userInfo);
JSONObject body = new JSONObject();
body.put("userId",dataApi.getLoginInfo().getUser());
body.put("brandId",dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
}
......@@ -35,7 +35,7 @@ public class AdminTools extends XMBaseTest {
super.beforeDataRequest(dataUserInfos);
JSONObject body = new JSONObject();
body.put("phone", RandomStringUtil.randomMobile("100"));
body.put("phone", RandomStringUtil.randomMobile("103"));
String name = RandomStringUtil.random_name();
body.put("name", name);
body.put("nickName", name);
......@@ -117,11 +117,11 @@ public class AdminTools extends XMBaseTest {
* @param adminId:员工id
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getStudioAdmin(String adminId){
public JSONObject getStudioAdmin(String adminId,DataUserInfo...dataUserInfo){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_getStudioAdmin")
.setTerminal(Terminal.B);
super.beforeDataRequest();
super.beforeDataRequest(dataUserInfo);
String body = "{\"id\":\""+adminId+"\"}";
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
......@@ -134,10 +134,27 @@ public class AdminTools extends XMBaseTest {
* @param body:请求参数
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject pageStudioAdmin(String body){
public JSONObject pageStudioAdmin(String body,DataUserInfo...userInfo){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_pageStudioAdmin")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:查询帐号下可切换的场馆列表
* @author: yangjian
* @date: 2024/2/29 17:58
* @param body:请求参数
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject pagelistAdmins(String body){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_listAdmins")
.setTerminal(Terminal.B);
super.beforeDataRequest();
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
......@@ -221,6 +238,127 @@ public class AdminTools extends XMBaseTest {
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
}
/**
* @description:检查手机号是品牌下场馆的主账号
* @author: xuyamei
* @date: 2024/7/1 11:06
* @param dataUserInfo
* @return: com.alibaba.fastjson.JSONArray
**/
public JSONArray findStudioBossInBrand(DataUserInfo...dataUserInfo) {
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_findStudioBossInBrand")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfo);
JSONObject body = new JSONObject();
body.put("id", dataApi.getLoginInfo().getAdminId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONArray("result");
}
/**
* @description:获取手机号在品牌下对应的员工
* @author: xuyamei
* @date: 2024/7/1 11:20
* @param phone
* @param dataUserInfo
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getAdminByPhone(String phone,DataUserInfo...dataUserInfo) {
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_getAdminByPhone")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfo);
JSONObject body = new JSONObject();
body.put("phone", phone);
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* @description 复用已有员工信息
* @author: xuyamei
* @date: 2024/7/1 11:37
* @param body :请求参数
* @param dataUserInfo
* @return: void
**/
public void useBrandAdmin(JSONObject body,DataUserInfo...dataUserInfo) {
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_useBrandAdmin")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfo);
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
}
/**
* @description:校验场馆员工离职
* @author: xuyamei
* @date: 2024/7/1 16:16
* @param userInfo
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject checkDepartStudioAdmin(String id,DataUserInfo...userInfo){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_checkDepartStudioAdmin")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("id", id);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* @description:校验取消授课或者移除所授课程
* @author: xuyamei
* @date: 2024/7/1 16:54
* @param id :员工id
* @param teaching :是否授课
* @param coachTeachingTypes :授课类型 ["LEAGUE_CLASS","PERSONAL_TRAINERS", "TRAINING_CAMP"]
* @param userInfo
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject checkModifyTeaching(String id,boolean teaching,JSONArray coachTeachingTypes,DataUserInfo...userInfo){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_checkModifyTeaching")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfo);
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("id",id);
JSONObject teach = new JSONObject();
teach.put("teaching", teaching); // 是否授课
teach.put("coachTeachingTypes", coachTeachingTypes);
body.put("teaching",teach);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.studioConfig.ConfigTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
......@@ -11,7 +13,6 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import javax.swing.*;
import java.util.Random;
/**
......@@ -28,6 +29,7 @@ public class TestAddStudioAdmin extends BaseTestImpl {
@Resource(name = "configTools")
ConfigTools configTools;
private String phone;
@BeforeClass
public void beforeTest(){
......@@ -39,6 +41,7 @@ public class TestAddStudioAdmin extends BaseTestImpl {
public void testAddStudioAdmin(){
String[] role = {"店长","教练","销售主管","财务","前台"};
Random rand = new Random();
JSONObject addRequest = adminTools.addStudioAdmin(role[rand.nextInt(5)]);
// 添加角色成功后
String result = dataApi.getBodyInJSON().getString("result");
......@@ -49,6 +52,7 @@ public class TestAddStudioAdmin extends BaseTestImpl {
}
// 查询员工详情内容
JSONObject adminInfo = adminTools.getStudioAdmin(result);
phone = adminInfo.getJSONObject("result").getString("phone");
String[] resultString = {"name","phone","roles","teaching"}; // 新建之后验证相应的值
for (int i = 0; i < resultString.length; i++){
// check 1:创建员工时的值与查询员工详情时的值是否一致
......@@ -58,7 +62,7 @@ public class TestAddStudioAdmin extends BaseTestImpl {
}
try {
Thread.sleep(2000);
Thread.sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -69,10 +73,48 @@ public class TestAddStudioAdmin extends BaseTestImpl {
}
@Test(description = "添加员工,由于没有删除员工的操作,则每次随机取一个角色")
@Test(description = "将添加的手机号在同品牌下其他场馆添加复用",priority = 1)
public void testAddStudioAdmin1(){
for (int i = 0; i < 2; i++){
JSONObject addRequest = adminTools.addStudioAdmin("教练");
// 切换到另外一个场馆
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD2);
String[] role = {"StudioOwner","StudioSaleManager","StudioFinance","StudioReception","StudioOwner"};
Random rand = new Random();
// 获取该手机号的员工信息
JSONObject getAdminByPhone = adminTools.getAdminByPhone(phone,dataUserInfo);
String adminId = getAdminByPhone.getString("id");
String name = getAdminByPhone.getString("name");
JSONArray roles = new JSONArray();
roles.add(role[rand.nextInt(5)]);
getAdminByPhone.put("roles",roles); // 角色
adminTools.useBrandAdmin(getAdminByPhone,dataUserInfo);
// 查询员工详情内容
JSONObject adminInfo = adminTools.getStudioAdmin(adminId,dataUserInfo);
String[] resultString = {"name","phone","roles","teaching"}; // 新建之后验证相应的值
for (int i = 0; i < resultString.length; i++){
// check 1:创建员工时的值与查询员工详情时的值是否一致
String checkResult = resultString[i].equals("roles") ? roles.getString(0) : getAdminByPhone.getString(resultString[i]);
String expected = resultString[i].equals("roles") ? adminInfo.getJSONObject("result").getJSONArray(resultString[i]).getJSONObject(0).getString("code") : adminInfo.getJSONObject("result").getString(resultString[i]);
Assert.assertEquals(checkResult,expected,"添加员工失败,员工详情与创建员工时的信息不一致");
}
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// check 2: 生成对应的操作日志
String body = "{\"current\":0,\"size\":10,\"domainId\":\""+dataApi.getLoginInfo().getStudioId()+"\",\"brandId\": \""+xmAppApi.getLoginInfo().getBrandId()+"\",\"studioId\": \""+dataApi.getLoginInfo().getStudioId()+"\",\"content\": \""+name+"\",\"opEventKey\":\"ADD_ADMIN\"}";
JSONObject response = configTools.getOpauditPage(body,dataUserInfo);
Assert.assertEquals(response.getJSONObject("result").getJSONArray("records").getJSONObject(0).getJSONObject("target").getString("targetId"),adminId,"添加员工未生成操作日志");
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.Random;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-07-01 16:17
* @Description: 校验场馆员工离职
* @Version: 1.0
*/
public class TestCheckDepartStudioAdmin extends BaseTestImpl {
@Resource(name = "adminTools")
AdminTools adminTools;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Admin,"API_checkDepartStudioAdmin", LoginAccount.GYM_PROD, Terminal.B,"xym");
super.beforeTest();
}
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{true},
{false}
};
}
@Test(dataProvider = "dataProvider")
public void checkDepartStudioAdmin(boolean isSuccess){
if (isSuccess){
// 查询的账号有不能离职的原因
JSONObject response = adminTools.checkDepartStudioAdmin(xmAppApi.getLoginInfo().getAdminId());
Assert.assertTrue(response.getJSONArray("disables").size()>0,"员工不能离职但是未返回不能离职的原因");
}else {
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD2);
// 查询的账号可以离职
String body = "{\"size\":20,\"current\":0,\"state\":\"DUTY\"}";
JSONObject adminPage = adminTools.pageStudioAdmin(body,dataUserInfo);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total >0){
int pages = Integer.parseInt(adminPage.getJSONObject("result").getString("pages"));
// 随机获取一页
Random rand = new Random();
int pageIndex = rand.nextInt(pages);
// 随机获取一页的随机员工
Random random = new Random();
int index = pageIndex+1 == pages ? random.nextInt(total%20-1)+1 : random.nextInt(19)+1;
body = "{\"size\":20,\"current\":"+pageIndex+",\"state\":\"DUTY\"}";
adminPage = adminTools.pageStudioAdmin(body,dataUserInfo);
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(index).getString("id");
JSONObject response = adminTools.checkDepartStudioAdmin(adminId,dataUserInfo);
Assert.assertTrue(response.getJSONArray("disables").size() == 0,"员工能离职但是未返回不能离职的原因");
}
}
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.course.CourseTools;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-07-01 16:57
* @Description: 校验取消授课或者移除所授课程
* @Version: 1.0
*/
public class TestCheckModifyTeaching extends BaseTestImpl {
@Resource(name = "adminTools")
AdminTools adminTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Admin,"API_addStudioAdmin", LoginAccount.GYM_PROD, Terminal.B,"xym");
super.beforeTest();
}
@DataProvider()
public Object[][] data() {
JSONArray coachTeachingTypes = new JSONArray();
coachTeachingTypes.add("LEAGUE_CLASS");
coachTeachingTypes.add("PERSONAL_TRAINERS");
coachTeachingTypes.add("TRAINING_CAMP");
return new Object[][]{
{false,coachTeachingTypes},
{true,coachTeachingTypes}
};
}
@Test(description = "测试修改老师授课状态",dataProvider = "data")
public void testCheckModifyTeaching(boolean teaching,JSONArray coachTeachingTypes) {
// 查询存量的课程分类
String categoryId = courseCategoryTools.getCourseCategoryPage("瑜伽");
// 查询私教课
courseTools.getPersonalOrGroupCourseId("PERSONAL","瑜伽",categoryId,"STUDIO","ONE_TO_MANY",2,1);
// 课程类型
if (teaching){
coachTeachingTypes.remove("PERSONAL_TRAINERS");
}
JSONObject response = adminTools.checkModifyTeaching(xmAppApi.getLoginInfo().getAdminId(),teaching,coachTeachingTypes);
Assert.assertTrue(response.getJSONArray("disables").size()>0,"修改是否授课或者还有其他关联业务关联不能移除 返回的结果是空");
}
}
......@@ -12,6 +12,7 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.Random;
/**
* @BelongsProject: xm-sportstest
......@@ -31,20 +32,29 @@ public class TestDepartStudioAdmin extends BaseTestImpl {
@BeforeClass
@Override
public void beforeTest() {
setTestInfo(ApiModule.Polar_Admin,"API_departStudioAdmin", LoginAccount.GYM_PROD, Terminal.B,"xym");
setTestInfo(ApiModule.Polar_Admin,"API_departStudioAdmin", LoginAccount.GYM_PROD2, Terminal.B,"xym");
super.beforeTest();
}
@Test
public void testDepartStudioAdmin() {
// 获取在职员工
String body = "{\"size\":10,\"current\":0,\"state\":\"DUTY\"}";
String body = "{\"size\":20,\"current\":0,\"state\":\"DUTY\"}";
JSONObject adminPage = adminTools.pageStudioAdmin(body);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total>1){
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("id");
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("phone");
String name = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("name");
int pages = Integer.parseInt(adminPage.getJSONObject("result").getString("pages"));
// 随机获取一页
Random rand = new Random();
int pageIndex = rand.nextInt(pages);
// 随机获取一页的随机员工
Random random = new Random();
int index = pageIndex+1 == pages ? random.nextInt(total%20-1)+1 : random.nextInt(19)+1;
body = "{\"size\":20,\"current\":"+pageIndex+",\"state\":\"DUTY\"}";
adminPage = adminTools.pageStudioAdmin(body);
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(index).getString("id");
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(index).getString("phone");
String name = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(index).getString("name");
body = "{\"id\":\""+adminId+"\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
try {
......@@ -58,7 +68,7 @@ public class TestDepartStudioAdmin extends BaseTestImpl {
total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
Assert.assertEquals(total,1,"员工离职失败,用手机号查询离职员工未返回数据");
try {
Thread.sleep(1000);
Thread.sleep(12000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestEditCurrentAdmin extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_editCurrentAdmin")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "编辑个人资料")
public void testEditCurrentAdmin() {
Long birthDate = TimeUtils.getBeforeDayDate(7305);
JSONObject Object = new JSONObject();
Object.put("content", "自动化账户");
Object.put("imageId", "1761941332668588033");
JSONObject Object1 = new JSONObject();
Object1.put("intro", "自动化个人简介-个人资料编辑");
JSONObject jsonObject = new JSONObject();
jsonObject.put("coachInfo",Object1);
jsonObject.put("nickName","自动化昵称");
jsonObject.put("birthDate",birthDate);
jsonObject.put("gender","MAN");
jsonObject.put("id",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("avatar",Object);
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
}
......@@ -8,12 +8,14 @@ import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.Random;
/**
* @BelongsProject: xm-sportstest
......@@ -31,7 +33,7 @@ public class TestEditStudioAdmin extends BaseTestImpl {
@BeforeClass
@Override
public void beforeTest() {
setTestInfo(ApiModule.Polar_Admin,"API_editStudioAdmin", LoginAccount.GYM_PROD, Terminal.B,"xym");
setTestInfo(ApiModule.Polar_Admin,"API_editStudioAdmin", LoginAccount.GYM_PROD2, Terminal.B,"xym");
super.beforeTest();
}
......@@ -41,9 +43,18 @@ public class TestEditStudioAdmin extends BaseTestImpl {
JSONObject adminPage = adminTools.pageStudioAdmin(body);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total>1){
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("id");
String name = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("name");
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("phone");
int pages = Integer.parseInt(adminPage.getJSONObject("result").getString("pages"));
// 随机获取一页
Random rand = new Random();
int pageIndex = rand.nextInt(pages);
// 随机获取一页的随机员工
Random random = new Random();
int index = pageIndex+1 == pages ? random.nextInt(total%20-1)+1 : random.nextInt(19)+1;
body = "{\"size\":20,\"current\":"+pageIndex+",\"state\":\"DUTY\"}";
adminPage = adminTools.pageStudioAdmin(body);
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(index).getString("id");
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(index).getString("phone");
// 修改的请求参数
JSONObject requestBody = new JSONObject();
......@@ -64,10 +75,11 @@ public class TestEditStudioAdmin extends BaseTestImpl {
String memo = "修改员工备注信息"; // 备注
requestBody.put("memo",memo);
String editName = name + "修改";
String name = RandomStringUtil.random_name();
String editName = name + TimeUtils.getCurrentTime();
requestBody.put("name",editName);
String editNickName = name + "修改";
String editNickName = name + TimeUtils.getCurrentTime();
requestBody.put("nickName",editNickName); // 昵称
JSONObject avatar = new JSONObject(); // 头像
......@@ -111,7 +123,7 @@ public class TestEditStudioAdmin extends BaseTestImpl {
System.out.println(adminInfo.getJSONObject("result").getString(resultString[i]));
}
try {
Thread.sleep(1000);
Thread.sleep(15000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-07-01 10:44
* @Description: 检查手机号是品牌下场馆的主账号
* @Version: 1.0
*/
public class TestFindStudioBossInBrand extends BaseTestImpl {
@Resource(name = "adminTools")
AdminTools adminTools;
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Admin,"API_findStudioBossInBrand", LoginAccount.GYM_PROD, Terminal.B,"xym");
super.beforeTest();
}
@Test(description = "手机号是品牌下的非主账号")
public void testFindStudioBossInBrand() {
JSONArray result = adminTools.findStudioBossInBrand();
Assert.assertTrue(result.size()==0,"手机号非主账号但是返回任职的场馆");
}
@Test(description = "手机号是品牌下的主账号",priority = 1)
public void testFindStudioBossInBrand2() {
DataUserInfo info = new DataUserInfo();
info.setLoginUser(LoginAccount.GYM_PROD2);
info.setTerminal(Terminal.B);
JSONArray result = adminTools.findStudioBossInBrand(info);
Assert.assertTrue(result.size()>0,"手机号是主账号但是未返回任职的场馆");
}
}
......@@ -12,6 +12,7 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.Random;
/**
* @BelongsProject: xm-sportstest
......@@ -29,7 +30,7 @@ public class TestReinStateStudioAdmin extends BaseTestImpl {
@BeforeClass
@Override
public void beforeTest() {
setTestInfo(ApiModule.Polar_Admin,"API_reinStateStudioAdmin", LoginAccount.GYM_PROD, Terminal.B,"xym");
setTestInfo(ApiModule.Polar_Admin,"API_reinStateStudioAdmin", LoginAccount.GYM_PROD2, Terminal.B,"xym");
super.beforeTest();
}
......@@ -40,9 +41,19 @@ public class TestReinStateStudioAdmin extends BaseTestImpl {
JSONObject adminPage = adminTools.pageStudioAdmin(body);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total>1){
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("id");
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("phone");
String name = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("name");
int pages = Integer.parseInt(adminPage.getJSONObject("result").getString("pages"));
// 随机获取一页
Random rand = new Random();
int pageIndex = rand.nextInt(pages);
// 随机获取一页的随机员工
Random random = new Random();
int index = pageIndex+1 == pages ? random.nextInt(total%20-1)+1 : random.nextInt(19)+1;
body = "{\"size\":20,\"current\":"+pageIndex+",\"state\":\"LEFT\"}";
adminPage = adminTools.pageStudioAdmin(body);
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(index).getString("id");
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(index).getString("phone");
String name = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(index).getString("name");
body = "{\"id\":\""+adminId+"\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
try {
......@@ -57,7 +68,7 @@ public class TestReinStateStudioAdmin extends BaseTestImpl {
Assert.assertEquals(total,1,"员工离职失败,用手机号查询离职员工未返回数据");
try {
Thread.sleep(1000);
Thread.sleep(12000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestSwitchStudio extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_switchStudio")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "切换场馆")
public void testSwitchStudio() {
AdminTools tools =new AdminTools();
tools.pagelistAdmins("");
String studioId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].defaultStudioId");//获取场馆ID
JSONObject jsonObject = new JSONObject();
jsonObject.put("adminId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("studioId",studioId);
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import java.util.Random;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 16:15
*/
public class AppletTools extends BaseTestImpl {
//查询小程序租户授权信息
public JSONObject getAuthDetail(DataUserInfo...userInfos){
dataApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_getAuthDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject object = new JSONObject();
Random random = new Random();
object.put("tenantId",dataApi.getLoginInfo().getStudioId());
object.put("tenantType","STUDIO");
object.put("withExtInfo",random.nextBoolean());
dataApi.doRequest(RequestType.JSON,dataparams,object.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
//获取小程序页面配置
public JSONObject getPageConfig(String pageKey,DataUserInfo...userInfos){
dataApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_getPageConfig")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject object = new JSONObject();
object.put("tenantId",dataApi.getLoginInfo().getStudioId());
object.put("tenantType","STUDIO");
object.put("pageKey",pageKey);
dataApi.doRequest(RequestType.JSON,dataparams,object.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
//获取小程序全局配置
public JSONObject getStyleConfig(DataUserInfo...userInfos){
dataApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_getStyleConfig")
.setTerminal(Terminal.B);
super.beforeDataRequest(userInfos);
JSONObject object = new JSONObject();
object.put("tenantId",dataApi.getLoginInfo().getBrandId());
object.put("tenantType","BRAND");
dataApi.doRequest(RequestType.JSON,dataparams,object.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Random;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 15:49
*/
public class TestCheckXcxCashierStatus extends XMBaseTest {
AppletTools appletTools = new AppletTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_checkXcxCashierStatus")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "获取场馆小程序小麦收银开通状态")
public void testCheckXcxCashierStatus(){
String appId = appletTools.getAuthDetail().getJSONObject("result").getString("appId");
JSONObject object = new JSONObject();
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("appId",appId);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.status"),"NOOPEN");
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 15:59
*/
public class TestChooseUseXcx extends XMBaseTest {
AppletTools appletTools = new AppletTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_chooseUseXcx")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "选择要使用的小程序")
public void testChooseUseXcx(){
String appId = appletTools.getAuthDetail().getJSONObject("result").getString("appId");
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
if(appId.equals("wx8f7b6ffc0c1f2c96")){
object.put("exclusiveXcx",true);
}
else {
object.put("exclusiveXcx",false);
}
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Random;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 15:34
*/
public class TestGetAuthDetail extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_getAuthDetail")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "查询小程序租户授权信息")
public void testGetAuthDetail(){
Random random = new Random();
JSONObject object = new JSONObject();
object.put("tenantId",xmAppApi.getLoginInfo().getStudioId());
object.put("tenantType","STUDIO");
object.put("withExtInfo",random.nextBoolean());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.status"),"DONE");
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 15:54
*/
public class TestGetExcXcxStatus extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_getExcXcxStatus")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "获取专属小程序状态")
public void testGetExcXcxStatus(){
JSONObject object = new JSONObject();
object.put("tenantId",xmAppApi.getLoginInfo().getStudioId());
object.put("tenantType","STUDIO");
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result"),"DONE");
}
}
package com.xiaomai.cases.polar.applet;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 16:46
*/
public class TestGetStyleConfig extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_getStyleConfig")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "获取小程序全局配置")
public void testGetStyleConfig(){
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/2 15:34
*/
public class TestGetWeChatDetail extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_getWeChatDetail")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "获取公众号的授权信息")
public void testGetWeChatDetail(){
JSONObject object = new JSONObject();
object.put("tenantId",xmAppApi.getLoginInfo().getStudioId());
object.put("tenantType","STUDIO");
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$.result.status"),"DONE");
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 15:46
*/
public class TestGetXcxIndexQrCode extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_getXcxIndexQrCode")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "获取首页小程序码")
public void testGetXcxIndexQrCode(){
JSONObject object = new JSONObject();
object.put("tenantId",xmAppApi.getLoginInfo().getStudioId());
object.put("tenantType","STUDIO");
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 16:43
*/
public class TestSetPageConfig extends XMBaseTest {
AppletTools appletTools = new AppletTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_setPageConfig")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "修改小程序页面配置-首页")
public void testSetStyleConfig(){
String shareText = "自动化脚本首页分享"+RandomStringUtil.randomString(5);
String body = "{\"tenantId\":\"1800375402938871809\",\"tenantType\":\"STUDIO\",\"config\":{\"shareSetting\":{\"shareText\":\""+shareText+"\",\"shareUrl\":\"\",\"selected\":\"DEFAULT\"},\"moduleConfigList\":[{\"moduleEnum\":\"CAROUSEL\",\"config\":{\"swipers\":[{\"imgUrl\":\"https://fit-resource-pub.xiaomai5.com/fitness/1796482011391729666/BRAND/applet/20240701162813/ntWh63SyKHm4mMsC.jpeg\",\"skipLink\":{\"id\":\"1796482250721169409\",\"type\":\"COACH\"}},{\"imgUrl\":\"https://fit-resource-pub.xiaomai5.com/fitness/1796482011391729666/BRAND/applet/20240701162842/3xkNQtYKH7C6kXnZ.jpeg\"}],\"height\":152}},{\"entries\":[{\"code\":\"STUDIO_INTRO\",\"title\":\"场馆介绍\"},{\"code\":\"BRAND_STORY\",\"title\":\"品牌故事\"},{\"code\":\"COACH_TEAM\",\"title\":\"教练团队\"},{\"code\":\"BOOK_LESSON\",\"title\":\"预约课程\"},{\"code\":\"MEMBER_CARD\",\"title\":\"会员卡\"},{\"code\":\"EXPERIENCE_CARD\",\"icon\":\"\",\"title\":\"体验卡\"}],\"moduleEnum\":\"GRAPHIC_NAVIGATION\",\"config\":{\"entries\":[{\"code\":\"STUDIO_INTRO\",\"title\":\"场馆介绍\"},{\"code\":\"BRAND_STORY\",\"title\":\"品牌故事\"},{\"code\":\"COACH_TEAM\",\"title\":\"教练团队\"},{\"code\":\"BOOK_LESSON\",\"title\":\"预约课程\"},{\"code\":\"MEMBER_CARD\",\"title\":\"会员卡\"},{\"code\":\"EXPERIENCE_CARD\",\"icon\":\"\",\"title\":\"体验卡\"}],\"lineNum\":4}},{\"moduleEnum\":\"STUDIO_INTRO\",\"config\":{\"layout\":\"BIG\"}},{\"moduleEnum\":\"BRAND_STORY\",\"config\":{\"title\":\"品牌故事\"}},{\"moduleEnum\":\"COACH_TEAM\",\"config\":{\"layout\":\"SCROLL\",\"limitNum\":4,\"dataType\":\"DEFAULT\",\"ids\":[],\"coachInfo\":{\"proficients\":true,\"teachingStyles\":true,\"intro\":true,\"skillCertifications\":true},\"title\":\"教练团队\"}},{\"moduleEnum\":\"RECOMMEND_GROUP_LESSON\",\"config\":{\"layout\":\"SCROLL\",\"limitNum\":4,\"dataType\":\"DEFAULT\",\"title\":\"推荐团课\"}},{\"moduleEnum\":\"MEMBER_CARD\",\"config\":{\"layout\":\"SCROLL\",\"limitNum\":4,\"dataType\":\"DEFAULT\",\"title\":\"会员卡\"}},{\"moduleEnum\":\"RECOMMENT_PRIVATE_LESSON\",\"config\":{\"layout\":\"SCROLL\",\"limitNum\":4,\"dataType\":\"DEFAULT\",\"ids\":[],\"title\":\"推荐私教课\"}},{\"moduleEnum\":\"TRAINING_CAMP\",\"config\":{\"layout\":\"SCROLL\",\"limitNum\":4,\"dataType\":\"DEFAULT\",\"ids\":[],\"title\":\"推荐训练营\"}},{\"moduleEnum\":\"EXPERIENCE_CARD\",\"config\":{\"layout\":\"SCROLL\",\"limitNum\":4,\"dataType\":\"DEFAULT\",\"ids\":[],\"title\":\"体验卡\"}}],\"bgSetting\":{\"swipers\":[],\"bgColor\":\"\",\"selected\":\"DEFAULT\",\"bgUrl\":\"https://image.xiaomaiketang.com/xm/internal/TRcJHBMjyj.png\",\"height\":200},\"promotion\":[]},\"pageKey\":\"HOME\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
Assert.assertEquals(appletTools.getPageConfig("HOME").getJSONObject("result").getJSONObject("shareSetting").getString("shareText"),shareText);
}
@Test(description = "修改小程序页面配置-约课")
public void testSetStyleConfig_1(){
String shareText = "自动化脚本约课页面分享"+RandomStringUtil.randomString(5);
String body = "{\"tenantId\":\"1800375402938871809\",\"tenantType\":\"STUDIO\",\"config\":{\"shareSetting\":{\"shareText\":\""+shareText+"\",\"shareUrl\":\"\",\"selected\":\"DEFAULT\"},\"listStyle\":\"TEACHER\",\"bgSetting\":{\"selected\":\"DEFAULT\",\"bgUrl\":\"https://image.xiaomaiketang.com/xm/internal/TRcJHBMjyj.png\"},\"bookType\":[{\"code\":\"GROUP_LESSON\",\"visible\":true,\"title\":\"团课\"},{\"code\":\"PRIVATE_LESSON\",\"visible\":true,\"title\":\"私教\"},{\"code\":\"BOOTCAMP\",\"visible\":true,\"title\":\"训练营\"}]},\"pageKey\":\"CLASS\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
Assert.assertEquals(appletTools.getPageConfig("CLASS").getJSONObject("result").getJSONObject("shareSetting").getString("shareText"),shareText);
}
@Test(description = "修改小程序页面配置-我的")
public void testSetStyleConfig_2(){
String shareText = "自动化脚本我的页面分享"+RandomStringUtil.randomString(5);
String body = "{\"tenantId\":\"1800375402938871809\",\"tenantType\":\"STUDIO\",\"config\":{\"shareSetting\":{\"shareText\":\""+shareText+"\",\"shareUrl\":\"\"},\"memberAssets\":[{\"code\":\"MEMBER_CARD\",\"visible\":true,\"title\":\"会员卡\"},{\"code\":\"EXPERIENCE_CARD\",\"visible\":true,\"title\":\"体验卡\"},{\"code\":\"TRAINING_CAMP\",\"visible\":true,\"title\":\"训练营\"}],\"bgSetting\":{\"selected\":\"DEFAULT\",\"bgUrl\":\"https://image.xiaomaiketang.com/xm/internal/TRcJHBMjyj.png\"},\"commonlyEntry\":[{\"code\":\"MY_ORDER\",\"visible\":true,\"title\":\"我的订单\"},{\"code\":\"MY_BOOKING\",\"visible\":true,\"title\":\"我的预约\"},{\"code\":\"SCAN_CODE_SIGNIN\",\"visible\":true,\"title\":\"扫码签到\"}]},\"pageKey\":\"MINE\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
Assert.assertEquals(appletTools.getPageConfig("MINE").getJSONObject("result").getJSONObject("shareSetting").getString("shareText"),shareText);
}
}
package com.xiaomai.cases.polar.applet;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Random;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 16:25
*/
public class TestSetStyleConfig extends XMBaseTest {
AppletTools appletTools = new AppletTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Applet)
.setApiName("API_setStyleConfig")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "修改小程序全局配置")
public void testSetStyleConfig(){
Random random = new Random();
String[] themeColor = {"132, 111, 234","40, 115, 255","51, 202, 105"};//紫、蓝、绿
String body = "{\"tenantId\":\"1796482011391729666\",\"tenantType\":\"BRAND\",\"config\":{\"loadingImage\":\"https://image.xiaomaiketang.com/xm/internal/bYk7k24Dwy.gif\",\"loginType\":\"DEFAULT\",\"defaultStyle\":{\"GRAPHIC_NAVIGATION\":{\"STUDIO_INTRO\":\"https://image.xiaomaiketang.com/xm/internal/5rHR854HrG.png\",\"BRAND_STORY\":\"https://image.xiaomaiketang.com/xm/internal/MP86aN8bGr.png\",\"COACH_TEAM\":\"https://image.xiaomaiketang.com/xm/internal/RRd4JjKFAa.png\",\"BOOK_LESSON\":\"https://image.xiaomaiketang.com/xm/internal/P7aNhwMX2m.png\",\"MEMBER_CARD\":\"https://image.xiaomaiketang.com/xm/internal/jp78pZnSt5.png\",\"EXPERIENCE_CARD\":\"https://image.xiaomaiketang.com/xm/internal/NFrcRw6iE2.png\"},\"TABS\":{\"SEL\":{\"HOME\":\"icon-a-xiaochengxushouye\",\"CLASS\":\"icon-a-xiaochengxuyuyue\",\"MINE\":\"icon-a-xiaochengxuwode\"},\"UN_SEL\":{\"HOME\":\"icon-a-xiaochengxushouye\",\"CLASS\":\"icon-a-xiaochengxuyuyue\",\"MINE\":\"icon-a-xiaochengxuwode\"}},\"bgUrl\":\"https://image.xiaomaiketang.com/xm/internal/TRcJHBMjyj.png\"},\"themeColor\":\""+themeColor[random.nextInt(3)]+"\",\"loadLoading\":false,\"tabs\":[{\"code\":\"HOME\",\"visible\":true,\"iconUnselected\":\"icon-a-xiaochengxushouye\",\"iconSelected\":\"icon-a-xiaochengxushouye\",\"title\":\"首页\"},{\"code\":\"CLASS\",\"visible\":true,\"iconUnselected\":\"icon-a-xiaochengxuyuyue\",\"iconSelected\":\"icon-a-xiaochengxuyuyue\",\"title\":\"预约\"},{\"code\":\"MINE\",\"visible\":true,\"iconUnselected\":\"icon-a-xiaochengxuwode\",\"iconSelected\":\"icon-a-xiaochengxuwode\",\"title\":\"我的\"}],\"emptyImage\":\"https://image.xiaomaiketang.com/xm/internal/SxaKWnkEyK.png\",\"themeStyle\":\"LIGHT\",\"themeKey\":\"EXERCISE\",\"colors\":{\"primaryColor\":\"#15171F\",\"secondaryColor\":\"#434656\",\"thirdColor\":\"#73778C\",\"tipsColor\":\"#AFB1BC\",\"cardBgColor\":\"#FFFFFF\",\"specialColor\":\"#C9CDD4\",\"bgColor\":\"#F5F7FA\",\"borderColor\":\"#EEF0F7\",\"rgbCardBgColor\":\"255,255,255\"},\"emptyLoading\":false},\"theme\":\"EXERCISE\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
String str = appletTools.getStyleConfig().getJSONObject("result").getString("themeColor");
Assert.assertEquals(true, str.equals("132, 111, 234") || str.equals("40, 115, 255")||str.equals("51, 202, 105"));
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 16:31
*/
public class TestBatchUpdateSaleRule extends XMBaseTest {
MemberTools memberTools = new MemberTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_batchUpdateSaleRule")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "更新销售规则-关闭公有池开关")
public void testBatchUpdateSaleRule(){
JSONObject configs = new JSONObject();
configs.put("CRM_OPEN_PUBLIC_RESOURCE_POOL",false);
configs.put("CRM_SALE_RELEASE_CLUE_DESTINATION","ALL_CLUE");
configs.put("CRM_SYS_RELEASE_CLUE_DESTINATION","ALL_CLUE");
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("configs",configs);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(memberTools.fetchCrmContext().getJSONObject("result").getString("openPublicResource"),"false");
}
@Test(description = "更新销售规则-开启公有池开关")
public void testBatchUpdateSaleRule_1(){
JSONObject configs = new JSONObject();
configs.put("CRM_OPEN_PUBLIC_RESOURCE_POOL",true);
configs.put("CRM_SALE_RELEASE_CLUE_DESTINATION","ALL_CLUE");
configs.put("CRM_SYS_RELEASE_CLUE_DESTINATION","PUBLIC_RESOURCE");
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("configs",configs);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(memberTools.fetchCrmContext().getJSONObject("result").getString("openPublicResource"),"true");
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 10:02
*/
public class TestCancelFeedback extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String memberId;
String feedbackId;
String feedbackId1;
int num;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_cancelFeedback")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "取消跟进")
public void testModifyFeedback(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//若全部线索有数据,则取第一条数据;若无数据则新建一个线索
JSONArray array = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
if(size == 0){
memberId = memberTools.create(name,phone).getString("result");
}
else {
memberId = array.getJSONObject(0).getString("id");
}
//查询该线索的跟进,若存在待跟进/已逾期的跟进任务,则取列表第一条数据;不存在待跟进/已逾期的跟进任务,则新建一条待跟进的跟进任务
JSONArray jsonArray = memberTools.listTodoTask(memberId).getJSONArray("result");
num = jsonArray.size();
if (num == 0) {
feedbackId1 = memberTools.createFeedback(memberId).getString("result");
feedbackId = memberTools.listTodoTask(memberId).getJSONArray("result").getJSONObject(0).getString("id");
}
else {
feedbackId = jsonArray.getJSONObject(0).getString("id");
}
//取消跟进
JSONObject object = new JSONObject();
object.put("feedbackId",feedbackId);
object.put("reason","自动化测试取消跟进原因");
object.put("brandId", xmAppApi.getLoginInfo().getBrandId());
object.put("studioId", xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(memberTools.findDetailById(feedbackId).getJSONObject("result").getString("state"),"CANCEL");
}
@Test(description = "删除跟进",priority = 1)
public void del()
{
memberTools.deleteFeedback(feedbackId);
if(feedbackId1 != null) {
memberTools.deleteFeedback(feedbackId1);
}
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 11:53
*/
public class TestClaim extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String memberId;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_claim")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "认领线索")
public void testClaim(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//查看公有池列表是否有数据,有数据则取第一条数据
JSONArray array = memberTools.searchMember("公有池","POTENTIAL").getJSONObject("result").getJSONArray("records");
//查看全部线索是否有数据,有数据则取第一条数据
JSONArray array1 = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
int size1 = array1.size();
if(size != 0){
memberId = array.getJSONObject(0).getString("id");//查看公有池列表是否有数据,有数据则取第一条数据
}
else if(size == 0 && size1 != 0){
memberId = array1.getJSONObject(0).getString("id");//公有池无数据,全部线索有数据,则从全部线索取第一条数据
//分配线索至公有池(只有公有池的线索才可以认领)
memberTools.distributeToPublic(memberId);
}
else {
memberId = memberTools.create(name,phone).getString("result");//公有池和全部线索都无数据,则新建一个线索
//分配线索至公有池(只有公有池的线索才可以认领)
memberTools.distributeToPublic(memberId);
}
List memberIds = new ArrayList();
memberIds.add(memberId);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//认领线索
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("memberIds",memberIds);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
JSONObject res = memberTools.findStudioMemberDetail(memberId).getJSONObject("result");
Assert.assertEquals(res.getString("saleId"),xmAppApi.getLoginInfo().getAdminId());
Assert.assertEquals(res.getString("position"),"PRIVATE_RESOURCE");//线索位置:私有池
}
}
......@@ -9,6 +9,9 @@ import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
......@@ -20,7 +23,7 @@ public class TestCommonSearch extends XMBaseTest {
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_commonSearch")
.setLoginUser(LoginAccount.ZYX_DEV)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
......@@ -31,11 +34,21 @@ public class TestCommonSearch extends XMBaseTest {
@Test(description = "搜索")
public void testCommonSearch(){
List statusList = new ArrayList();
statusList.add("NORMAL");
statusList.add("HISTORY");
statusList.add("POTENTIAL");
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("dataPermissionFilter",false);
object.put("content","666");
object.put("statusList",statusList);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
//校验放在了创建线索case中
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Random;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 10:09
*/
public class TestContinueFeedback extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String memberId;
String feedbackId;
String feedbackId1;
int num;
int len;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_continueFeedback")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "继续跟进")
public void testModifyFeedback(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//若全部线索有数据,则取第一条数据;若无数据则新建一个线索
JSONArray array = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
if(size == 0){
memberId = memberTools.create(name,phone).getString("result");
}
else {
memberId = array.getJSONObject(0).getString("id");
}
//查询该线索的跟进,若存在待跟进/已逾期的跟进任务,则取列表第一条数据;不存在待跟进/已逾期的跟进任务,则新建一条待跟进的跟进任务
JSONArray jsonArray = memberTools.listTodoTask(memberId).getJSONArray("result");
num = jsonArray.size();
if (num == 0) {
feedbackId1 = memberTools.createFeedback(memberId).getString("result");
feedbackId = memberTools.listTodoTask(memberId).getJSONArray("result").getJSONObject(0).getString("id");
}
else {
feedbackId = jsonArray.getJSONObject(0).getString("id");
}
//该线索的状态为已完成的跟进任务数
len = memberTools.searchFeedback(memberId).getJSONObject("result").getJSONArray("records").size();
Random random = new Random();
String[] feedbackMethod = {"PHONE","WECHAT","SMS","VISIT","OTHERS"};
String[] feedbackResult = {"CONTACTED","INTENTION_CONFIRMED","APPOINTED","EXPERIENCED","REGISTERED","REGISTERED","RENEW_FOLLOW"};
//继续跟进
JSONObject object = new JSONObject();
object.put("feedbackId",feedbackId);
object.put("feedbackContent","自动化测试继续跟进,只生成一条已完成的跟进");
object.put("memberId",memberId);
object.put("feedbackMethod",feedbackMethod[random.nextInt(5)]);
object.put("feedbackResult",feedbackResult[random.nextInt(7)]);
object.put("brandId", xmAppApi.getLoginInfo().getBrandId());
object.put("studioId", xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
JSONArray json = memberTools.searchFeedback(memberId).getJSONObject("result").getJSONArray("records");
int len1 = json.size();
Assert.assertEquals(len1,len+1);
}
@Test(description = "删除跟进",priority = 1)
public void del()
{
memberTools.deleteFeedback(feedbackId);
if(feedbackId1 != null) {
memberTools.deleteFeedback(feedbackId1);
}
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/6/28 16:37
*/
public class TestCountWechatSubscriber extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_countWechatSubscriber")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "品牌下绑定服务号的会员数量")
public void testCountWechatSubscriber(){
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.studioConfig.HomeTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
......@@ -12,6 +14,8 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Random;
/**
* @Author zxy
* @Description
......@@ -19,13 +23,14 @@ import org.testng.annotations.Test;
*/
public class TestCreate extends XMBaseTest {
MemberTools memberTools = new MemberTools();
HomeTools homeTools = new HomeTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_create")
.setLoginUser(LoginAccount.ZYX_DEV)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
......@@ -35,12 +40,34 @@ public class TestCreate extends XMBaseTest {
@Test(description = "新增潜在会员")
public void testCreate(){
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD2);
//首页数据概览-新增会员数
int member = Integer.parseInt(homeTools.preview("本周").getJSONObject("result").getJSONArray("metrics").getJSONObject(0).getString("value"));
//全部线索快捷筛选
JSONObject res = memberTools.fetchQuickSearch().getJSONObject("result");
int addToday = Integer.parseInt(res.getString("addToday"));
int addThisWeek = Integer.parseInt(res.getString("addThisWeek"));
int addThisMonth = Integer.parseInt(res.getString("addThisMonth"));
//我的线索快捷筛选
JSONObject response = memberTools.fetchMyQuickSearch().getJSONObject("result");
int addToday_my = Integer.parseInt(response.getString("addToday"));
int addThisWeek_my = Integer.parseInt(response.getString("addThisWeek"));
int addThisMonth_my = Integer.parseInt(response.getString("addThisMonth"));
Random random = new Random();
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
String[] idCardType = {"IDENTITY","SAR_PERMIT","idCardType"};//身份证、港澳通行证、护照
String[] intention = {"HIGH","MIDDLE","LOW"};//意向度:高、中、低
String code = memberTools.findByObjectId().getJSONObject(random.nextInt(13)).getString("code");//线索来源列表
//新建潜在会员时需先校验当前场馆及同品牌下的其他场馆是否存在相同手机号的线索
Boolean duplicate = memberTools.checkPhoneDuplicate(phone,"").getJSONObject("result").getBoolean("duplicate");
if(duplicate == false) {
if(duplicate == false){
JSONObject object = new JSONObject();
object.put("brandId", xmAppApi.getLoginInfo().getBrandId());
object.put("studioId", xmAppApi.getLoginInfo().getStudioId());
......@@ -50,6 +77,23 @@ public class TestCreate extends XMBaseTest {
object.put("name", name);
object.put("phone", phone);
object.put("gender", "UNKNOWN");
object.put("wechat","12345678");
object.put("birthday","1277654400000");
object.put("idCardType",idCardType[random.nextInt(3)]);
object.put("idCardCode",RandomStringUtil.randomNumber(18,"410526"));
object.put("height","180");
object.put("weight","66");
object.put("trainTarget","减脂");
object.put("profession","无");
object.put("incomeLevel","66666/月");
object.put("address","同人广场a座小麦助教");
object.put("emergencyContactPerson","紧急联系人名字");
object.put("emergencyContactPhone","15896688889");
object.put("resourceId",code);
object.put("intention",intention[random.nextInt(3)]);
object.put("position","PRIVATE_RESOURCE");
object.put("remark","这是备注");
object.put("saleId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(true);
String memberId = xmAppApi.getBodyInJSON().getString("result");
......@@ -60,14 +104,46 @@ public class TestCreate extends XMBaseTest {
} catch (InterruptedException e) {
e.printStackTrace();
}
Assert.assertEquals(memberTools.searchMember().getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("phone"), phone);
//校验潜在会员列表第一条数据是否是本次新增的数据
Assert.assertEquals(memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("phone"), phone);
//根据手机号全局搜索检验
Assert.assertEquals(memberTools.commonSearch(phone).getJSONArray("result").getJSONObject(0).getString("id"), memberId);
//校验今日新增、本周新增、本月新增的会员数是否加1
JSONObject res1 = memberTools.fetchQuickSearch().getJSONObject("result");
int addToday1 = Integer.parseInt(res1.getString("addToday"));
int addThisWeek1 = Integer.parseInt(res1.getString("addThisWeek"));
int addThisMonth1 = Integer.parseInt(res1.getString("addThisMonth"));
Assert.assertEquals(addToday1,addToday+1);//快捷筛选今日新增+1
Assert.assertEquals(addThisWeek1,addThisWeek+1);//快捷筛选本周新增+1
// Assert.assertEquals(addThisMonth1,addThisMonth+1);//快捷筛选本月新增+1
//校验我的线索今日新增、本周新增、本月新增的会员数是否加1
JSONObject response1 = memberTools.fetchMyQuickSearch().getJSONObject("result");
int addToday_my1 = Integer.parseInt(response1.getString("addToday"));
int addThisWeek_my1 = Integer.parseInt(response1.getString("addThisWeek"));
int addThisMonth_my1 = Integer.parseInt(response1.getString("addThisMonth"));
Assert.assertEquals(addToday_my1,addToday_my+1);//我的快捷筛选今日新增+1
Assert.assertEquals(addThisWeek_my1,addThisWeek_my+1);//我的快捷筛选本周新增+1
// Assert.assertEquals(addThisMonth_my1,addThisMonth_my+1);//我的快捷筛选本月新增+1
//首页数据概览-新增会员数
int member1 = Integer.parseInt(homeTools.preview("本周").getJSONObject("result").getJSONArray("metrics").getJSONObject(0).getString("value"));
Assert.assertEquals(member1,member+1);//新增会员数+1
//在另一个场馆添加该会员,并在添加后校验是否添加成功
memberTools.join(memberId,dataUserInfo);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Assert.assertEquals(memberTools.getDetailById(memberId,dataUserInfo).getJSONObject("result").getString("phone"),phone);
}
}
@Test(description = "新增潜在会员-手机号为空")
public void testCreate_1(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
......@@ -83,7 +159,8 @@ public class TestCreate extends XMBaseTest {
object.put("gender", "UNKNOWN");
xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(false);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(), "$.message"), "会员手机号格式有误;会员手机号不能为空");
String str = XMJSONPath.readPath(xmAppApi.getBodyInJSON(), "$.message");
Assert.assertEquals(true, str.equals("会员手机号格式有误;会员手机号不能为空") || str.equals("会员手机号不能为空;会员手机号格式有误"));
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.studioConfig.HomeTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Random;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 17:05
*/
public class TestCreateFeedback extends XMBaseTest {
MemberTools memberTools = new MemberTools();
HomeTools homeTools = new HomeTools();
String memberId;
String feedbackId;
String feedbackId1;
int num;
int num_todo;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_createFeedback")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "添加跟进记录")
public void testCreateFeedback(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//若全部线索有数据,则取第一条数据;若无数据则新建一个线索
JSONArray array = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
if(size == 0){
memberId = memberTools.create(name,phone).getString("result");
}
else {
memberId = array.getJSONObject(0).getString("id");
}
//查询该线索的跟进
num = memberTools.searchFeedback(memberId).getJSONObject("result").getJSONArray("records").size();//已完成状态的跟进记录
num_todo = memberTools.listTodoTask(memberId).getJSONArray("result").size();//未开始&已逾期状态的跟进任务
//跟进管理查询今日待跟进
int todayWaitFeedback_num = Integer.parseInt(memberTools.summaryFeedback().getJSONObject("result").getString("todayWaitFeedback"));
//首页查询今日待跟进
int home_todayWaitFeedback_num = homeTools.queryTodayFeedback().getJSONArray("result").size();
Random random = new Random();
String[] feedbackMethod = {"PHONE","WECHAT","SMS","VISIT","OTHERS"};//跟进方式
String[] feedbackResult = {"CONTACTED","INTENTION_CONFIRMED","APPOINTED","EXPERIENCED","REGISTERED","REGISTERED","RENEW_FOLLOW"};//跟进阶段
JSONObject object = new JSONObject();
object.put("brandId", xmAppApi.getLoginInfo().getBrandId());
object.put("studioId", xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
object.put("feedbackContent","自动化测试添加跟进记录");
object.put("feedbackMethod",feedbackMethod[random.nextInt(5)]);
object.put("feedbackResult",feedbackResult[random.nextInt(7)]);
object.put("memberId",memberId);
object.put("nextFeedbackRemark","自动化测试下次跟进内容");
object.put("nextFeedbackTime", TimeUtils.getTodayEndTime());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
feedbackId = xmAppApi.getBodyInJSON().getString("result");//创建成功生成一条已完成和一条未开始的跟进记录,此feedbackId为已完成的那条跟进记录ID
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
//校验未开始&已逾期的任务列表新增一条数据
JSONArray jsonArray = memberTools.listTodoTask(memberId).getJSONArray("result");
feedbackId1 = jsonArray.getJSONObject(0).getString("id");
int num_todo1 = jsonArray.size();
Assert.assertEquals(num_todo1,num_todo+1);
//校验已完成的任务列表新增一条数据
int num1 = memberTools.searchFeedback(memberId).getJSONObject("result").getJSONArray("records").size();
Assert.assertEquals(num1,num+1);
//跟进管理查询今日待跟进
int todayWaitFeedback_num1 = Integer.parseInt(memberTools.summaryFeedback().getJSONObject("result").getString("todayWaitFeedback"));
Assert.assertEquals(todayWaitFeedback_num1,todayWaitFeedback_num+1);
//首页查询今日待跟进
int home_todayWaitFeedback_num1 = homeTools.queryTodayFeedback().getJSONArray("result").size();
Assert.assertEquals(home_todayWaitFeedback_num1,home_todayWaitFeedback_num+1);
}
@Test(description = "删除跟进",priority = 1)
public void del(){
memberTools.deleteFeedback(feedbackId);
memberTools.deleteFeedback(feedbackId1);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
int num2 = memberTools.searchFeedback(memberId).getJSONObject("result").getJSONArray("records").size();
int num_todo2 = memberTools.listTodoTask(memberId).getJSONArray("result").size();
//删除后,已完成和未开始的跟进记录列表都减少一条数据
Assert.assertEquals(num2,num);
Assert.assertEquals(num_todo2,num_todo);
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 14:33
*/
public class TestDisable extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String id;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_disable")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "线索移至回收站")
public void testDisable(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//若全部线索有数据,则取第一条数据;若无数据则新建一个线索
JSONArray array = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
if(size == 0){
id = memberTools.create(name,phone).getString("result");
}
else {
id = array.getJSONObject(0).getString("id");
}
List memberIds = new ArrayList();
memberIds.add(id);
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("memberIds",memberIds);
object.put("reason","自动化脚本移至回收站");
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
JSONObject res = memberTools.findStudioMemberDetail(id).getJSONObject("result");
Assert.assertEquals(res.getString("saleId"),"-1");
Assert.assertEquals(res.getString("position"),"RECYCLE");//线索位置:回收站
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 10:17
*/
public class TestDistributeToPrivate extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String id;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_distributeToPrivate")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "分配线索到私有池")
public void testDistributeToPrivate(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//若全部线索有数据,则取第一条数据;若无数据则新建一个线索
JSONArray array = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
if(size == 0){
id = memberTools.create(name,phone).getString("result");
}
else {
id = array.getJSONObject(0).getString("id");
}
List memberIds = new ArrayList();
memberIds.add(id);
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("saleId",xmAppApi.getLoginInfo().getAdminId());
object.put("memberIds",memberIds);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
JSONObject res = memberTools.findStudioMemberDetail(id).getJSONObject("result");
Assert.assertEquals(res.getString("saleId"),xmAppApi.getLoginInfo().getAdminId());
Assert.assertEquals(res.getString("position"),"PRIVATE_RESOURCE");//线索位置:私有池
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 11:00
*/
public class TestDistributeToPublic extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String id;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_distributeToPublic")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "分配线索到私有池")
public void testDistributeToPrivate(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//若全部线索有数据,则取第一条数据;若无数据则新建一个线索
JSONArray array = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
if(size == 0){
id = memberTools.create(name,phone).getString("result");
}
else {
id = array.getJSONObject(0).getString("id");
}
List memberIds = new ArrayList();
memberIds.add(id);
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("memberIds",memberIds);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
JSONObject res = memberTools.findStudioMemberDetail(id).getJSONObject("result");
Assert.assertEquals(res.getString("saleId"),"-1");//无跟进销售
Assert.assertEquals(res.getString("position"),"PUBLIC_RESOURCE");//线索位置:公有池
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 10:00
*/
public class TestFetchMyQuickSearch extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_fetchMyQuickSearch")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "我的线索快捷查询")
public void testFetchMyQuickSearch(){
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
//校验放在了创建线索case中
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 09:53
*/
public class TestFetchQuickSearch extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_fetchQuickSearch")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "全部线索快捷查询")
public void testFetchQuickSearch(){
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
//校验放在了创建线索case中
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
* @Date 2024/6/28 16:28
*/
public class TestFindByObjectId extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_findByObjectId")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "线索来源")
public void testFindByObjectId(){
List categories = new ArrayList();
categories.add("RESOURCE");
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("categories",categories);
object.put("objectId","1760544120783314946");
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
......@@ -19,13 +20,13 @@ import org.testng.annotations.Test;
*/
public class TestGetDetailById extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String id;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_findDetailById")
.setLoginUser(LoginAccount.ZYX_DEV)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
......@@ -37,7 +38,17 @@ public class TestGetDetailById extends XMBaseTest {
String name = "自动化潜在会员" + RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
String id = memberTools.create(name, phone).getString("result");
//若全部线索有数据,则取第一条数据;若无数据则新建一个线索
JSONArray array = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
if(size == 0){
id = memberTools.create(name,phone).getString("result");
}
else {
id = array.getJSONObject(0).getString("id");
}
JSONObject object = new JSONObject();
object.put("memberId",id);
......@@ -45,7 +56,7 @@ public class TestGetDetailById extends XMBaseTest {
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
JSONObject res = xmAppApi.getBodyInJSON();
Assert.assertEquals(res.getJSONObject("result").getString("phone"),phone);
Assert.assertEquals(res.getJSONObject("result").getString("id"),id);
}
......
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 18:00
*/
public class TestModifyFeedback extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String memberId;
String feedbackId;
String feedbackId1;
int num;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_modifyFeedback")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "修改跟进")
public void testModifyFeedback(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//若全部线索有数据,则取第一条数据;若无数据则新建一个线索
JSONArray array = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
if(size == 0){
memberId = memberTools.create(name,phone).getString("result");
}
else {
memberId = array.getJSONObject(0).getString("id");
}
//查询该线索的跟进,若存在待跟进/已逾期的跟进任务,则取列表第一条数据;不存在待跟进/已逾期的跟进任务,则新建一条待跟进的跟进任务
JSONArray jsonArray = memberTools.listTodoTask(memberId).getJSONArray("result");
num = jsonArray.size();
if (num == 0) {
feedbackId1 = memberTools.createFeedback(memberId).getString("result");
feedbackId = memberTools.listTodoTask(memberId).getJSONArray("result").getJSONObject(0).getString("id");
}
else {
feedbackId = jsonArray.getJSONObject(0).getString("id");
}
//修改跟进
JSONObject object = new JSONObject();
object.put("feedbackId",feedbackId);
object.put("feedbackRemark","自动化测试修改下次跟进内容");
object.put("feedbackTime", TimeUtils.getTodayEndTime());
object.put("brandId", xmAppApi.getLoginInfo().getBrandId());
object.put("studioId", xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(memberTools.findDetailById(feedbackId).getJSONObject("result").getString("content"),"自动化测试修改下次跟进内容");
}
@Test(description = "删除跟进",priority = 1)
public void del()
{
memberTools.deleteFeedback(feedbackId);
if(feedbackId1 != null) {
memberTools.deleteFeedback(feedbackId1);
}
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 14:40
*/
public class TestRecycle extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String memberId;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_recycle")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "从私海回收线索")
public void testRecycle(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//查看私有池列表是否有数据,有数据则取第一条数据
JSONArray array = memberTools.searchMember("我的线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
//查看全部线索是否有数据,有数据则取第一条数据
JSONArray array1 = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
int size1 = array1.size();
if(size != 0){
memberId = array.getJSONObject(0).getString("id");//查看私有池列表是否有数据,有数据则取第一条数据
}
else if(size == 0 && size1 != 0){
memberId = array1.getJSONObject(0).getString("id");//私有池无数据,全部线索有数据,则从全部线索取第一条数据
//分配线索至私有池(只有私有池的线索才可以回收)
memberTools.distributeToPrivate(memberId);
}
else {
memberId = memberTools.create(name,phone).getString("result");//私有池和全部线索都无数据,则新建一个线索
//分配线索至私有池(只有私有池的线索才可以回收)
memberTools.distributeToPrivate(memberId);
}
List memberIds = new ArrayList();
memberIds.add(memberId);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("memberIds",memberIds);
object.put("destination","INITIAL");
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
JSONObject res = memberTools.findStudioMemberDetail(memberId).getJSONObject("result");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Assert.assertEquals(res.getString("saleId"),"-1");
Assert.assertEquals(res.getString("position"),"INITIAL");//线索位置:待分配池
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 14:50
*/
public class TestRelease extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String memberId;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_release")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "销售放弃线索")
public void teseRelease(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//查看私有池列表是否有数据,有数据则取第一条数据
JSONArray array = memberTools.searchMember("我的线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
//查看全部线索是否有数据,有数据则取第一条数据
JSONArray array1 = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
int size1 = array1.size();
if(size != 0){
memberId = array.getJSONObject(0).getString("id");//查看私有池列表是否有数据,有数据则取第一条数据
}
else if(size == 0 && size1 != 0){
memberId = array1.getJSONObject(0).getString("id");//私有池无数据,全部线索有数据,则从全部线索取第一条数据
//分配线索至私有池(只有私有池的线索才可以放弃)
memberTools.distributeToPrivate(memberId);
}
else {
memberId = memberTools.create(name,phone).getString("result");//私有池和全部线索都无数据,则新建一个线索
//分配线索至私有池(只有私有池的线索才可以放弃)
memberTools.distributeToPrivate(memberId);
}
List memberIds = new ArrayList();
memberIds.add(memberId);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("memberIds",memberIds);
object.put("destination","INITIAL");
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
JSONObject res = memberTools.findStudioMemberDetail(memberId).getJSONObject("result");
Assert.assertEquals(res.getString("saleId"),"-1");
Assert.assertEquals(res.getString("position"),"INITIAL");//线索位置:待分配池
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
* @Date 2024/6/30 16:15
*/
public class TestRestore extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String memberId;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_restore")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "还原线索")
public void testRecycle(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//查看回收站列表是否有数据,有数据则取第一条数据
JSONArray array = memberTools.searchMember("回收站","POTENTIAL").getJSONObject("result").getJSONArray("records");
//查看全部线索是否有数据,有数据则取第一条数据
JSONArray array1 = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
int size1 = array1.size();
if(size != 0){
memberId = array.getJSONObject(0).getString("id");//查看回收站列表是否有数据,有数据则取第一条数据
}
else if(size == 0 && size1 != 0){
memberId = array1.getJSONObject(0).getString("id");//回收站无数据,全部线索有数据,则从全部线索取第一条数据
//线索移至回收站(只有回收站的线索才可以还原)
memberTools.disable(memberId);
}
else {
memberId = memberTools.create(name,phone).getString("result");//回收站和全部线索都无数据,则新建一个线索
//线索移至回收站(只有回收站的线索才可以还原)
memberTools.disable(memberId);
}
List memberIds = new ArrayList();
memberIds.add(memberId);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("destination","PUBLIC_RESOURCE");
object.put("memberIds",memberIds);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
JSONObject res = memberTools.findStudioMemberDetail(memberId).getJSONObject("result");
Assert.assertEquals(res.getString("saleId"),"-1");
Assert.assertEquals(res.getString("position"),"PUBLIC_RESOURCE");//线索位置:公有池
}
}
......@@ -24,7 +24,7 @@ public class TestSearchMember extends XMBaseTest {
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_searchMember")
.setLoginUser(LoginAccount.ZYX_DEV)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
......@@ -44,9 +44,15 @@ public class TestSearchMember extends XMBaseTest {
object.put("current",0);
object.put("size",20);
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioFilter",studioFilter);
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("saleId",xmAppApi.getLoginInfo().getAdminId());
object.put("position","PRIVATE_RESOURCE");
object.put("statusList",statusList);
object.put("searchType","CLUE_PRIVATE");
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
//校验放在了创建线索case中
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 10:52
*/
public class TestSummaryFeedback extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_summaryFeedback")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "统计今日待跟进&已逾期的任务数")
public void testSummaryFeedback(){
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
......@@ -19,12 +20,12 @@ import org.testng.annotations.Test;
*/
public class TestUpdate extends XMBaseTest {
MemberTools memberTools = new MemberTools();
String id;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_forceUpdate")
.setLoginUser(LoginAccount.ZYX_DEV)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
......@@ -37,8 +38,15 @@ public class TestUpdate extends XMBaseTest {
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//创建潜在会员
String id = memberTools.create(name,phone).getString("result");
//若全部线索有数据,则取第一条数据;若无数据则新建一个线索
JSONArray array = memberTools.searchMember("全部线索","POTENTIAL").getJSONObject("result").getJSONArray("records");
int size = array.size();
if(size == 0){
id = memberTools.create(name,phone).getString("result");
}
else {
id = array.getJSONObject(0).getString("id");
}
//编辑会员时需先校验当前场馆及同品牌下的其他场馆是否存在相同手机号的线索
Boolean duplicate = memberTools.checkPhoneDuplicate(phone,id).getJSONObject("result").getBoolean("duplicate");
......@@ -66,6 +74,7 @@ public class TestUpdate extends XMBaseTest {
object.put("emergencyContactPerson", "紧急联系人" + RandomStringUtil.randomString(3));
object.put("emergencyContactPhone", RandomStringUtil.randomMobile("999"));
object.put("resourceId", "12");
object.put("intention","LOW");
object.put("remark", "这是备注这是备注这是备注这是备注这是备注这是备注这是备注这是备注这是备注这是备注");
object.put("memberId", id);
......@@ -107,7 +116,7 @@ public class TestUpdate extends XMBaseTest {
object.put("memberId", "");
xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(false);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(), "$.message"), "会员id不能为空");
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(), "$.message"), "会员id不能为空");
}
}
package com.xiaomai.cases.polar.data;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.sql.Time;
public class TestCamDataTrend extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Data)
.setApiName("API_camDatatrend")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "上课数据-趋势分析-次数")
public void testcamDatatrend() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","DAY");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("metric","CLASS_SESSION_NUMBER");
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "上课数据-趋势分析-消耗金额")
public void testcamDatatrend1() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","DAY");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("metric","TOTAL_COST");
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "上课数据-趋势分析-上课人次")
public void testcamDatatrend2() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","DAY");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("metric","TOTAL_NUMBER");
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "上课数据-趋势分析-上课时长")
public void testcamDatatrend3() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","DAY");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("metric","CLASS_HOUR");
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.data;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestGetCourseCostDetail extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Data)
.setApiName("API_getCourseCostDetail")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "数据中心-上课数据-课消明细-团课")
public void testgetCourseCostDetail() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("coachId","");
jsonObject.put("dateType","DAY");
jsonObject.put("sort","TOTAL_COST_DESC");
jsonObject.put("consumeType","GROUP_CLASS");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "数据中心-上课数据-课消明细-私教课")
public void testgetCourseCostDetail1() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("coachId","");
jsonObject.put("dateType","DAY");
jsonObject.put("sort","TOTAL_COST_DESC");
jsonObject.put("consumeType","PERSONAL");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "数据中心-上课数据-课消明细-训练营")
public void testgetCourseCostDetail2() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("coachId","");
jsonObject.put("dateType","DAY");
jsonObject.put("sort","TOTAL_COST_DESC");
jsonObject.put("consumeType","TRAINING_CAMP");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.data;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestTetCourseCostData extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Data)
.setApiName("API_getCourseCostData")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "上课数据-课消数据-全部")
public void testgetCourseCostData() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","WEEK");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "上课数据-课消数据-团课")
public void testgetCourseCostData1() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","WEEK");
jsonObject.put("consumeType","GROUP_CLASS");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "上课数据-课消数据-私教课")
public void testgetCourseCostData2() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","WEEK");
jsonObject.put("consumeType","PERSONAL");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "上课数据-课消数据-训练营")
public void testgetCourseCostData3() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","WEEK");
jsonObject.put("consumeType","TRAINING_CAMP");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "上课数据-课消数据-手动扣次")
public void testgetCourseCostData4() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","WEEK");
jsonObject.put("consumeType","MANUAL_DEDUCT");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "上课数据-课消数据-自动消耗")
public void testgetCourseCostData5() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","WEEK");
jsonObject.put("consumeType","AUTO_CONSUME");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
@Test(description = "上课数据-课消数据-单次约课")
public void testgetCourseCostData6() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("dateType","WEEK");
jsonObject.put("consumeType","SINGLE_RESERVE");
jsonObject.put("endTime", TimeUtils.getWeekLastTime());
jsonObject.put("startTime",TimeUtils.getWeekFirstTime());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.enums;
import org.apache.commons.lang3.StringUtils;
/**
* @Author zxy
* @Description
* @Date 2024/7/2 17:48
*/
public enum ExcelImportEnum {
MEMBER_INFO("memberInfo",3,0,1);
/**业务 */
private String value;
/**行开始下标(从0开始) */
private int rowStartIndex;
/**姓名列坐标 */
private int cellNametIndex;
/**手机号列坐标 */
private int cellPhoneIndex;
ExcelImportEnum(String value, int rowStartIndex, int cellNametIndex, int cellPhoneIndex) {
this.value = value;
this.rowStartIndex = rowStartIndex;
this.cellNametIndex = cellNametIndex;
this.cellPhoneIndex = cellPhoneIndex;
}
ExcelImportEnum(String value, int rowStartIndex, int cellPhoneIndex) {
this.value = value;
this.rowStartIndex = rowStartIndex;
this.cellPhoneIndex = cellPhoneIndex;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public int getRowStartIndex() {
return rowStartIndex;
}
public void setRowStartIndex(int rowStartIndex) {
this.rowStartIndex = rowStartIndex;
}
public int getCellNametIndex() {
return cellNametIndex;
}
public void setCellNametIndex(int cellNametIndex) {
this.cellNametIndex = cellNametIndex;
}
public int getCellPhoneIndex() {
return cellPhoneIndex;
}
public void setCellPhoneIndex(int cellPhoneIndex) {
this.cellPhoneIndex = cellPhoneIndex;
}
/**
*根据value获取对应枚举
* value找不对应的枚举,则返回一个默认值
* @param value
* @return
}
*/
public static int getRowIndexByValue(String value) {
for (ExcelImportEnum excelImportBusinessEnum : ExcelImportEnum.values()) {
if (StringUtils.equals(excelImportBusinessEnum.getValue(), value)) {
return excelImportBusinessEnum.rowStartIndex;
}
}
return 0;
}
public static int getNameCellIndexByValue(String value) {
for (ExcelImportEnum excelImportBusinessEnum : ExcelImportEnum.values()) {
if (StringUtils.equals(excelImportBusinessEnum.getValue(), value)) {
return excelImportBusinessEnum.cellNametIndex;
}
}
return 0;
}
public static int getPhoneCellIndexByValue(String value) {
for (ExcelImportEnum excelImportBusinessEnum : ExcelImportEnum.values()) {
if (StringUtils.equals(excelImportBusinessEnum.getValue(), value)) {
return excelImportBusinessEnum.cellPhoneIndex;
}
}
return 1;
}
}
package com.xiaomai.cases.polar.finance.cashier;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
public class CashierTools extends XMBaseTest {
/**
* @param
* @description: 分页筛选收银流水-搜索
* @param buyerName:支付姓名 不用需要传null
* @param buyerPhone:支付手机号 不用需要传null
* @param businessNo:支付订单号 不用需要传null
* @author: yangfangfang
**/
public JSONObject page_select(String buyerName, String buyerPhone, String businessNo, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_page")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("buyerName",buyerName);
jsonObject.put("buyerPhone",buyerPhone);
jsonObject.put("businessNo",businessNo);
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description: 分页筛选收银流水-筛选
* @param subChannel:支付方式 [ "支付宝", "微信" ] [ ALI, WX ]
* @param orderType:来源[ "未知", "签单", "退单", "作废订单", "收款码", "B端短信充值", "电子合同" ][ UNKNOWN, SIGN_ORDER, REFUND_ORDER, DISCARD_ORDER, PAY_QR_CODE, B_SMS_RECHARGE, ELE_CONTRACT ]
* @author: yangfangfang
**/
public JSONObject page_sift(String subChannel, String orderType, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_page")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("subChannel",subChannel);//支付方式 [ "支付宝", "微信" ] [ ALI, WX ]
JSONArray transStateList=new JSONArray();//收款成功(入账中、入账成功),这两个状态都代表收款成功
transStateList.add("PAY_SUCCESS");
transStateList.add("PAY_IN");
jsonObject.put("transStateList",transStateList);
jsonObject.put("orderType",orderType);//来源[ "未知", "签单", "退单", "作废订单", "收款码", "B端短信充值", "电子合同" ][ UNKNOWN, SIGN_ORDER, REFUND_ORDER, DISCARD_ORDER, PAY_QR_CODE, B_SMS_RECHARGE, ELE_CONTRACT ]
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
}
package com.xiaomai.cases.polar.finance.cashier;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestGetById extends XMBaseTest {
CashierTools cashierTools=new CashierTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_getById")
.setLoginUser(LoginAccount.YFF_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "查询收银流水详情")
public void testGetById(){
//10020060066--固定流水,换场馆需要按照这个手机支付0.01元 "flowIds": ["1808757176611880962"]
JSONObject page_select=cashierTools.page_select(null,"10020060066",null);
String id=page_select.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");//流水ID
JSONObject getById=new JSONObject();
getById.put("id",id);
getById.put("brandId",xmAppApi.getLoginInfo().getBrandId());
getById.put("studioId",xmAppApi.getLoginInfo().getStudioId());
getById.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,getById.toJSONString(),headers).assetsSuccess(true);
String success=xmAppApi.getBodyInJSON().getString("success");
Assert.assertEquals(success,"true","查询收银流水详情失败");
}
}
package com.xiaomai.cases.polar.finance.cashier;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class TestPage extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_page")
.setLoginUser(LoginAccount.YFF_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"自动化流水",null},
{null,"10020060066"},
};
}
@Test(description = "分页筛选收银流水-搜索",dataProvider ="dataProvider")
public void testPage(String buyerName,String buyerPhone){
//10020060066--固定流水,换场馆需要按照这个手机支付0.01元 "flowIds": ["1808757176611880962"]
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("buyerName",buyerName);
jsonObject.put("buyerPhone",buyerPhone);
jsonObject.put("businessNo",null);
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toJSONString(),headers).assetsSuccess(true);
JSONObject response=xmAppApi.getBodyInJSON();
String success=response.getString("success");
int total=Integer.parseInt(response.getJSONObject("result").getString("total"));
Assert.assertEquals(success,"true","分页筛选收银流水失败");
Assert.assertEquals(total>=1,true,"未搜索到对应的流水");
}
@DataProvider
public Object[][] dataProvider1(){
return new Object[][]{
{true,"WX","PAY_QR_CODE","REFUND"},
{false,"ALI","SIGN_ORDER","PAY"},
{false,"ALI","REFUND_ORDER","REFUND"},
{false,"WX","DISCARD_ORDER","PAY"},
};
}
@Test(description = "分页筛选收银流水",dataProvider = "dataProvider1")
public void testPage_sift(boolean existSubOrderNo,String subChannel,String orderType,String transType){
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("buyerName",null);
jsonObject.put("buyerPhone","10020060066");
jsonObject.put("businessNo",null);
jsonObject.put("existSubOrderNo",existSubOrderNo);//是否存在子订单号, true-存在;false-不存在
jsonObject.put("subChannel",subChannel);//支付方式 [ "支付宝", "微信" ] [ ALI, WX ]
JSONArray transStateList=new JSONArray();//收款成功(入账中、入账成功)
transStateList.add("PAY_SUCCESS");
transStateList.add("PAY_IN");
jsonObject.put("transStateList",transStateList);
jsonObject.put("orderType",orderType);//来源[ "未知", "签单", "退单", "作废订单", "收款码", "B端短信充值", "电子合同" ][ UNKNOWN, SIGN_ORDER, REFUND_ORDER, DISCARD_ORDER, PAY_QR_CODE, B_SMS_RECHARGE, ELE_CONTRACT ]
jsonObject.put("transType",transType);//交易类型:PAY-收款;REFUND-退款;
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toJSONString(),headers).assetsSuccess(true);
String success=xmAppApi.getBodyInJSON().getString("success");
Assert.assertEquals(success,"true","分页筛选收银流水失败");
}
}
package com.xiaomai.cases.polar.finance.cashier;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestPageSettle extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pageSettle")
.setLoginUser(LoginAccount.YFF_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "分页筛选结算记录")
public void testPageSettle(){
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("transState","SUCCESS");//结算状态:成功
jsonObject.put("studioName","小麦乐动自动化场馆");//场馆名称
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toJSONString(),headers).assetsSuccess(true);
String success=xmAppApi.getBodyInJSON().getString("success");
Assert.assertEquals(success,"true","获取分页筛选结算记录失败");
}
}
package com.xiaomai.cases.polar.finance.cashier;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class TestStatistic extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_statistic")
.setLoginUser(LoginAccount.YFF_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"PAY"},//收款
{"REFUND"}//退款
};
}
@Test(description = "统计收银流水",dataProvider = "dataProvider")
public void testStatistic(String transType){
JSONObject jsonObject=new JSONObject();
jsonObject.put("transType",transType);
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toJSONString(),headers).assetsSuccess(true);
String success=xmAppApi.getBodyInJSON().getString("success");
Assert.assertEquals(success,"true","获取统计收银流水失败");
}
}
package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.math.BigDecimal;
public class TestCancel extends XMBaseTest {
String memberId;
String cardId;
Tools tools=new Tools();
OrderTools orderTools=new OrderTools();
CardTools cardTools=new CardTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_cancel")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "取消订单")
public void testCancel(){
String name = "创建订单潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//获取会员ID,没有则新建一个
int memberTotal = Integer.parseInt(tools.search("NORMAL","NORMAL").getJSONObject("result").getString("total"));
if (memberTotal == 0) {
memberId = tools.create(name,phone).getString("result");
}
memberId=tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取会员卡信息
//获取会员卡列表,没有则新建一个
int cardTotal = Integer.parseInt(orderTools.fetchPageOfMemberCard("次卡").getJSONObject("result").getString("total"));
if (cardTotal == 0) {
cardId = cardTools.memberCardCreate("次卡-创建订单会员卡"+ TimeUtils.getCurrentTime()).getString("result");
}
JSONObject memberCard=orderTools.fetchPageOfMemberCard("次卡");
cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
BigDecimal quantity= new BigDecimal(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("balance"));
float price= Float.parseFloat(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("price"));
int validPeriod= Integer.parseInt(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("validPeriod"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取签单要用的卡快照id
String latestSnapshotId=orderTools.fetchDetailById(cardId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("latestSnapshotId");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//检查会员对该卡是否超出购买上限
boolean limitResult=orderTools.checkAllowPurchase("MEMBER_CARD",cardId,memberId,"1",xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getBoolean("success");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if(limitResult == true) {
//创建待支付订单
JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId, price/2,"PURCHASE",
"MEMBER_CARD",memberId,price-price/2,0,"1");
String success=orderResult.getString("success");
String getDetailId=orderResult.getString("result");
Assert.assertEquals(success,"true","创建待支付订单失败");
//获取订单详情
JSONObject getDetailResult=orderTools.getDetail(getDetailId);
String id = getDetailResult.getJSONObject("result").getString("id");//订单id
String state=getDetailResult.getJSONObject("result").getString("state");
Assert.assertEquals(id.equals(getDetailId),true,"获取创建的订单详情失败");
Assert.assertEquals(state,"WAITING","获取创建的订单状态未是待支付");
//取消订单
JSONObject cancel=orderTools.cancel(getDetailId);
String cancelSuccess=cancel.getString("success");
Assert.assertEquals(cancelSuccess,"true","取消待支付订单失败");
//获取订单详情
JSONObject getDetailResult1=orderTools.getDetail(getDetailId);
String id1 = getDetailResult1.getJSONObject("result").getString("id");//订单id
String state1=getDetailResult1.getJSONObject("result").getString("state");
Assert.assertEquals(id1.equals(getDetailId),true,"获取取消的订单详情失败");
Assert.assertEquals(state1,"CANCEL","获取取消的订单状态未是已取消");
}
}
}
package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.revenueAndExpenditure.RevenueAndExpenditureTools;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.math.BigDecimal;
import java.util.Random;
public class TestModifyMemo extends XMBaseTest {
String memberId;
String cardId;
Tools tools=new Tools();
OrderTools orderTools=new OrderTools();
CardTools cardTools=new CardTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_modifySupplierMemo")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "修改备注")
public void testModifyMemo(){
String name = "创建订单潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//获取会员ID,没有则新建一个
int memberTotal = Integer.parseInt(tools.search("NORMAL","NORMAL").getJSONObject("result").getString("total"));
if (memberTotal == 0) {
memberId = tools.create(name,phone).getString("result");
}
memberId=tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取会员卡信息
//获取会员卡列表,没有则新建一个
int cardTotal = Integer.parseInt(orderTools.fetchPageOfMemberCard("次卡").getJSONObject("result").getString("total"));
if (cardTotal == 0) {
cardId = cardTools.memberCardCreate("次卡-创建订单会员卡"+ TimeUtils.getCurrentTime()).getString("result");
}
JSONObject memberCard=orderTools.fetchPageOfMemberCard("次卡");
cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
BigDecimal quantity= new BigDecimal(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("balance"));
float price= Float.parseFloat(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("price"));
int validPeriod= Integer.parseInt(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("validPeriod"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取签单要用的卡快照id
String latestSnapshotId=orderTools.fetchDetailById(cardId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("latestSnapshotId");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//检查会员对该卡是否超出购买上限
boolean limitResult=orderTools.checkAllowPurchase("MEMBER_CARD",cardId,memberId,"1",xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getBoolean("success");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if(limitResult == true){
//创建订单
JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId, price/2,"PURCHASE",
"MEMBER_CARD",memberId,price-price/2,price-price/2,"1");
String success=orderResult.getString("success");
String getDetailId=orderResult.getString("result");
Assert.assertEquals(success,"true","创建订单失败");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取订单详情
JSONObject getDetailResult=orderTools.getDetail(getDetailId);
String id = getDetailResult.getJSONObject("result").getString("id");
String businessNo = getDetailResult.getJSONObject("result").getString("businessNo");
Assert.assertEquals(id.equals(getDetailId),true,"获取创建的订单详情失败");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//修改对内备注
JSONObject modifySupplierInnerMemoResult=orderTools.modifySupplierInnerMemo(getDetailId, "已修改对内备注"+RandomStringUtil.randomString(10));
String modifySupplierInnerMemoSuccess=modifySupplierInnerMemoResult.getString("success");
Assert.assertEquals(modifySupplierInnerMemoSuccess,"true","修改对内备注失败");
//修改对外备注
JSONObject modifySupplierMemoResult=orderTools.modifySupplierMemo(getDetailId, "已修改对外备注"+RandomStringUtil.randomString(10));
String modifySupplierMemoResultSuccess=modifySupplierMemoResult.getString("success");
Assert.assertEquals(modifySupplierMemoResultSuccess,"true","修改对外备注失败");
}
}
}
package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
......@@ -12,11 +13,13 @@ import org.testng.annotations.Test;
public class TestPageMemberVoucher extends XMBaseTest {
Tools tools=new Tools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pageMemberVoucher")
.setLoginUser(LoginAccount.YFF_DEV)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......@@ -25,11 +28,15 @@ public class TestPageMemberVoucher extends XMBaseTest {
@Test(description = "获取会员详情-订单管理列表")
public void testPageMemberVoucher(){
//获取会员ID
String receiverId=tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("supplierId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("receiverId","1777254935106740226");
jsonObject.put("receiverId",receiverId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
......
package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
......@@ -12,11 +13,13 @@ import org.testng.annotations.Test;
public class TestPageMemberVoucherItem extends XMBaseTest {
Tools tools=new Tools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pageMemberVoucherItem")
.setLoginUser(LoginAccount.YFF_DEV)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......@@ -26,11 +29,16 @@ public class TestPageMemberVoucherItem extends XMBaseTest {
@Test(description = "获取会员详情-订单明细列表")
public void testPageMemberVoucherItem(){
//获取会员ID
String receiverId=tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("supplierId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("receiverId","1777254935106740226");
jsonObject.put("receiverId",receiverId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
......
......@@ -19,7 +19,7 @@ public class TestPageVoucher extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pageVoucher")
.setLoginUser(LoginAccount.YFF_DEV)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......@@ -32,7 +32,6 @@ public class TestPageVoucher extends XMBaseTest {
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("supplierId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("receiverId","");
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
......@@ -43,13 +42,12 @@ public class TestPageVoucher extends XMBaseTest {
Assert.assertEquals(success,"true","获取订单管理列表失败");
}
@Test(description = "获取财务中心-订单管理列表-无筛选-无卖家ID(场馆ID)、场馆ID、品牌ID、操作人ID")
@Test(description = "获取财务中心-订单管理列表-无筛选-无卖家ID(场馆ID)、品牌ID、场馆ID、操作人ID")
public void testPageVoucher1(){
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("supplierId","");
jsonObject.put("receiverId","");
jsonObject.put("brandId","");
jsonObject.put("studioId","");
jsonObject.put("operatorId","");
......@@ -63,7 +61,6 @@ public class TestPageVoucher extends XMBaseTest {
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("supplierId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("receiverId","");
jsonObject.put("source","OFFLINE_SOURCE");
JSONArray states=new JSONArray();
......@@ -84,8 +81,7 @@ public class TestPageVoucher extends XMBaseTest {
jsonObject.put("operationTimeEnd",TimeUtils.getCurrentTime());
JSONArray salesmanIds=new JSONArray();
salesmanIds.add("1772880092185255937");
salesmanIds.add("1774376463837065218");
salesmanIds.add(xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("salesmanIds",salesmanIds);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
......
......@@ -18,7 +18,7 @@ public class TestPageVoucherItem extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pageVoucherItem")
.setLoginUser(LoginAccount.YFF_DEV)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......@@ -31,7 +31,6 @@ public class TestPageVoucherItem extends XMBaseTest {
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("supplierId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("receiverId","");
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
......@@ -42,13 +41,12 @@ public class TestPageVoucherItem extends XMBaseTest {
Assert.assertEquals(success,"true","获取订单明细列表失败");
}
@Test(description = "获取财务中心-订单明细列表-无筛选-无卖家ID(场馆ID)、场馆ID、品牌ID、操作人ID")
@Test(description = "获取财务中心-订单明细列表-无筛选-无卖家ID(场馆ID)、品牌ID、场馆ID、操作人ID")
public void testPageVoucherItem1(){
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("supplierId","");
jsonObject.put("receiverId","");
jsonObject.put("brandId","");
jsonObject.put("studioId","");
jsonObject.put("operatorId","");
......@@ -62,7 +60,6 @@ public class TestPageVoucherItem extends XMBaseTest {
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("supplierId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("receiverId","");
jsonObject.put("createdStart", TimeUtils.getMonthFristDay());
jsonObject.put("createdEnd",TimeUtils.getCurrentTime());
......@@ -72,8 +69,7 @@ public class TestPageVoucherItem extends XMBaseTest {
jsonObject.put("operationTimeEnd",TimeUtils.getCurrentTime());
JSONArray salesmanIds=new JSONArray();
salesmanIds.add("1772880092185255937");
salesmanIds.add("1774376463837065218");
salesmanIds.add(xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("salesmanIds",salesmanIds);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
......
package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.math.BigDecimal;
public class TestPay extends XMBaseTest {
String memberId;
String cardId;
Tools tools=new Tools();
OrderTools orderTools=new OrderTools();
CardTools cardTools=new CardTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pay")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yff")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "收款(继续收款)")
public void testPay(){
String name = "创建订单潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//获取会员ID,没有则新建一个
int memberTotal = Integer.parseInt(tools.search("NORMAL","NORMAL").getJSONObject("result").getString("total"));
if (memberTotal == 0) {
memberId = tools.create(name,phone).getString("result");
}
memberId=tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取会员卡信息
//获取会员卡列表,没有则新建一个
int cardTotal = Integer.parseInt(orderTools.fetchPageOfMemberCard("次卡").getJSONObject("result").getString("total"));
if (cardTotal == 0) {
cardId = cardTools.memberCardCreate("次卡-创建订单会员卡"+ TimeUtils.getCurrentTime()).getString("result");
}
JSONObject memberCard=orderTools.fetchPageOfMemberCard("次卡");
cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
BigDecimal quantity= new BigDecimal(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("balance"));
float price= Float.parseFloat(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("price"));
int validPeriod= Integer.parseInt(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("validPeriod"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取签单要用的卡快照id
String latestSnapshotId=orderTools.fetchDetailById(cardId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("latestSnapshotId");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//检查会员对该卡是否超出购买上限
boolean limitResult=orderTools.checkAllowPurchase("MEMBER_CARD",cardId,memberId,"1",xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getBoolean("success");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if(limitResult == true) {
//创建部分支付订单
JSONObject orderResult = orderTools.signOrder(cardId, latestSnapshotId, quantity, price, validPeriod, latestSnapshotId, 0, "PURCHASE",
"MEMBER_CARD", memberId, price,price / 2 , "1");
String getDetailId = orderResult.getString("result");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取订单详情
JSONObject getDetailResult=orderTools.getDetail(getDetailId);
String id = getDetailResult.getJSONObject("result").getString("id");//订单id
String state=getDetailResult.getJSONObject("result").getString("state");
String unpaidAmount=getDetailResult.getJSONObject("result").getString("unpaidAmount");
Assert.assertEquals(id.equals(getDetailId),true,"获取创建的订单详情失败");
Assert.assertEquals(state,"ARREARS","获取创建的订单状态未是部分支付");
//继续收款
JSONObject jsonObject = new JSONObject();
jsonObject.put("operationTime", TimeUtils.getCurrentTime());
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
JSONArray paymentWays = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("amount", unpaidAmount);
jsonObject1.put("paymentWay", "1");//线下微信
JSONArray voucherResourceIds = new JSONArray();
voucherResourceIds.add("");
jsonObject1.put("voucherResourceIds", voucherResourceIds);
paymentWays.add(jsonObject1);
jsonObject.put("paymentWays", paymentWays);
jsonObject.put("voucherId", getDetailId);
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toJSONString(),headers).assetsSuccess(true);
JSONObject response=xmAppApi.getBodyInJSON();
String result=response.getString("result");
Assert.assertEquals(result,"true","继续收款失败");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//校验订单状态已完成;继续收款后欠费金额为0;继续收款订单和原部分支付订单为同一个
//获取订单详情
JSONObject getDetailResult1=orderTools.getDetail(getDetailId);
String state1=getDetailResult1.getJSONObject("result").getString("state");
String unpaidAmount1=getDetailResult1.getJSONObject("result").getString("unpaidAmount");
String id1=getDetailResult1.getJSONObject("result").getString("id");
Assert.assertEquals(state1,"PAID","继续收款全部金额后状态未是已完成");
Assert.assertEquals(unpaidAmount1,"0.0000","继续收款全部金额后欠费金额不是0");
Assert.assertEquals(id1.equals(getDetailId),true,"继续收款订单不是原部分支付订单");
}
}
}
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