Commit 2ab4f4bf by DuJunLi
parents ddbf6db4 a2ba20e6
<?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"?>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <!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> <packages>
<package name="com.xiaomai.cases.polar.clue.*"></package> <!-- 添加自己想要集成测试的case 范围自己定 --> <package name="com.xiaomai.cases.polar.clue.*"></package> <!-- 添加自己想要集成测试的case 范围自己定 -->
</packages> </packages>
......
...@@ -45,6 +45,10 @@ public abstract class BaseTestImpl extends XMBaseTest implements BaseTestInterfa ...@@ -45,6 +45,10 @@ public abstract class BaseTestImpl extends XMBaseTest implements BaseTestInterfa
return this.caseOwner; return this.caseOwner;
} }
public void setLoginUser(String loginUser) {
this.loginUser = loginUser;
}
public void setTestInfo(String apiModuleName, String loginUser, String terminal, String caseOwner) { public void setTestInfo(String apiModuleName, String loginUser, String terminal, String caseOwner) {
this.apiModuleName = apiModuleName; this.apiModuleName = apiModuleName;
this.loginUser = loginUser; this.loginUser = loginUser;
......
...@@ -242,7 +242,9 @@ public class TestAddMemberReserve extends BaseTestImpl { ...@@ -242,7 +242,9 @@ public class TestAddMemberReserve extends BaseTestImpl {
if( limitResult == true){ if( limitResult == true){
//创建订单 //创建订单
JSONObject orderResult = orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1",dataUserInfo); JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId, price/2,"PURCHASE",
"MEMBER_CARD",memberId,price-price/2,price-price/2,"1");
} }
} }
......
...@@ -323,7 +323,8 @@ public class TestAddToQueue extends BaseTestImpl { ...@@ -323,7 +323,8 @@ public class TestAddToQueue extends BaseTestImpl {
if( limitResult == true){ if( limitResult == true){
//创建订单 //创建订单
JSONObject orderResult = orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1",dataUserInfo); JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId, price/2,"PURCHASE",
"MEMBER_CARD",memberId,price-price/2,price-price/2,"1");
} }
} }
......
...@@ -266,7 +266,8 @@ public class TestXCXSignIn extends BaseTestImpl { ...@@ -266,7 +266,8 @@ public class TestXCXSignIn extends BaseTestImpl {
if( limitResult == true){ if( limitResult == true){
//创建订单 //创建订单
JSONObject orderResult = orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1",dataUserInfo); JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId, price/2,"PURCHASE",
"MEMBER_CARD",memberId,price-price/2,price-price/2,"1");
} }
} }
......
...@@ -35,7 +35,7 @@ public class AdminTools extends XMBaseTest { ...@@ -35,7 +35,7 @@ public class AdminTools extends XMBaseTest {
super.beforeDataRequest(dataUserInfos); super.beforeDataRequest(dataUserInfos);
JSONObject body = new JSONObject(); JSONObject body = new JSONObject();
body.put("phone", RandomStringUtil.randomMobile("100")); body.put("phone", RandomStringUtil.randomMobile("103"));
String name = RandomStringUtil.random_name(); String name = RandomStringUtil.random_name();
body.put("name", name); body.put("name", name);
body.put("nickName", name); body.put("nickName", name);
...@@ -117,11 +117,11 @@ public class AdminTools extends XMBaseTest { ...@@ -117,11 +117,11 @@ public class AdminTools extends XMBaseTest {
* @param adminId:员工id * @param adminId:员工id
* @return: com.alibaba.fastjson.JSONObject * @return: com.alibaba.fastjson.JSONObject
**/ **/
public JSONObject getStudioAdmin(String adminId){ public JSONObject getStudioAdmin(String adminId,DataUserInfo...dataUserInfo){
dataApi.setApiModule(ApiModule.Polar_Admin) dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_getStudioAdmin") .setApiName("API_getStudioAdmin")
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
super.beforeDataRequest(); super.beforeDataRequest(dataUserInfo);
String body = "{\"id\":\""+adminId+"\"}"; String body = "{\"id\":\""+adminId+"\"}";
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true); dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
...@@ -134,11 +134,11 @@ public class AdminTools extends XMBaseTest { ...@@ -134,11 +134,11 @@ public class AdminTools extends XMBaseTest {
* @param body:请求参数 * @param body:请求参数
* @return: com.alibaba.fastjson.JSONObject * @return: com.alibaba.fastjson.JSONObject
**/ **/
public JSONObject pageStudioAdmin(String body){ public JSONObject pageStudioAdmin(String body,DataUserInfo...userInfo){
dataApi.setApiModule(ApiModule.Polar_Admin) dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_pageStudioAdmin") .setApiName("API_pageStudioAdmin")
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
super.beforeDataRequest(); super.beforeDataRequest(userInfo);
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true); dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON(); return dataApi.getBodyInJSON();
...@@ -238,6 +238,127 @@ public class AdminTools extends XMBaseTest { ...@@ -238,6 +238,127 @@ public class AdminTools extends XMBaseTest {
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true); 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; package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl; import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.studioConfig.ConfigTools; import com.xiaomai.cases.polar.studioConfig.ConfigTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule; import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal; import com.xiaomai.enums.Terminal;
...@@ -11,7 +13,6 @@ import org.testng.annotations.BeforeClass; ...@@ -11,7 +13,6 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.swing.*;
import java.util.Random; import java.util.Random;
/** /**
...@@ -28,6 +29,7 @@ public class TestAddStudioAdmin extends BaseTestImpl { ...@@ -28,6 +29,7 @@ public class TestAddStudioAdmin extends BaseTestImpl {
@Resource(name = "configTools") @Resource(name = "configTools")
ConfigTools configTools; ConfigTools configTools;
private String phone;
@BeforeClass @BeforeClass
public void beforeTest(){ public void beforeTest(){
...@@ -39,6 +41,7 @@ public class TestAddStudioAdmin extends BaseTestImpl { ...@@ -39,6 +41,7 @@ public class TestAddStudioAdmin extends BaseTestImpl {
public void testAddStudioAdmin(){ public void testAddStudioAdmin(){
String[] role = {"店长","教练","销售主管","财务","前台"}; String[] role = {"店长","教练","销售主管","财务","前台"};
Random rand = new Random(); Random rand = new Random();
JSONObject addRequest = adminTools.addStudioAdmin(role[rand.nextInt(5)]); JSONObject addRequest = adminTools.addStudioAdmin(role[rand.nextInt(5)]);
// 添加角色成功后 // 添加角色成功后
String result = dataApi.getBodyInJSON().getString("result"); String result = dataApi.getBodyInJSON().getString("result");
...@@ -49,6 +52,7 @@ public class TestAddStudioAdmin extends BaseTestImpl { ...@@ -49,6 +52,7 @@ public class TestAddStudioAdmin extends BaseTestImpl {
} }
// 查询员工详情内容 // 查询员工详情内容
JSONObject adminInfo = adminTools.getStudioAdmin(result); JSONObject adminInfo = adminTools.getStudioAdmin(result);
phone = adminInfo.getJSONObject("result").getString("phone");
String[] resultString = {"name","phone","roles","teaching"}; // 新建之后验证相应的值 String[] resultString = {"name","phone","roles","teaching"}; // 新建之后验证相应的值
for (int i = 0; i < resultString.length; i++){ for (int i = 0; i < resultString.length; i++){
// check 1:创建员工时的值与查询员工详情时的值是否一致 // check 1:创建员工时的值与查询员工详情时的值是否一致
...@@ -58,7 +62,7 @@ public class TestAddStudioAdmin extends BaseTestImpl { ...@@ -58,7 +62,7 @@ public class TestAddStudioAdmin extends BaseTestImpl {
} }
try { try {
Thread.sleep(2000); Thread.sleep(10000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
...@@ -69,10 +73,48 @@ public class TestAddStudioAdmin extends BaseTestImpl { ...@@ -69,10 +73,48 @@ public class TestAddStudioAdmin extends BaseTestImpl {
} }
@Test(description = "添加员工,由于没有删除员工的操作,则每次随机取一个角色") @Test(description = "将添加的手机号在同品牌下其他场馆添加复用",priority = 1)
public void testAddStudioAdmin1(){ 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; ...@@ -12,6 +12,7 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Random;
/** /**
* @BelongsProject: xm-sportstest * @BelongsProject: xm-sportstest
...@@ -31,20 +32,29 @@ public class TestDepartStudioAdmin extends BaseTestImpl { ...@@ -31,20 +32,29 @@ public class TestDepartStudioAdmin extends BaseTestImpl {
@BeforeClass @BeforeClass
@Override @Override
public void beforeTest() { 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(); super.beforeTest();
} }
@Test @Test
public void testDepartStudioAdmin() { public void testDepartStudioAdmin() {
// 获取在职员工 // 获取在职员工
String body = "{\"size\":10,\"current\":0,\"state\":\"DUTY\"}"; String body = "{\"size\":20,\"current\":0,\"state\":\"DUTY\"}";
JSONObject adminPage = adminTools.pageStudioAdmin(body); JSONObject adminPage = adminTools.pageStudioAdmin(body);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total")); int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total>1){ if (total>1){
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("id"); int pages = Integer.parseInt(adminPage.getJSONObject("result").getString("pages"));
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("phone"); // 随机获取一页
String name = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("name"); 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+"\"}"; body = "{\"id\":\""+adminId+"\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true); xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
try { try {
...@@ -58,7 +68,7 @@ public class TestDepartStudioAdmin extends BaseTestImpl { ...@@ -58,7 +68,7 @@ public class TestDepartStudioAdmin extends BaseTestImpl {
total = Integer.parseInt(adminPage.getJSONObject("result").getString("total")); total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
Assert.assertEquals(total,1,"员工离职失败,用手机号查询离职员工未返回数据"); Assert.assertEquals(total,1,"员工离职失败,用手机号查询离职员工未返回数据");
try { try {
Thread.sleep(1000); Thread.sleep(12000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
......
...@@ -8,12 +8,14 @@ import com.xiaomai.enums.ApiModule; ...@@ -8,12 +8,14 @@ import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType; import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal; import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils; import com.xiaomai.utils.TimeUtils;
import org.testng.Assert; import org.testng.Assert;
import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Random;
/** /**
* @BelongsProject: xm-sportstest * @BelongsProject: xm-sportstest
...@@ -31,7 +33,7 @@ public class TestEditStudioAdmin extends BaseTestImpl { ...@@ -31,7 +33,7 @@ public class TestEditStudioAdmin extends BaseTestImpl {
@BeforeClass @BeforeClass
@Override @Override
public void beforeTest() { 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(); super.beforeTest();
} }
...@@ -41,9 +43,18 @@ public class TestEditStudioAdmin extends BaseTestImpl { ...@@ -41,9 +43,18 @@ public class TestEditStudioAdmin extends BaseTestImpl {
JSONObject adminPage = adminTools.pageStudioAdmin(body); JSONObject adminPage = adminTools.pageStudioAdmin(body);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total")); int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total>1){ if (total>1){
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("id"); int pages = Integer.parseInt(adminPage.getJSONObject("result").getString("pages"));
String name = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("name"); // 随机获取一页
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("phone"); 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(); JSONObject requestBody = new JSONObject();
...@@ -64,10 +75,11 @@ public class TestEditStudioAdmin extends BaseTestImpl { ...@@ -64,10 +75,11 @@ public class TestEditStudioAdmin extends BaseTestImpl {
String memo = "修改员工备注信息"; // 备注 String memo = "修改员工备注信息"; // 备注
requestBody.put("memo",memo); requestBody.put("memo",memo);
String editName = name + "修改"; String name = RandomStringUtil.random_name();
String editName = name + TimeUtils.getCurrentTime();
requestBody.put("name",editName); requestBody.put("name",editName);
String editNickName = name + "修改"; String editNickName = name + TimeUtils.getCurrentTime();
requestBody.put("nickName",editNickName); // 昵称 requestBody.put("nickName",editNickName); // 昵称
JSONObject avatar = new JSONObject(); // 头像 JSONObject avatar = new JSONObject(); // 头像
...@@ -111,7 +123,7 @@ public class TestEditStudioAdmin extends BaseTestImpl { ...@@ -111,7 +123,7 @@ public class TestEditStudioAdmin extends BaseTestImpl {
System.out.println(adminInfo.getJSONObject("result").getString(resultString[i])); System.out.println(adminInfo.getJSONObject("result").getString(resultString[i]));
} }
try { try {
Thread.sleep(1000); Thread.sleep(15000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(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; ...@@ -12,6 +12,7 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Random;
/** /**
* @BelongsProject: xm-sportstest * @BelongsProject: xm-sportstest
...@@ -29,7 +30,7 @@ public class TestReinStateStudioAdmin extends BaseTestImpl { ...@@ -29,7 +30,7 @@ public class TestReinStateStudioAdmin extends BaseTestImpl {
@BeforeClass @BeforeClass
@Override @Override
public void beforeTest() { 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(); super.beforeTest();
} }
...@@ -40,9 +41,19 @@ public class TestReinStateStudioAdmin extends BaseTestImpl { ...@@ -40,9 +41,19 @@ public class TestReinStateStudioAdmin extends BaseTestImpl {
JSONObject adminPage = adminTools.pageStudioAdmin(body); JSONObject adminPage = adminTools.pageStudioAdmin(body);
int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total")); int total = Integer.parseInt(adminPage.getJSONObject("result").getString("total"));
if (total>1){ if (total>1){
String adminId = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("id"); int pages = Integer.parseInt(adminPage.getJSONObject("result").getString("pages"));
String phone = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("phone"); // 随机获取一页
String name = adminPage.getJSONObject("result").getJSONArray("records").getJSONObject(1).getString("name"); 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+"\"}"; body = "{\"id\":\""+adminId+"\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true); xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
try { try {
...@@ -57,7 +68,7 @@ public class TestReinStateStudioAdmin extends BaseTestImpl { ...@@ -57,7 +68,7 @@ public class TestReinStateStudioAdmin extends BaseTestImpl {
Assert.assertEquals(total,1,"员工离职失败,用手机号查询离职员工未返回数据"); Assert.assertEquals(total,1,"员工离职失败,用手机号查询离职员工未返回数据");
try { try {
Thread.sleep(1000); Thread.sleep(12000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
......
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; ...@@ -9,6 +9,9 @@ import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/** /**
* @Author zxy * @Author zxy
* @Description * @Description
...@@ -20,7 +23,7 @@ public class TestCommonSearch extends XMBaseTest { ...@@ -20,7 +23,7 @@ public class TestCommonSearch extends XMBaseTest {
xmAppApi.setApiModule(ApiModule.Polar_Clue) xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_commonSearch") .setApiName("API_commonSearch")
.setLoginUser(LoginAccount.ZYX_DEV) .setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
dal.setCase_owner("zyx") dal.setCase_owner("zyx")
...@@ -31,11 +34,21 @@ public class TestCommonSearch extends XMBaseTest { ...@@ -31,11 +34,21 @@ public class TestCommonSearch extends XMBaseTest {
@Test(description = "搜索") @Test(description = "搜索")
public void testCommonSearch(){ public void testCommonSearch(){
List statusList = new ArrayList();
statusList.add("NORMAL");
statusList.add("HISTORY");
statusList.add("POTENTIAL");
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId()); object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("studioId",xmAppApi.getLoginInfo().getStudioId()); object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
object.put("dataPermissionFilter",false);
object.put("content","666"); object.put("content","666");
object.put("statusList",statusList);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true); 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; package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONObject; 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.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType; import com.xiaomai.enums.RequestType;
...@@ -12,6 +14,8 @@ import org.testng.Assert; ...@@ -12,6 +14,8 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import java.util.Random;
/** /**
* @Author zxy * @Author zxy
* @Description * @Description
...@@ -19,13 +23,14 @@ import org.testng.annotations.Test; ...@@ -19,13 +23,14 @@ import org.testng.annotations.Test;
*/ */
public class TestCreate extends XMBaseTest { public class TestCreate extends XMBaseTest {
MemberTools memberTools = new MemberTools(); MemberTools memberTools = new MemberTools();
HomeTools homeTools = new HomeTools();
@BeforeMethod @BeforeMethod
public void beforeTest(){ public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue) xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_create") .setApiName("API_create")
.setLoginUser(LoginAccount.ZYX_DEV) .setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
dal.setCase_owner("zyx") dal.setCase_owner("zyx")
...@@ -35,12 +40,34 @@ public class TestCreate extends XMBaseTest { ...@@ -35,12 +40,34 @@ public class TestCreate extends XMBaseTest {
@Test(description = "新增潜在会员") @Test(description = "新增潜在会员")
public void testCreate(){ 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 name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666"); 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"); Boolean duplicate = memberTools.checkPhoneDuplicate(phone,"").getJSONObject("result").getBoolean("duplicate");
if(duplicate == false) { if(duplicate == false){
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
object.put("brandId", xmAppApi.getLoginInfo().getBrandId()); object.put("brandId", xmAppApi.getLoginInfo().getBrandId());
object.put("studioId", xmAppApi.getLoginInfo().getStudioId()); object.put("studioId", xmAppApi.getLoginInfo().getStudioId());
...@@ -50,6 +77,23 @@ public class TestCreate extends XMBaseTest { ...@@ -50,6 +77,23 @@ public class TestCreate extends XMBaseTest {
object.put("name", name); object.put("name", name);
object.put("phone", phone); object.put("phone", phone);
object.put("gender", "UNKNOWN"); 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); xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(true);
String memberId = xmAppApi.getBodyInJSON().getString("result"); String memberId = xmAppApi.getBodyInJSON().getString("result");
...@@ -60,14 +104,46 @@ public class TestCreate extends XMBaseTest { ...@@ -60,14 +104,46 @@ public class TestCreate extends XMBaseTest {
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); 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); 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 = "新增潜在会员-手机号为空") @Test(description = "新增潜在会员-手机号为空")
public void testCreate_1(){ public void testCreate_1(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3); String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
...@@ -83,7 +159,8 @@ public class TestCreate extends XMBaseTest { ...@@ -83,7 +159,8 @@ public class TestCreate extends XMBaseTest {
object.put("gender", "UNKNOWN"); object.put("gender", "UNKNOWN");
xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(false); 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; package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule; import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
...@@ -19,13 +20,13 @@ import org.testng.annotations.Test; ...@@ -19,13 +20,13 @@ import org.testng.annotations.Test;
*/ */
public class TestGetDetailById extends XMBaseTest { public class TestGetDetailById extends XMBaseTest {
MemberTools memberTools = new MemberTools(); MemberTools memberTools = new MemberTools();
String id;
@BeforeMethod @BeforeMethod
public void beforeTest(){ public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue) xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_findDetailById") .setApiName("API_findDetailById")
.setLoginUser(LoginAccount.ZYX_DEV) .setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
dal.setCase_owner("zyx") dal.setCase_owner("zyx")
...@@ -37,7 +38,17 @@ public class TestGetDetailById extends XMBaseTest { ...@@ -37,7 +38,17 @@ public class TestGetDetailById extends XMBaseTest {
String name = "自动化潜在会员" + RandomStringUtil.randomString(3); String name = "自动化潜在会员" + RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666"); 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(); JSONObject object = new JSONObject();
object.put("memberId",id); object.put("memberId",id);
...@@ -45,7 +56,7 @@ public class TestGetDetailById extends XMBaseTest { ...@@ -45,7 +56,7 @@ public class TestGetDetailById extends XMBaseTest {
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true); xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
JSONObject res = xmAppApi.getBodyInJSON(); 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 { ...@@ -24,7 +24,7 @@ public class TestSearchMember extends XMBaseTest {
xmAppApi.setApiModule(ApiModule.Polar_Clue) xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_searchMember") .setApiName("API_searchMember")
.setLoginUser(LoginAccount.ZYX_DEV) .setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
dal.setCase_owner("zyx") dal.setCase_owner("zyx")
...@@ -44,9 +44,15 @@ public class TestSearchMember extends XMBaseTest { ...@@ -44,9 +44,15 @@ public class TestSearchMember extends XMBaseTest {
object.put("current",0); object.put("current",0);
object.put("size",20); object.put("size",20);
object.put("brandId",xmAppApi.getLoginInfo().getBrandId()); 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("statusList",statusList);
object.put("searchType","CLUE_PRIVATE");
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true); 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; package com.xiaomai.cases.polar.clue;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule; import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
...@@ -19,12 +20,12 @@ import org.testng.annotations.Test; ...@@ -19,12 +20,12 @@ import org.testng.annotations.Test;
*/ */
public class TestUpdate extends XMBaseTest { public class TestUpdate extends XMBaseTest {
MemberTools memberTools = new MemberTools(); MemberTools memberTools = new MemberTools();
String id;
@BeforeMethod @BeforeMethod
public void beforeTest(){ public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue) xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_forceUpdate") .setApiName("API_forceUpdate")
.setLoginUser(LoginAccount.ZYX_DEV) .setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
dal.setCase_owner("zyx") dal.setCase_owner("zyx")
...@@ -37,8 +38,15 @@ public class TestUpdate extends XMBaseTest { ...@@ -37,8 +38,15 @@ public class TestUpdate extends XMBaseTest {
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3); String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666"); 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"); Boolean duplicate = memberTools.checkPhoneDuplicate(phone,id).getJSONObject("result").getBoolean("duplicate");
...@@ -66,6 +74,7 @@ public class TestUpdate extends XMBaseTest { ...@@ -66,6 +74,7 @@ public class TestUpdate extends XMBaseTest {
object.put("emergencyContactPerson", "紧急联系人" + RandomStringUtil.randomString(3)); object.put("emergencyContactPerson", "紧急联系人" + RandomStringUtil.randomString(3));
object.put("emergencyContactPhone", RandomStringUtil.randomMobile("999")); object.put("emergencyContactPhone", RandomStringUtil.randomMobile("999"));
object.put("resourceId", "12"); object.put("resourceId", "12");
object.put("intention","LOW");
object.put("remark", "这是备注这是备注这是备注这是备注这是备注这是备注这是备注这是备注这是备注这是备注"); object.put("remark", "这是备注这是备注这是备注这是备注这是备注这是备注这是备注这是备注这是备注这是备注");
object.put("memberId", id); object.put("memberId", id);
...@@ -107,7 +116,7 @@ public class TestUpdate extends XMBaseTest { ...@@ -107,7 +116,7 @@ public class TestUpdate extends XMBaseTest {
object.put("memberId", ""); object.put("memberId", "");
xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(false); 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.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;
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(xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("total"));
if (cardTotal == 0) {
cardId = cardTools.memberCardCreate("创建订单会员卡"+ TimeUtils.getCurrentTime()).getString("result");
}
JSONObject memberCard=orderTools.fetchPageOfMemberCard(xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
int quantity= Integer.parseInt(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,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
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,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
String cancelSuccess=cancel.getString("success");
Assert.assertEquals(cancelSuccess,"true","取消待支付订单失败");
//获取订单详情
JSONObject getDetailResult1=orderTools.getDetail(getDetailId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
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.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(xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("total"));
if (cardTotal == 0) {
cardId = cardTools.memberCardCreate("创建订单会员卡"+ TimeUtils.getCurrentTime()).getString("result");
}
JSONObject memberCard=orderTools.fetchPageOfMemberCard(xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
int quantity= Integer.parseInt(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,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
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),
xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
String modifySupplierInnerMemoSuccess=modifySupplierInnerMemoResult.getString("success");
Assert.assertEquals(modifySupplierInnerMemoSuccess,"true","修改对内备注失败");
//修改对外备注
JSONObject modifySupplierMemoResult=orderTools.modifySupplierMemo(getDetailId, "已修改对外备注"+RandomStringUtil.randomString(10),
xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
String modifySupplierMemoResultSuccess=modifySupplierMemoResult.getString("success");
Assert.assertEquals(modifySupplierMemoResultSuccess,"true","修改对外备注失败");
}
}
}
package com.xiaomai.cases.polar.finance.order; package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; 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.member.Tools;
import com.xiaomai.client.XMAppApi; import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule; import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal; import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest; import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; import org.testng.annotations.Test;
public class TestSignOrder extends XMBaseTest { public class TestSignOrder extends XMBaseTest {
String memberId;
String cardId;
Tools tools=new Tools(); Tools tools=new Tools();
OrderTools orderTools=new OrderTools(); OrderTools orderTools=new OrderTools();
RevenueAndExpenditureTools revenueAndExpenditureTools=new RevenueAndExpenditureTools();
CardTools cardTools=new CardTools();
@BeforeMethod @BeforeMethod
public void beforeTest(){ public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance) xmAppApi.setApiModule(ApiModule.Polar_Finance)
...@@ -30,18 +44,28 @@ public class TestSignOrder extends XMBaseTest { ...@@ -30,18 +44,28 @@ public class TestSignOrder extends XMBaseTest {
@Test(description = "创建订单") @Test(description = "创建订单")
public void testSignOrder(){ public void testSignOrder(){
String name = "创建订单潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
//获取会员ID //获取会员ID
String memberId=tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("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 { try {
Thread.sleep(1000); Thread.sleep(1000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
//获取会员卡信息 //获取会员卡信息
//获取会员卡列表 //获取会员卡列表
int cardTotal = Integer.parseInt(orderTools.fetchPageOfMemberCard(xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("total"));
if (cardTotal == 0) {
cardId = cardTools.memberCardCreate("创建订单会员卡"+TimeUtils.getCurrentTime()).getString("result");
}
JSONObject memberCard=orderTools.fetchPageOfMemberCard(xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()); JSONObject memberCard=orderTools.fetchPageOfMemberCard(xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
String cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id"); cardId=memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
int quantity= Integer.parseInt(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("balance")); int quantity= Integer.parseInt(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("balance"));
float price= Float.parseFloat(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("price")); 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")); int validPeriod= Integer.parseInt(memberCard.getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("validPeriod"));
...@@ -70,16 +94,88 @@ public class TestSignOrder extends XMBaseTest { ...@@ -70,16 +94,88 @@ public class TestSignOrder extends XMBaseTest {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
if( limitResult == true){ if(limitResult == true){
//创建订单 //创建订单
JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1"); 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,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
String id = getDetailResult.getJSONObject("result").getString("id");
String businessNo = getDetailResult.getJSONObject("result").getString("businessNo");
String state=getDetailResult.getJSONObject("result").getString("state");
Assert.assertEquals(id.equals(getDetailId),true,"获取创建的订单详情失败");
Assert.assertEquals(state,"PAID","获取创建的订单未完成");
//获取订单支付记录
JSONObject listByVoucherIdResult=orderTools.listByVoucherId(getDetailId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
String listByVoucherId = listByVoucherIdResult.getJSONArray("result").getJSONObject(0).getString("voucherId");//订单的id
String paymentWayId=listByVoucherIdResult.getJSONArray("result").getJSONObject(0).getJSONObject("paymentWay").getString("id");
String listByVoucherState=listByVoucherIdResult.getJSONArray("result").getJSONObject(0).getString("state");
String id1=listByVoucherIdResult.getJSONArray("result").getJSONObject(0).getString("id");//收支的id
Assert.assertEquals(listByVoucherId.equals(getDetailId),true,"获取创建的订单的支付记录失败");
Assert.assertEquals(listByVoucherState,"NORMAL","获取创建的订单的支付记录状态未是已完成");
//获取订单管理列表
JSONObject pageVoucherResult=orderTools.pageVoucher1(xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId(),businessNo);
int total=Integer.parseInt(pageVoucherResult.getJSONObject("result").getString("total"));
Assert.assertEquals(total>=1,true,"订单管理列表获取创建的订单失败");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取收支明细
JSONObject pageNormalIncomeExpenseResult=revenueAndExpenditureTools.pageNormalIncomeExpense(paymentWayId,"INCOME", "SIGN",
xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
int pageNormalIncomeExpensePages=Integer.parseInt(pageNormalIncomeExpenseResult.getJSONObject("result").getString("pages"));
int pageNormalIncomeExpenseTotal=Integer.parseInt(pageNormalIncomeExpenseResult.getJSONObject("result").getString("total"));
for(int k=0; k == pageNormalIncomeExpensePages+1; k++){
int n =k==pageNormalIncomeExpensePages ? (pageNormalIncomeExpenseTotal%10==0 ? 10 : pageNormalIncomeExpenseTotal%10) : 10;
JSONArray records=pageNormalIncomeExpenseResult.getJSONObject("result").getJSONArray("records");
boolean flag=true;
for(int i=0; i<n; i++){
String pageNormalIncomeExpenseId=records.getJSONObject(i).getString("id");
if(pageNormalIncomeExpenseId.equals(id1)){
flag = true;
break;
}
}
Assert.assertEquals(true,flag,"创建订单未生成对应的收支明细");
}
//获取收支详情
JSONObject getResult=revenueAndExpenditureTools.get(id1,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId());
String getBusinessNo=getResult.getJSONObject("result").getString("businessNo");
String getState=getResult.getJSONObject("result").getString("state");
Assert.assertEquals(getBusinessNo.equals(businessNo),true,"获取创建的订单的收支详情失败");
Assert.assertEquals(getState,"NORMAL","创建的订单的收支明细状态未是已完成");
} else { }
else {
Assert.assertEquals(limitResult, false, "无法购买,已达到最多购买N张的上限");
}
}
} }
......
package com.xiaomai.cases.polar.finance.revenueAndExpenditure;
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;
import java.util.Date;
public class RevenueAndExpenditureTools extends XMBaseTest {
/**
* @param
* @description:分页收支列表
* @param paymentWays:支付方式 1 2
* @param type: 业务收支类型:INCOME:收入 EXPENSE:支出
* @param item: 业务收支类型:SIGN:签单 REFUND:退单
* @param supplierId:卖家ID 场馆ID
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public JSONObject pageNormalIncomeExpense(String paymentWays, String type, String item, String supplierId, String brandId, String studioId, String operatorId, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pageNormalIncomeExpense")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
JSONArray jsonArray=new JSONArray();
jsonArray.add(paymentWays);
jsonObject.put("paymentWays",jsonArray);
jsonObject.put("type",type);
jsonObject.put("item",item);
jsonObject.put("supplierId",supplierId);
jsonObject.put("brandId",brandId);
jsonObject.put("studioId",studioId);
jsonObject.put("operatorId",operatorId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:统计收支
* @param supplierId:卖家ID 场馆ID
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public JSONObject sumNormalIncomeExpense(String paymentWays, String type, String item,String supplierId, String brandId, String studioId, String operatorId, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_sumNormalIncomeExpense")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
JSONArray jsonArray=new JSONArray();
jsonArray.add(paymentWays);
jsonObject.put("paymentWays",jsonArray);
jsonObject.put("type",type);
jsonObject.put("item",item);
jsonObject.put("supplierId",supplierId);
jsonObject.put("brandId",brandId);
jsonObject.put("studioId",studioId);
jsonObject.put("operatorId",operatorId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:分页作废收支列表
* @param supplierId:卖家ID 场馆ID
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public JSONObject pageDiscardIncomeExpense(String paymentWays, String type, String item, String supplierId, String brandId, String studioId, String operatorId, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_pageDiscardIncomeExpense")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
JSONArray jsonArray=new JSONArray();
jsonArray.add(paymentWays);
jsonObject.put("paymentWays",jsonArray);
jsonObject.put("type",type);
jsonObject.put("item",item);
jsonObject.put("supplierId",supplierId);
jsonObject.put("brandId",brandId);
jsonObject.put("studioId",studioId);
jsonObject.put("operatorId",operatorId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:获取收支的支付/退款记录
* @param id:主键ID
* @param brandId:品牌ID
* @param studioId:场馆ID
* @param operatorId:操作人ID
* @author: yangfangfang
**/
public JSONObject get(String id, String brandId, String studioId, String operatorId, DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_get")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("id",id);
jsonObject.put("brandId",brandId);
jsonObject.put("studioId",studioId);
jsonObject.put("operatorId",operatorId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
}
package com.xiaomai.cases.polar.finance.revenueAndExpenditure;
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 TestSumNormalIncomeExpense extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_sumNormalIncomeExpense")
.setLoginUser(LoginAccount.GYM_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[][]{
{"INCOME","SIGN"},//收入,签单
{"EXPENSE","REFUND"}//支出,退单
};
}
@Test(description = "获取统计收支",dataProvider = "dataProvider")
public void testSumNormalIncomeExpense(String type,String item){
JSONObject jsonObject=new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
JSONArray jsonArray=new JSONArray();
jsonArray.add("1");
jsonObject.put("paymentWays",jsonArray);
jsonObject.put("type",type);
jsonObject.put("item",item);
jsonObject.put("supplierId",xmAppApi.getLoginInfo().getStudioId());
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);
JSONObject response=xmAppApi.getBodyInJSON();
String success=response.getString("success");
Assert.assertEquals(success,"true","获取统计收支失败");
}
}
package com.xiaomai.cases.polar.member;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.clue.MemberTools;
import com.xiaomai.cases.polar.course.CourseTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
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 javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxy
* @Description
* @Date 2024/6/28 17:13
*/
public class TestAppointCoach extends XMBaseTest {
Tools tools = new Tools();
MemberTools memberTools = new MemberTools();
String memberId;
String courseId;
CardTools cardTools = new CardTools();
OrderTools orderTools = new OrderTools();
@Resource(name = "courseCategoryTools")
CourseCategoryTools courseCategoryTools;
@Resource(name = "courseTools")
CourseTools courseTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Clue)
.setApiName("API_appointCoach")
.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 testAppointCoach(){
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
String categoryId = courseCategoryTools.getCourseCategoryPage("瑜伽");
courseId = courseTools.getPersonalOrGroupCourseId("GROUP", "空中瑜伽团课课程", categoryId, "STUDIO", "", 2, 1).getString(0);
//查看是否有存量的正式和流失会员,若有则取存量数据,没有则查看是否有存量的潜在会员,若有则给潜在会员购卡变为正式会员,没有存量的则新建潜在会员后再购卡变为正式会员
JSONArray array = tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records");
//查看是否有存量的流失会员
JSONArray array1 = tools.search("HISTORY","HISTORY").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");
}
else {
memberId = memberTools.create(name,phone).getString("result");
JSONArray listUserReservableBenefit = cardTools.listUserReservableBenefit(courseId, "GROUP_CLASS", "MEMBER", memberId, TimeUtils.getTodayTime());
if (listUserReservableBenefit.size() == 0) {
// 购买适用的会员卡
signOrder(courseId, memberId);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
listUserReservableBenefit = cardTools.listUserReservableBenefit(courseId, "GROUP_CLASS", "MEMBER", memberId, TimeUtils.getTodayTime());
}
}
List memberIds = new ArrayList();
memberIds.add(memberId);
List memberStatusList = new ArrayList();
String coachId = memberTools.fetchStaff("AS_COACH",memberStatusList,"").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
JSONObject object = new JSONObject();
object.put("memberIds",memberIds);
object.put("coachId",coachId);
object.put("studioId",xmAppApi.getLoginInfo().getStudioId());
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(memberTools.findStudioMemberDetail(memberId).getJSONObject("result").getString("coachId"),coachId);
}
// 买卡
public void signOrder(String courseId,String memberId){
// 查询存量的卡
JSONObject fetchPageOfMemberCard = cardTools.fetchPageOfMemberCard(courseId);
int total = Integer.parseInt(fetchPageOfMemberCard.getString("total"));
String cardId = "";
int quantity = 0;
float price = 0;
int validPeriod = 0;
if (total == 0) {
cardId = cardTools.memberCardCreate("约课使用会员卡"+TimeUtils.getCurrentTime()).getString("result");
}
cardId = fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("id");
quantity = Integer.parseInt(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("balance"));
price = Float.parseFloat(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("price"));
validPeriod = Integer.parseInt(fetchPageOfMemberCard.getJSONArray("records").getJSONObject(0).getString("validPeriod"));
//获取签单要用的卡快照id
String latestSnapshotId = orderTools.fetchDetailById(cardId,xmAppApi.getLoginInfo().getBrandId(),xmAppApi.getLoginInfo().getStudioId(),xmAppApi.getLoginInfo().getAdminId()).getJSONObject("result").getString("latestSnapshotId");
//检查会员对该卡是否超出购买上限
boolean limitResult= orderTools.checkAllowPurchase("MEMBER_CARD",cardId,cardId,"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"); }
}
}
...@@ -388,6 +388,32 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) { ...@@ -388,6 +388,32 @@ public JSONObject membercardsearch( DataUserInfo...dataUserInfos) {
return response; return response;
} }
/**
* @param
* @description:会员卡查看编辑记录
* @author: yangjian
**/
public JSONObject fetchPageOfHistory( String memberCardId ,DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchPageOfHistory")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
......
package com.xiaomai.cases.polar.memberCard;
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 com.xiaomai.utils.XMJSONPath;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestFetchPageOfHistory extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchPageOfHistory")
.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 testfetchPageOfHistory() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONObject jsonObject = new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("memberCardId",memberCardId);
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.memberCard;
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.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
public class TestFetchUserCardList extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_fetchUserCardList")
.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 testfetchUserCardList() {
JSONObject jsonObject = new JSONObject();
List memberCardStateList = new ArrayList();
memberCardStateList.add("UN_ACTIVE");
memberCardStateList.add("NORMAL");
memberCardStateList.add("SUSPEND");
jsonObject.put("accountType","MEMBER");
jsonObject.put("memberId","1801173772541014017");//后要变成会员id的变量
jsonObject.put("memberCardStateList",memberCardStateList);
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.memberCard;
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.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestFindHistoryDetailById extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_findHistoryDetailById")
.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 testfindHistoryDetailById() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张会员卡的ID
Cardtools.fetchPageOfHistory(memberCardId);
String id = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].snapshotId");//第一条编辑记录
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",id);
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.memberCard;
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 com.xiaomai.utils.XMJSONPath;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestModifySharers extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_modifySharers")
.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 testmodifySharers() {
CardTools Cardtools = new CardTools();
Cardtools.membercardsearch();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张会员卡的ID;
JSONArray sharerIds=new JSONArray();
sharerIds.add("1807334217474027521");
JSONObject jsonObject = new JSONObject();
jsonObject.put("sharerIds",sharerIds);
jsonObject.put("memberCardId",memberCardId);
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 testmodifySharers1() {
CardTools Cardtools = new CardTools();
Cardtools.membercardsearch();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张会员卡的ID;
//JSONArray sharerIds=new JSONArray();
//sharerIds.add();
JSONObject jsonObject = new JSONObject();
//jsonObject.put("sharerIds",sharerIds);//空共享人
jsonObject.put("memberCardId",memberCardId);
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.memberCard;
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.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestModifyShelfState extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_modifyShelfState")
.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 testmodifyShelfState() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONObject jsonObject = new JSONObject();
jsonObject.put("shelfState","NO");
jsonObject.put("memberCardId",memberCardId);
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 testmodifyShelfState1() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONObject jsonObject = new JSONObject();
jsonObject.put("shelfState","YES");
jsonObject.put("memberCardId",memberCardId);
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.memberCard;
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.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestModifyXcxSaleState extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_modifyXcxSaleState")
.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 testmodifyShelfState() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONObject jsonObject = new JSONObject();
jsonObject.put("xcxSaleState","NO");
jsonObject.put("memberCardId",memberCardId);
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 testmodifyShelfState1() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONObject jsonObject = new JSONObject();
jsonObject.put("xcxSaleState","YES");
jsonObject.put("memberCardId",memberCardId);
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.memberCard;
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 com.xiaomai.utils.XMJSONPath;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
public class TestTenantMemberCard_update extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_tenantMemberCard_update")
.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 testmodifySharers() {
CardTools Cardtools = new CardTools();
Cardtools.memberCardCreate("次卡-自动化会员卡"+ RandomStringUtil.randomString(3));//创建随机的名的次卡
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONArray activatePatternList=new JSONArray();
activatePatternList.add("PURCHASE");
activatePatternList.add("SPECIFIC_DATE");
activatePatternList.add("FIRST_USED");
List benefitList = new ArrayList();
//List itemList = new ArrayList();
//itemList.add("");
JSONObject Object = new JSONObject();
Object.put("identifier", xmAppApi.getLoginInfo().getUser());
Object.put("benefitType", "BALANCE");
Object.put("targetScope", "GROUP_CLASS_AND_PERSONAL_COURSE");
Object.put("balance", "30");
Object.put("reserveLimitType", "UN_LIMIT");
Object.put("reserveLimitNumber", 0);
Object.put("defaultConsumeBalance", 1);
//Object.put("itemList", itemList);
Object.put("targetType", "COURSE");
benefitList.add(Object);
JSONObject jsonObject = new JSONObject();
jsonObject.put("surfaceUrl","https://image.xiaomaiketang.com/xm/internal/HpRiJpFnTC.png");//会员卡封面图片
jsonObject.put("surfaceCornerMark","自动化标签");
jsonObject.put("title","" );//编辑无法修改会员卡名称
jsonObject.put("validPeriod", "3");//有效期-3天
jsonObject.put("activatePatternList", activatePatternList);//三种生效方式
jsonObject.put("sharePeopleLimit", "2");//共享人数
jsonObject.put("benefitList", benefitList);//使用权益
jsonObject.put("price", "1");//价格
jsonObject.put("underlinePrice", "10");//划线价
jsonObject.put("purchaseNumberLimit", "-1");//购买数量限制
jsonObject.put("xcxSaleStatus", "YES");//小程序是否售卖
jsonObject.put("creatorId", xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("shelfState", "YES");//卡启用状态
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("description", "{\"items\":[{\"content\":\"自动化编辑的卡\",\"aspect\":\"\",\"type\":\"TEXT\"}]}");
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("memberCardId",memberCardId);
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
}
}
...@@ -337,7 +337,8 @@ public class TestAddMemberReserve extends BaseTestImpl { ...@@ -337,7 +337,8 @@ public class TestAddMemberReserve extends BaseTestImpl {
if( limitResult == true){ if( limitResult == true){
//创建订单 //创建订单
JSONObject orderResult = orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1"); JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId, price/2,"PURCHASE",
"MEMBER_CARD",memberId,price-price/2,price-price/2,"1");
} }
} }
......
...@@ -246,7 +246,8 @@ public class TestAddToQueue extends BaseTestImpl { ...@@ -246,7 +246,8 @@ public class TestAddToQueue extends BaseTestImpl {
if( limitResult == true){ if( limitResult == true){
//创建订单 //创建订单
JSONObject orderResult = orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1"); JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId, price/2,"PURCHASE",
"MEMBER_CARD",memberId,price-price/2,price-price/2,"1");
} }
} }
......
...@@ -219,7 +219,8 @@ public class TestSignIn extends BaseTestImpl { ...@@ -219,7 +219,8 @@ public class TestSignIn extends BaseTestImpl {
if( limitResult == true){ if( limitResult == true){
//创建订单 //创建订单
JSONObject orderResult = orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,"PURCHASE",memberId,price,price,"1"); JSONObject orderResult=orderTools.signOrder(cardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId, price/2,"PURCHASE",
"MEMBER_CARD",memberId,price-price/2,price-price/2,"1");
} }
} }
......
...@@ -5,6 +5,7 @@ import com.xiaomai.basetest.BaseTestImpl; ...@@ -5,6 +5,7 @@ import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.course.CourseTools; import com.xiaomai.cases.polar.course.CourseTools;
import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools; import com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools;
import com.xiaomai.cases.polar.setting.venue.VenueAreaTools; import com.xiaomai.cases.polar.setting.venue.VenueAreaTools;
import com.xiaomai.cases.polar.studioConfig.HomeTools;
import com.xiaomai.enums.ApiModule; import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount; import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal; import com.xiaomai.enums.Terminal;
...@@ -52,6 +53,9 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl { ...@@ -52,6 +53,9 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl {
@Test(description = "测试新建团课排课") @Test(description = "测试新建团课排课")
public void testCreateGroupRuleSchedule() { public void testCreateGroupRuleSchedule() {
//查询今日待上课的数据
HomeTools homeTools = new HomeTools();
int num = homeTools.queryTodaySchedule().getJSONArray("result").size();
//获取存量课程ID //获取存量课程ID
String courseId = groupScheduleTools.getStockGroupCourseId(courseName); String courseId = groupScheduleTools.getStockGroupCourseId(courseName);
...@@ -76,12 +80,18 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl { ...@@ -76,12 +80,18 @@ public class TestCreateGroupRuleSchedule extends BaseTestImpl {
groupScheduleTools.createGroupRuleSchedule(courseId, chiefCoachIdS, todayStartTimeTamp, endDateTimeTamp, venueAreaIds, assistCoachIdS, false, 1,480); groupScheduleTools.createGroupRuleSchedule(courseId, chiefCoachIdS, todayStartTimeTamp, endDateTimeTamp, venueAreaIds, assistCoachIdS, false, 1,480);
//2-查询排课日程 //2-查询排课日程
JSONArray result = groupScheduleTools.getGroupRuleScheduleList(courseId, chiefCoachIdS); JSONArray result = groupScheduleTools.getGroupRuleScheduleList(courseId, chiefCoachIdS);
Assert.assertTrue(result.size() >= 1); Assert.assertTrue(result.size() >= 1);
//创建今日待上课的排课后再查询今日待上课的数据
int num1 = homeTools.queryTodaySchedule().getJSONArray("result").size();
Assert.assertEquals(num1, num+1);
//统计查询到的目标日程数量 //统计查询到的目标日程数量
int size = result.size(); int size = result.size();
String ruldId = XMJSONPath.readPath(result.getJSONObject(0), "$.ruleId"); String ruldId = XMJSONPath.readPath(result.getJSONObject(0), "$.ruleId");
groupScheduleTools.delGroupRuleSchedule(ruldId,true); groupScheduleTools.delGroupRuleSchedule(ruldId,true);
JSONArray result2 = groupScheduleTools.getGroupRuleScheduleList(courseId, chiefCoachIdS); JSONArray result2 = groupScheduleTools.getGroupRuleScheduleList(courseId, chiefCoachIdS);
//删除成功后,统计查询到的目标日程数量是否-1 //删除成功后,统计查询到的目标日程数量是否-1
Assert.assertEquals(result2.size(), size - 1); Assert.assertEquals(result2.size(), size - 1);
......
package com.xiaomai.cases.polar.studio;
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;
public class TestBrand_get extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Studio)
.setApiName("API_brand_get")
.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 testbrandget() {
JSONObject jsonObject = new JSONObject();
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);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$code"),"200");
}
}
package com.xiaomai.cases.polar.studio;
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.ArrayList;
import java.util.List;
public class TestEditBrand extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Studio)
.setApiName("API_editBrand")
.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 testeditBrand() {
JSONObject Object1 = new JSONObject();
Object1.put("content", "自动化文本");
Object1.put("type", "TEXT");
List intro = new ArrayList();
intro.add(Object1);
JSONObject jsonObject = new JSONObject();
jsonObject.put("cover","1800412674735546369");
jsonObject.put("intro",intro);
jsonObject.put("logo","1800420544722051074");
jsonObject.put("name","小麦乐动自动化场馆");
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);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$code"),"200");
}
}
package com.xiaomai.cases.polar.studio;
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.ArrayList;
import java.util.List;
public class TestEditStudioExt extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Studio)
.setApiName("API_editStudioExt")
.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 testeditStudioExt() {
JSONObject address = new JSONObject();
address.put("address", "同人广场自动化编辑场馆信息");
address.put("province", 330000);
address.put("city", 330100);
address.put("distinct", 330106);
address.put("fullAddress", "浙江省杭州市西湖区同人广场自动化编辑场馆信息");
JSONObject announcement = new JSONObject();
announcement.put("announcementSwitch", "VALID");
announcement.put("content", "场馆公告自动化");
List dayOfWeeks = new ArrayList();
dayOfWeeks.add(1);
dayOfWeeks.add(2);
dayOfWeeks.add(3);
dayOfWeeks.add(4);
dayOfWeeks.add(5);
dayOfWeeks.add(6);
dayOfWeeks.add(7);
JSONObject Object = new JSONObject();
Object.put("dayOfWeeks", dayOfWeeks);
Object.put("startMinute", 0);
Object.put("endMinute", 1439);
List businessTimes = new ArrayList();
businessTimes.add(Object);
List phones = new ArrayList();
phones.add("12312312312");
List services = new ArrayList();
services.add("自动化设施");
//List images = new ArrayList();
//images.add("");
JSONObject jsonObject = new JSONObject();
jsonObject.put("address",address);
jsonObject.put("announcement",announcement);
jsonObject.put("businessTimes",businessTimes);
jsonObject.put("phones",phones);
jsonObject.put("services",services);
//jsonObject.put("images",images);
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);
Assert.assertEquals(XMJSONPath.readPath(xmAppApi.getBodyInJSON(),"$code"),"200");
}
}
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