Commit fe50320d by zhangyuxiao

新增

parent de846633
package com.xiaomai.cases.lunar.user;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/12 15:01
*/
public class TestBindGhzStatus extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_User)
.setApiName("API_bindGhzStatus")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "公众号订阅状态")//UN_AUTH_SUCCESS:品牌授权公众号未成功,UN_OPENID:未绑定公众号openId,UN_SUBSCRIBE:未关注, SUBSCRIBE:已关注
public void testBindGhzStatus(){
UserTools userTools = new UserTools();
String memberId = userTools.getMemberInfo().getString("memberId");
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("memberId",memberId);
object.put("userId",xmAppApi.getLoginInfo().getUser());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(xmAppApi.getBodyInJSON().getString("result"),"UN_OPENID");
}
}
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 16:46
*/
public class TestGenerateTicket extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_Share)
.setApiName("API_generateTicket")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "存储参数获取ticket")
public void testGenerateTicket(){
JSONObject paramJson = new JSONObject();
paramJson.put("brandId",xmAppApi.getLoginInfo().getBrandId());
paramJson.put("studioId",xmAppApi.getLoginInfo().getStudioId());
paramJson.put("id",xmAppApi.getLoginInfo().getStudioId());
JSONObject object = new JSONObject();
object.put("paramJson",paramJson);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.experienceCard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.math.BigDecimal;
/**
* @Author zxy
* @Description
* @Date 2024/8/31 14:40
*/
public class TestActiveExperienceCard extends XMBaseTest {
Tools tools = new Tools();
CardTools cardTools = new CardTools();
OrderTools orderTools = new OrderTools();
String memberCardId;
String title;
BigDecimal quantity; //可用次数
float price; //价格
int validPeriod; //有效期
String latestSnapshotId;//最近的快照ID
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_activateMemberCard")
.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 testActivateMemberCard() {
//先检查下列表有没有数据,有数据才会执行下面的点代码,无数据则新建一个
cardTools.fetchPageOfMemberCard("EXPERIENCE_CARD");
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
} else {
for (int i = 0; i < 3; i++) {
title = "课程次数入场次数" + RandomStringUtil.randomString(3) + "-自动化创建";
//check是否存在同名的体验卡,不存在则新建
Boolean duplicate = tools.checkTitleDuplicate(title, "EXPERIENCE_CARD").getBoolean("result");
if (duplicate == false) {
memberCardId = tools.create("EXPERIENCE_CARD", title, "全部", "YES", "课程次数入场次数").getString("result");
break;
}
}
}
//获取体验卡详情
cardTools.fetchDetailById(memberCardId);
quantity= new BigDecimal(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.benefitList[0].balance"));
price=Float.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.price"));
validPeriod=Integer.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.validPeriod"));
latestSnapshotId=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.latestSnapshotId");
//给会员签单-购买体验卡
orderTools.signOrder(memberCardId,latestSnapshotId,quantity,price,validPeriod,latestSnapshotId,0,"FIRST_USED","EXPERIENCE_CARD", "1805435813468483586",price,price,"1");
//获取该会员名下的体验卡列表
cardTools.getUserMemberCardList("1805435813468483586","EXPERIENCE");
String memberAccountCardId = "";
memberAccountCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].id");
//操作开卡
JSONObject body = new JSONObject();
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("memberCardId", memberAccountCardId);
xmAppApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
//查看售卖记录详情
cardTools.memberCardFindDetailById(memberAccountCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "NORMAL", "开卡后卡状态没变更为生效状态");
String benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.courseBenefit.id");
//check生成一条变动记录
cardTools.getMemberCardAccountOperateRecord(memberAccountCardId);
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].operateType").equals("ACTIVATE"), "手动开卡后生成的变动记录第一条备注不是手动开卡ACTIVATE");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].remark").equals("手动开卡"), "手动开卡后生成的变动记录第一条备注不是手动开卡");
//查看消耗记录
cardTools.fetchPageOfConsumeRecord(benefitId, memberAccountCardId);
int totalBefore = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
Assert.assertTrue(totalBefore == 1, "会员购卡后没生成购买的消耗记录");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].consumeType").equals("PURCHASE"), "会员购卡后生成消耗记录不是购买");
//操作退卡
orderTools.refundOrder(2, memberAccountCardId, quantity, price, "EXPERIENCE_CARD", "1805435813468483586", price, price, "1");
String refundOrderId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result");
//退卡成功后check 售卖记录详情状态:已退卡
cardTools.memberCardFindDetailById(memberAccountCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "REFUNDED", "退卡后卡卡账户状态没变更为已退卡状态");
//退卡后check是否生成一条退卡的消耗记录
cardTools.fetchPageOfConsumeRecord(benefitId, memberAccountCardId);
int totalAfter = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
Assert.assertTrue(totalAfter == 2, "会员退卡后没生成购买的消耗记录");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].consumeType").equals("REFUND"), "会员退卡后生成消耗记录不是退卡");
}
}
...@@ -42,8 +42,7 @@ public class TestUpdateExperienceCard extends XMBaseTest { ...@@ -42,8 +42,7 @@ public class TestUpdateExperienceCard extends XMBaseTest {
@Test(description = "编辑体验卡") @Test(description = "编辑体验卡")
public void testUpdateExperienceCard(){ public void testUpdateExperienceCard(){
//先检查下列表有没有数据,有数据才会执行下面的点代码,无数据则新建一个
//先检查次下列表有没有数据,有数据才会执行下面的点代码,无数据则新建一个
cardTools.fetchPageOfMemberCard("EXPERIENCE_CARD"); cardTools.fetchPageOfMemberCard("EXPERIENCE_CARD");
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size(); int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) { if (listDatas > 0) {
......
package com.xiaomai.cases.polar.importExcel;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.utils.Entity.SignatureVO;
import com.xiaomai.cases.polar.utils.ResourceUtil;
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.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* @Author zxy
* @Description
* @Date 2024/8/30 13:59
*/
public class TestImportMemberCard extends XMBaseTest {
ImportTools importTools = new ImportTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_ImportTask)
.setApiName("API_webTokenWithAccessUrl")
.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 testImportMemberCard()throws IOException, InterruptedException{
//导入任务列表
int total = Integer.parseInt(importTools.pageImportTask().getJSONObject("result").getString("total"));
String filePathName = "excelFile/memberCardInfo.xls";
//2、获取签名
JSONObject object = new JSONObject();
object.put("tenantId", xmAppApi.getLoginInfo().getBrandId());
object.put("tenantType", "BRAND");
object.put("resourceName",filePathName);
object.put("resourceNameToMD5",false);
object.put("bizCode","IMPORT_TASK");
xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(true);
JSONObject result1 = xmAppApi.getBodyInJSON();
String resourceId = XMJSONPath.readPath(result1, "$.result.resourceId");
String accessId = XMJSONPath.readPath(result1, "$.result.accessId");
String policy = XMJSONPath.readPath(result1, "$.result.policy");
String signature = XMJSONPath.readPath(result1, "$.result.signature");
String key = XMJSONPath.readPath(result1, "$.result.key");
String callback = XMJSONPath.readPath(result1, "$.result.callback");
String host = XMJSONPath.readPath(result1, "$.result.host");
String time = XMJSONPath.readPath(result1, "$.result.extAttrs");
JSONObject time1 = JSONObject.parseObject(time);
String url = XMJSONPath.readPath(result1, "$.result.url");
//3.腾讯云上传
InputStream inputStream = new FileInputStream(filePathName);
SignatureVO signatureVO = new SignatureVO();
signatureVO.setAlgorithm("sha1");
signatureVO.setKey(key);
signatureVO.setAccessId(accessId);
signatureVO.setPolicy(policy);
signatureVO.setSignature(signature);
signatureVO.setCallback(callback);
signatureVO.setExtAttrs(time1.getString("q-key-time"));
signatureVO.setHost(host);
signatureVO.setResourceId(Long.valueOf(resourceId));
String result = String.valueOf(ResourceUtil.uploadFileContentToTencent(inputStream, filePathName, signatureVO, 5000,"multipart/form-data"));
Assert.assertEquals(result, "true");
//4.创建任务
JSONObject result2 = importTools.createImportTask("MEMBER_CARD_ORDER",resourceId,null,"");
String recordId = XMJSONPath.readPath(result2, "$.result");
//5.获取上传进度
Thread.sleep(6000);
importTools.getTask(recordId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "SUCCESS");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.successRowNum"), "1");
//上传成功后导入记录列表新增一条数据
JSONObject res = importTools.pageImportTask().getJSONObject("result");
Assert.assertEquals(Integer.parseInt(res.getString("total")),total+1);
Assert.assertEquals(res.getJSONArray("records").getJSONObject(0).getString("resourceId"),resourceId);
Assert.assertEquals(res.getJSONArray("records").getJSONObject(0).getString("state"),"SUCCESS");
//获取导入资源-下载导入文件
String url1 = importTools.getImportResource(resourceId).getString("result");
Assert.assertEquals(url1,url);
}
}
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