Commit 32e518d7 by yangfangfang

Merge remote-tracking branch 'origin/master'

parents 764911f5 0b985fca
<?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;
......
...@@ -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 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.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
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
...@@ -25,7 +29,7 @@ public class TestCreate extends XMBaseTest { ...@@ -25,7 +29,7 @@ public class TestCreate extends XMBaseTest {
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 +39,32 @@ public class TestCreate extends XMBaseTest { ...@@ -35,12 +39,32 @@ 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);
//全部线索快捷筛选
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 +74,23 @@ public class TestCreate extends XMBaseTest { ...@@ -50,6 +74,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 +101,36 @@ public class TestCreate extends XMBaseTest { ...@@ -60,14 +101,36 @@ 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
//在另一个场馆添加该会员,并在添加后校验是否添加成功
memberTools.join(memberId,dataUserInfo);
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 +146,8 @@ public class TestCreate extends XMBaseTest { ...@@ -83,7 +146,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.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();
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();
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");
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();
int num1 = memberTools.searchFeedback(memberId).getJSONObject("result").getJSONArray("records").size();
Assert.assertEquals(num1,num+1);
Assert.assertEquals(num_todo1,num_todo+1);
Assert.assertEquals(memberTools.summaryFeedback().getJSONObject("result").getString("todayWaitFeedback"),"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");
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.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,"PURCHASE",memberId,price,price,"1");
}
}
}
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;
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);
}
}
...@@ -33,6 +33,11 @@ public class ConfigTools extends XMBaseTest { ...@@ -33,6 +33,11 @@ public class ConfigTools extends XMBaseTest {
.setTerminal(Terminal.B); .setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos); super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = JSONObject.parseObject(body);
jsonObject.put("domainId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true); dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON(); return dataApi.getBodyInJSON();
} }
......
...@@ -206,7 +206,8 @@ public class OkHttpClient { ...@@ -206,7 +206,8 @@ public class OkHttpClient {
} }
} }
Headers.Builder headerBuilder = new Headers.Builder(); // Headers.Builder headerBuilder = new Headers.Builder();
headerBuilder = new Headers.Builder();
// 以 Entry 添加消息头 // 以 Entry 添加消息头
if (headerParamsMap != null && headerParamsMap.size() > 0) { if (headerParamsMap != null && headerParamsMap.size() > 0) {
Iterator iterator = headerParamsMap.entrySet().iterator(); Iterator iterator = headerParamsMap.entrySet().iterator();
......
...@@ -8,6 +8,7 @@ public class ApiModule { ...@@ -8,6 +8,7 @@ public class ApiModule {
public static String Polar_Admin ="polar_admin"; public static String Polar_Admin ="polar_admin";
public static String Polar_Config ="polar_config"; public static String Polar_Config ="polar_config";
public static String Polar_Setting ="polar_setting";//通用设置 public static String Polar_Setting ="polar_setting";//通用设置
public static String Polar_Applet ="polar_applet";
public static String Polar_Clue ="polar_clue"; public static String Polar_Clue ="polar_clue";
public static String Polar_Member ="polar_member";//会员管理 public static String Polar_Member ="polar_member";//会员管理
public static String Polar_Course ="polar_course";//会员管理 public static String Polar_Course ="polar_course";//会员管理
......
...@@ -9,9 +9,11 @@ public class LoginAccount { ...@@ -9,9 +9,11 @@ public class LoginAccount {
public static String XYM_DEV = "xym_dev"; public static String XYM_DEV = "xym_dev";
public static String YFF_DEV = "yff_dev"; public static String YFF_DEV = "yff_dev";
public static String ZYX_DEV = "zyx_dev"; public static String ZYX_DEV = "zyx_dev";
public static String ZYX1_DEV = "zyx1_dev";
public static String ADU_PROD = "gym_prod_du"; public static String ADU_PROD = "gym_prod_du";
public static String GYM_PROD = "gym_prod"; public static String GYM_PROD = "gym_prod";
public static String GYM_PROD2 = "gym_prod2";
public static String XYM_PROD = "xym_prod"; public static String XYM_PROD = "xym_prod";
public static String XYM_MINIAPPC = "xym_miniAppC"; public static String XYM_MINIAPPC = "xym_miniAppC";
......
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