Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xm-sportstest
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiamai-test
xm-sportstest
Commits
3b92e986
Commit
3b92e986
authored
Apr 17, 2025
by
xyy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
82eda54c
465be28e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
205 additions
and
9 deletions
+205
-9
src/main/java/com/xiaomai/cases/lunar/training/TestPurchaseCampByDeposit.java
+3
-3
src/main/java/com/xiaomai/cases/polar/data/financeData/FinanceDataTools.java
+33
-0
src/main/java/com/xiaomai/cases/polar/data/financeData/TestGetCostData.java
+52
-0
src/main/java/com/xiaomai/cases/polar/goods/TestGoodsOrderByDeposit.java
+2
-2
src/main/java/com/xiaomai/cases/polar/goods/TestRefundGoods.java
+0
-0
src/main/java/com/xiaomai/cases/polar/reserve/ReserveTools.java
+24
-0
src/main/java/com/xiaomai/cases/polar/reserve/group/TestBatchReserveGroup.java
+1
-1
src/main/java/com/xiaomai/cases/polar/reserve/group/TestMemberReserveDiscardSignIn.java
+87
-0
src/main/java/com/xiaomai/cases/polar/training/TestSignCampOrderByDeposit.java
+3
-3
No files found.
src/main/java/com/xiaomai/cases/lunar/training/TestPurchaseCampByDeposit.java
View file @
3b92e986
...
...
@@ -67,7 +67,7 @@ public class TestPurchaseCampByDeposit extends BaseTestImpl {
@Test
(
description
=
"使用储值卡抵扣购买存量的训练营"
)
public
void
testPurchaseCampByDeposit
()
{
//注意:储值卡用的是存量的:存量储值卡充0赠1000 训练营用的是存量的:杭州自动化测试训练营
A
:999.99元
//注意:储值卡用的是存量的:存量储值卡充0赠1000 训练营用的是存量的:杭州自动化测试训练营
B
:999.99元
//购买充0送1000的储值卡
//获取的微信用户
...
...
@@ -108,8 +108,8 @@ public class TestPurchaseCampByDeposit extends BaseTestImpl {
// 获取存量训练营活动
String
id
=
trainTools
.
getAppliableCampList
(
"杭州自动化测试训练营
A
"
).
getJSONObject
(
0
).
getString
(
"id"
);
BigDecimal
price
=
new
BigDecimal
(
trainTools
.
getAppliableCampList
(
"杭州自动化测试训练营
A
"
).
getJSONObject
(
0
).
getString
(
"price"
));
String
id
=
trainTools
.
getAppliableCampList
(
"杭州自动化测试训练营
B
"
).
getJSONObject
(
0
).
getString
(
"id"
);
BigDecimal
price
=
new
BigDecimal
(
trainTools
.
getAppliableCampList
(
"杭州自动化测试训练营
B
"
).
getJSONObject
(
0
).
getString
(
"price"
));
JSONObject
body
=
new
JSONObject
();
...
...
src/main/java/com/xiaomai/cases/polar/data/financeData/FinanceDataTools.java
View file @
3b92e986
...
...
@@ -165,4 +165,37 @@ public class FinanceDataTools extends XMBaseTest {
return
response
;
}
/**
* @param
* @description:获取数据中心-财务数据-营收明细-商品类型
* @param dateType:时间类型:[ DAY, WEEK, MONTH, QUARTER, YEAR ]
* @param startTime:开始时间
* @param endTime:结束时间 注意:使用这个方法只能搜按天和按月,因为参数类型这里写的long 其他几个不是long型,会用不了
* @param sort:CONFIRMED_AMOUNT_DESC 确认收入从大到小 CONFIRMED_AMOUNT_ASC 确认收入从小到大 LEFT_AMOUNT_DESC 待消耗金额从大到小 LEFT_AMOUNT_ASC 待消耗金额从小到大
* @author: yangfangfang
**/
public
JSONObject
getCommodityTypeCostDetail
(
String
dateType
,
String
sort
,
long
startTime
,
long
endTime
,
DataUserInfo
...
dataUserInfos
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Data
)
.
setApiName
(
"API_getCommodityTypeCostDetail"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
getCostData
=
new
JSONObject
();
getCostData
.
put
(
"dateType"
,
dateType
);
getCostData
.
put
(
"endTime"
,
endTime
);
getCostData
.
put
(
"startTime"
,
startTime
);
getCostData
.
put
(
"sort"
,
sort
);
getCostData
.
put
(
"brandId"
,
xmAppApi
.
getLoginInfo
().
getBrandId
());
getCostData
.
put
(
"studioId"
,
xmAppApi
.
getLoginInfo
().
getStudioId
());
getCostData
.
put
(
"operatorId"
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
getCostData
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
return
response
;
}
}
src/main/java/com/xiaomai/cases/polar/data/financeData/TestGetCostData.java
View file @
3b92e986
package
com
.
xiaomai
.
cases
.
polar
.
data
.
financeData
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.member.Tools
;
...
...
@@ -182,6 +183,57 @@ public class TestGetCostData extends XMBaseTest {
BigDecimal
afterConfirmedAmount1
=
new
BigDecimal
(
afterGetCostData1
.
getJSONObject
(
"result"
).
getString
(
"confirmedAmount"
));
//确认收入
BigDecimal
afterLeftAmount1
=
new
BigDecimal
(
afterGetCostData1
.
getJSONObject
(
"result"
).
getString
(
"leftAmount"
));
//待消耗金额
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//根据商品类型全部加起来的确认收入查全部(覆盖一下商品类型的新接口)
JSONObject
getCommodityTypeCostDetail
=
financeDataTools
.
getCommodityTypeCostDetail
(
"DAY"
,
"LEFT_AMOUNT_DESC"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
int
getCommodityTypeCostDetail_total
=
Integer
.
parseInt
(
getCommodityTypeCostDetail
.
getJSONObject
(
"result"
).
getString
(
"total"
));
Assert
.
assertEquals
(
getCommodityTypeCostDetail_total
,
9
,
"获取商品类型不是9个"
);
JSONObject
getCommodityTypeCostDetail_result
=
getCommodityTypeCostDetail
.
getJSONObject
(
"result"
);
//确认收入
BigDecimal
confirmedAmount1
=
new
BigDecimal
(
getCommodityTypeCostDetail_result
.
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"confirmedAmount"
));
BigDecimal
confirmedAmount2
=
new
BigDecimal
(
getCommodityTypeCostDetail_result
.
getJSONArray
(
"records"
).
getJSONObject
(
1
).
getString
(
"confirmedAmount"
));
BigDecimal
confirmedAmount3
=
new
BigDecimal
(
getCommodityTypeCostDetail_result
.
getJSONArray
(
"records"
).
getJSONObject
(
2
).
getString
(
"confirmedAmount"
));
BigDecimal
confirmedAmount4
=
new
BigDecimal
(
getCommodityTypeCostDetail_result
.
getJSONArray
(
"records"
).
getJSONObject
(
3
).
getString
(
"confirmedAmount"
));
BigDecimal
confirmedAmount5
=
new
BigDecimal
(
getCommodityTypeCostDetail_result
.
getJSONArray
(
"records"
).
getJSONObject
(
4
).
getString
(
"confirmedAmount"
));
BigDecimal
confirmedAmount6
=
new
BigDecimal
(
getCommodityTypeCostDetail_result
.
getJSONArray
(
"records"
).
getJSONObject
(
5
).
getString
(
"confirmedAmount"
));
BigDecimal
confirmedAmount7
=
new
BigDecimal
(
getCommodityTypeCostDetail_result
.
getJSONArray
(
"records"
).
getJSONObject
(
6
).
getString
(
"confirmedAmount"
));
BigDecimal
confirmedAmount8
=
new
BigDecimal
(
getCommodityTypeCostDetail_result
.
getJSONArray
(
"records"
).
getJSONObject
(
7
).
getString
(
"confirmedAmount"
));
BigDecimal
confirmedAmount9
=
new
BigDecimal
(
getCommodityTypeCostDetail_result
.
getJSONArray
(
"records"
).
getJSONObject
(
8
).
getString
(
"confirmedAmount"
));
// //待消耗金额--之前有脏数据,不好订正就不校验待消耗金额了
// BigDecimal leftAmount1=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(0).getString("leftAmount"));
// BigDecimal leftAmount2=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(1).getString("leftAmount"));
// BigDecimal leftAmount3=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(2).getString("leftAmount"));
// BigDecimal leftAmount4=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(3).getString("leftAmount"));
// BigDecimal leftAmount5=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(4).getString("leftAmount"));
// BigDecimal leftAmount6=new BigDecimal(getCommodityTypeCostDetail_result.getJSONArray("records").getJSONObject(5).getString("leftAmount"));
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
//校验所有商品类型的确认收入加起来=全部的确认收入
Assert
.
assertEquals
(
confirmedAmount1
.
setScale
(
2
,
RoundingMode
.
HALF_UP
).
add
(
confirmedAmount2
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)).
add
(
confirmedAmount3
.
setScale
(
2
,
RoundingMode
.
HALF_UP
))
.
add
(
confirmedAmount4
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)).
add
(
confirmedAmount5
.
setScale
(
2
,
RoundingMode
.
HALF_UP
))
.
add
(
confirmedAmount6
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)).
add
(
confirmedAmount7
.
setScale
(
2
,
RoundingMode
.
HALF_UP
))
.
add
(
confirmedAmount8
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)).
add
(
confirmedAmount9
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)),
afterConfirmedAmount1
,
"营收明细所有商品类型的确认收入加起来不等于营收数据全部的确认收入"
);
// //校验所有商品类型的待消耗金额加起来=全部的待消耗金额
// Assert.assertEquals(leftAmount1.setScale(2, RoundingMode.HALF_UP).add(leftAmount2.setScale(2, RoundingMode.HALF_UP)).add(leftAmount3.setScale(2, RoundingMode.HALF_UP))
// .add(leftAmount4.setScale(2, RoundingMode.HALF_UP)).add(leftAmount5.setScale(2, RoundingMode.HALF_UP))
// .add(leftAmount6.setScale(2, RoundingMode.HALF_UP)),afterLeftAmount1,"所有商品类型的待消耗金额加起来不等于全部的待消耗金额");
//再查一下当前营收数据-会员卡
JSONObject
afterGetCostDataMember_card1
=
financeDataTools
.
getCostData_type
(
"DAY"
,
"MEMBER_CARD"
,
TimeUtils
.
getTodayTime
(),
TimeUtils
.
getTodayEndTime
());
BigDecimal
afterConfirmedAmountMember_card1
=
new
BigDecimal
(
afterGetCostDataMember_card1
.
getJSONObject
(
"result"
).
getString
(
"confirmedAmount"
));
//确认收入
...
...
src/main/java/com/xiaomai/cases/polar/goods/TestGoodsOrderByDeposit.java
View file @
3b92e986
...
...
@@ -249,7 +249,7 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
Assert
.
assertEquals
(
disRefundInventory
,
refundInventory
-
1
,
"B端作废退货退款订单后,物品库存数应减少1个"
);
try
{
Thread
.
sleep
(
5
000
);
Thread
.
sleep
(
10
000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
...
...
@@ -289,7 +289,7 @@ public class TestGoodsOrderByDeposit extends XMBaseTest {
Assert
.
assertEquals
(
disSignInventory
,
disRefundInventory
+
1
,
"B端作废购买订单后,物品库存数应增加1个"
);
try
{
Thread
.
sleep
(
8
000
);
Thread
.
sleep
(
10
000
);
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
}
...
...
src/main/java/com/xiaomai/cases/polar/goods/TestRefundGoods.java
View file @
3b92e986
This diff is collapsed.
Click to expand it.
src/main/java/com/xiaomai/cases/polar/reserve/ReserveTools.java
View file @
3b92e986
...
...
@@ -910,6 +910,30 @@ public class ReserveTools extends XMBaseTest {
}
/**
* @description: 撤销签到
* @author: yj
* @date: 2025/3/06 17:17
* @param reserveId 预约记录id
* @return: com.alibaba.fastjson.JSONArray
**/
public
void
memberReserve_discardSignIn
(
String
reserveId
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Reserve
)
.
setApiName
(
"API_memberReserve_discardSignIn"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"reserveId"
,
reserveId
);
jsonObject
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
jsonObject
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
jsonObject
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
jsonObject
.
toJSONString
(),
dataheadrs
).
assetsSuccess
(
true
);
}
...
...
src/main/java/com/xiaomai/cases/polar/reserve/group/TestBatchReserveGroup.java
View file @
3b92e986
...
...
@@ -98,7 +98,7 @@ public class TestBatchReserveGroup extends BaseTestImpl {
//因为是存量排好团课的数据去批量预约的,存量数据需要提前做的是:
//创建一个课程:批量预约团课课程-禁用 必须是30分钟;创建两个会员:批量约团课会员1和批量约团课会员2;排好团课,用上述的课程排好一年的数据;人数上限必须是60(下面的筛选是59人以上,不是60会筛不出来的),时间必须是00.00-00.30,上课星期是:周一~周日;教练是:f
//注意:只能排一年的,只排到了来年2025-
04-01
的,后面记得重新排团课
//注意:只能排一年的,只排到了来年2025-
10-02
的,后面记得重新排团课
//注意:reserveMemberNum和planCheckBalance必须是1,超出太多会不够扣除,后面的校验也对不上
...
...
src/main/java/com/xiaomai/cases/polar/reserve/group/TestMemberReserveDiscardSignIn.java
0 → 100644
View file @
3b92e986
package
com
.
xiaomai
.
cases
.
polar
.
reserve
.
group
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
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.member.Tools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.cases.polar.reserve.ReserveTools
;
import
com.xiaomai.cases.polar.schedule.group.GroupScheduleTools
;
import
com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.CommUtil
;
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
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Random
;
public
class
TestMemberReserveDiscardSignIn
extends
XMBaseTest
{
@Resource
(
name
=
"courseCategoryTools"
)
CourseCategoryTools
courseCategoryTools
;
@Resource
(
name
=
"courseTools"
)
CourseTools
courseTools
;
@Resource
(
name
=
"reserveTools"
)
ReserveTools
reserveTools
;
@Resource
(
name
=
"groupScheduleTools"
)
GroupScheduleTools
groupScheduleTools
;
MemberTools
memberTools
=
new
MemberTools
();
OrderTools
orderTools
=
new
OrderTools
();
CardTools
cardTools
=
new
CardTools
();
Tools
tools
=
new
Tools
();
String
todayStartTimeTamp
=
CommUtil
.
oneKeyGetAddDay
(-
1
);
Long
scheduleEndTime
=
TimeUtils
.
getTodayEndTime
(-
1
);
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_Reserve
)
.
setApiName
(
"API_memberReserve_discardSignIn"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"yangjian"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@Test
(
description
=
"撤销签到"
)
public
void
testMemberReserveDiscardSignIn
(){
String
reserveId
=
"1904005941288620033"
;
reserveTools
.
signIn
(
true
,
reserveId
,
false
);
//签到
reserveTools
.
getDetailById
(
reserveId
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.signInState"
),
"SIGNED"
,
"签到失败"
);
//断言目标签到成功
reserveTools
.
memberReserve_discardSignIn
(
reserveId
);
//撤销签到
reserveTools
.
getDetailById
(
reserveId
);
Assert
.
assertEquals
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.signInState"
),
"UN_SIGNED"
,
"撤销签到失败"
);
//断言目标预约记录未签到
}
}
src/main/java/com/xiaomai/cases/polar/training/TestSignCampOrderByDeposit.java
View file @
3b92e986
...
...
@@ -54,7 +54,7 @@ public class TestSignCampOrderByDeposit extends BaseTestImpl {
@Test
(
description
=
"使用储值卡抵扣购买存量的训练营"
)
public
void
testSignCampOrderByDeposit
(){
//注意:储值卡用的是存量的:存量储值卡充0赠1000 训练营用的是存量的:杭州自动化测试训练营
A
:999.99元
//注意:储值卡用的是存量的:存量储值卡充0赠1000 训练营用的是存量的:杭州自动化测试训练营
B
:999.99元
String
name
=
"创建订单潜在会员"
+
RandomStringUtil
.
randomString
(
3
);
String
phone
=
RandomStringUtil
.
randomMobile
(
"666"
);
...
...
@@ -97,7 +97,7 @@ public class TestSignCampOrderByDeposit extends BaseTestImpl {
// 获取存量训练营活动
JSONObject
fetchAppliableCampList
=
trainingTools
.
fetchAppliableCampList
(
"杭州自动化测试训练营
A
"
);
JSONObject
fetchAppliableCampList
=
trainingTools
.
fetchAppliableCampList
(
"杭州自动化测试训练营
B
"
);
String
id
=
fetchAppliableCampList
.
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
BigDecimal
price
=
new
BigDecimal
(
fetchAppliableCampList
.
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"price"
));
...
...
@@ -141,7 +141,7 @@ public class TestSignCampOrderByDeposit extends BaseTestImpl {
String
title
=
fetchUserCardListResult
.
getJSONObject
(
0
).
getString
(
"title"
);
Assert
.
assertEquals
(
fetchUserCardListResult
.
size
()>
0
,
true
,
"使用储值卡购买训练营成功后,已购训练营列表数据小于1"
);
Assert
.
assertEquals
(
title
,
"杭州自动化测试训练营
A
"
,
"已购训练营名称和购买的训练营名称非同一个"
);
Assert
.
assertEquals
(
title
,
"杭州自动化测试训练营
B
"
,
"已购训练营名称和购买的训练营名称非同一个"
);
//check 3:校验储值卡消耗列表增加签单类型的消耗记录,以及签单消耗记录的剩余金额=储值卡剩余金额-购买的训练营金额
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment