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
49cee06d
Commit
49cee06d
authored
Nov 08, 2024
by
DuJunLi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
ssh://xmgit.ixm5.cn:10022/xiamai-test/xm-sportstest
parents
dfc28537
19ee077c
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
468 additions
and
14 deletions
+468
-14
module/polar/体验卡.xml
+17
-0
module/polar/入场.xml
+17
-0
src/main/java/com/xiaomai/cases/polar/entry/EntryTool.java
+130
-0
src/main/java/com/xiaomai/cases/polar/entry/TestManual.java
+163
-0
src/main/java/com/xiaomai/cases/polar/entry/TestSaveEntryRule.java
+67
-0
src/main/java/com/xiaomai/cases/polar/entry/TestScan.java
+55
-0
src/main/java/com/xiaomai/cases/polar/experienceCard/ExperienceCardTools.java
+1
-1
src/main/java/com/xiaomai/cases/polar/experienceCard/TestActiveExperienceCard.java
+5
-3
src/main/java/com/xiaomai/cases/polar/experienceCard/TestCreateExperienceCard.java
+5
-5
src/main/java/com/xiaomai/cases/polar/experienceCard/TestUpdateExperienceCard.java
+4
-3
src/main/java/com/xiaomai/cases/polar/membercluster/TestCreateMemberCluster.java
+2
-2
src/main/java/com/xiaomai/enums/ApiModule.java
+2
-0
No files found.
module/polar/体验卡.xml
0 → 100644
View file @
49cee06d
<?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.experienceCard.*"
></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
module/polar/入场.xml
0 → 100644
View file @
49cee06d
<?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.entry.*"
></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
src/main/java/com/xiaomai/cases/polar/entry/EntryTool.java
0 → 100644
View file @
49cee06d
package
com
.
xiaomai
.
cases
.
polar
.
entry
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @Author zxy
* @Description
* @Date 2024/11/5 17:16
*/
public
class
EntryTool
extends
XMBaseTest
{
public
JSONObject
entryRuleList
(){
dataApi
.
setApiModule
(
ApiModule
.
Polar_MemberEntry
)
.
setApiName
(
"API_memberEntryRuleList"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
List
codeList
=
new
ArrayList
();
codeList
.
add
(
"MEMBER_CARD_ENTRY"
);
codeList
.
add
(
"MEMBER_CARD_REPEAT_ENTRY"
);
codeList
.
add
(
"EXPERIENCE_CARD_ENTRY"
);
codeList
.
add
(
"EXPERIENCE_CARD_REPEAT_ENTRY"
);
codeList
.
add
(
"RESERVE_ENTRY"
);
codeList
.
add
(
"RESERVE_ENTRY_TIME_LIMIT"
);
codeList
.
add
(
"RESERVE_ENTRY_LAG_MINUTES"
);
codeList
.
add
(
"RESERVE_ENTRY_LEAD_MINUTES"
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"codeList"
,
codeList
);
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
//入场记录列表
public
JSONObject
memberEntryPage
(
String
entryType
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_MemberEntry
)
.
setApiName
(
"API_memberEntryPage"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"entryType"
,
entryType
);
object
.
put
(
"startTime"
,
TimeUtils
.
getTodayTime
());
object
.
put
(
"endTime"
,
TimeUtils
.
getTodayEndTime
(
30
));
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
object
.
put
(
"size"
,
20
);
object
.
put
(
"current"
,
0
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
//入场记录详情
public
JSONObject
getMemberEntry
(
String
id
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_MemberEntry
)
.
setApiName
(
"API_getMemberEntry"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"id"
,
id
);
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
//计算扣次额度
public
JSONObject
calQuantity
(
String
entryVoucherId
,
String
entryVoucherType
,
String
memberId
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_MemberEntry
)
.
setApiName
(
"API_calQuantity"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"entryVoucherId"
,
entryVoucherId
);
object
.
put
(
"entryVoucherType"
,
entryVoucherType
);
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
//入场的卡凭证列表
public
JSONObject
listUserVenueEntryCard
(
String
accountType
,
String
memberId
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_MemberEntry
)
.
setApiName
(
"API_listUserVenueEntryCard"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
();
List
memberCardStateList
=
new
ArrayList
();
memberCardStateList
.
add
(
"UN_ACTIVE"
);
memberCardStateList
.
add
(
"NORMAL"
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"accountType"
,
accountType
);
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"memberCardStateList"
,
memberCardStateList
);
object
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
object
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
object
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
object
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
return
dataApi
.
getBodyInJSON
();
}
}
src/main/java/com/xiaomai/cases/polar/entry/TestManual.java
0 → 100644
View file @
49cee06d
package
com
.
xiaomai
.
cases
.
polar
.
entry
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.polar.experienceCard.ExperienceCardTools
;
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.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/11/6 15:15
*/
public
class
TestManual
extends
XMBaseTest
{
EntryTool
entryTool
=
new
EntryTool
();
OrderTools
orderTools
=
new
OrderTools
();
Tools
tools
=
new
Tools
();
CardTools
cardTools
=
new
CardTools
();
ExperienceCardTools
experienceCardTools
=
new
ExperienceCardTools
();
String
memberId
;
String
memberCardId
;
String
title
;
BigDecimal
quantity
;
//可用次数
float
price
;
//价格
int
validPeriod
;
//有效期
String
latestSnapshotId
;
//最近的快照ID
BigDecimal
entryQuantity
;
//入场权益
float
entryPrice
;
//入场权益价格
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_MemberEntry
)
.
setApiName
(
"API_manual"
)
.
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
testManual
(){
memberId
=
tools
.
search
(
"NORMAL"
,
"NORMAL"
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"entryVoucherType"
,
"TEMP"
);
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"entryVoucherId"
,-
1
);
object
.
put
(
"remark"
,
"自动化脚本手动添加入场记录备注"
);
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
);
String
id
=
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result"
);
Assert
.
assertEquals
(
entryTool
.
memberEntryPage
(
"TEMP"
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
),
id
);
JSONObject
res
=
entryTool
.
getMemberEntry
(
id
).
getJSONObject
(
"result"
);
Assert
.
assertEquals
(
res
.
getString
(
"memberId"
),
memberId
);
Assert
.
assertEquals
(
res
.
getString
(
"entryType"
),
"TEMP"
);
Assert
.
assertEquals
(
res
.
getString
(
"entryMethod"
),
"MANUAL"
);
Assert
.
assertEquals
(
res
.
getString
(
"entryVoucherType"
),
"TEMP"
);
Assert
.
assertEquals
(
res
.
getString
(
"operatorId"
),
xmAppApi
.
getLoginInfo
().
getAdminId
());
}
@Test
(
description
=
"手动添加入场记录-体验卡入场"
)
public
void
testManual_1
(){
//获取要添加入场记录的会员
memberId
=
tools
.
search
(
"NORMAL"
,
"NORMAL"
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
//先搜索下体验卡列表有没有可用的数据,有数据才会执行下面的点代码,无数据则新建一个
cardTools
.
doMemberCardcommonSearch
(
"课程次数入场次数"
,
"EXPERIENCE_CARD"
);
int
listDatas
=
XMJSONPath
.
getJSONArrayByReadPath
(
dataApi
.
getApi_response
(),
"$.result.records"
).
size
();
if
(
listDatas
>
0
)
{
memberCardId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result[0].id"
);
}
else
{
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
title
=
"课程次数入场次数"
+
RandomStringUtil
.
randomString
(
3
)
+
"-自动化创建"
;
//check是否存在同名的体验卡,不存在则新建
Boolean
duplicate
=
experienceCardTools
.
checkTitleDuplicate
(
title
,
"EXPERIENCE_CARD"
).
getBoolean
(
"result"
);
if
(
duplicate
==
false
)
{
try
{
Thread
.
sleep
(
2000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
memberCardId
=
experienceCardTools
.
create
(
"EXPERIENCE_CARD"
,
title
,
"全部"
,
"YES"
,
"课程次数入场次数"
,
false
).
getString
(
"result"
);
break
;
}
}
}
//获取体验卡详情
cardTools
.
fetchDetailById
(
memberCardId
);
quantity
=
new
BigDecimal
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.benefitList[0].balance"
));
entryQuantity
=
new
BigDecimal
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.benefitList[1].balance"
));
price
=
Float
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.benefitList[0].price"
));
entryPrice
=
Float
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.benefitList[1].price"
));
validPeriod
=
Integer
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.validPeriod"
));
latestSnapshotId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.latestSnapshotId"
);
//会员购买体验卡
orderTools
.
signOrder1
(
memberCardId
,
latestSnapshotId
,
quantity
,
entryQuantity
,
price
,
entryPrice
,
validPeriod
,
latestSnapshotId
,
0
,
"FIRST_USED"
,
"EXPERIENCE_CARD"
,
memberId
,
price
+
entryPrice
,
price
+
entryPrice
,
"1"
);
//获取该会员可入场的的体验卡
String
entryVoucherId
=
entryTool
.
listUserVenueEntryCard
(
"EXPERIENCE"
,
memberId
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
//计算入场消耗额度
Double
value
=
Double
.
valueOf
(
entryTool
.
calQuantity
(
entryVoucherId
,
"EXPERIENCE_CARD"
,
memberId
).
getString
(
"result"
));
Assert
.
assertEquals
(
value
,
1.00
);
//添加入场记录
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"entryVoucherType"
,
"EXPERIENCE_CARD"
);
object
.
put
(
"memberId"
,
memberId
);
object
.
put
(
"entryVoucherId"
,
entryVoucherId
);
object
.
put
(
"remark"
,
"自动化脚本手动添加入场记录备注-体验卡"
);
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
);
String
id
=
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result"
);
Assert
.
assertEquals
(
entryTool
.
memberEntryPage
(
"MEMBER"
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
),
id
);
JSONObject
res
=
entryTool
.
getMemberEntry
(
id
).
getJSONObject
(
"result"
);
Assert
.
assertEquals
(
res
.
getString
(
"memberId"
),
memberId
);
Assert
.
assertEquals
(
res
.
getString
(
"entryType"
),
"MEMBER"
);
Assert
.
assertEquals
(
res
.
getString
(
"entryMethod"
),
"MANUAL"
);
Assert
.
assertEquals
(
res
.
getString
(
"entryVoucherType"
),
"EXPERIENCE_CARD"
);
Assert
.
assertEquals
(
res
.
getString
(
"entryVoucherId"
),
entryVoucherId
);
Assert
.
assertEquals
(
res
.
getString
(
"operatorId"
),
xmAppApi
.
getLoginInfo
().
getAdminId
());
//获取入场的体验卡剩余的剩余入场权益
cardTools
.
getUserMemberCardList
(
memberId
,
"EXPERIENCE"
);
String
memberAccountCardId
=
""
;
memberAccountCardId
=
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result[0].id"
);
//获取体验卡售卖记录详情
JSONObject
res1
=
cardTools
.
memberCardFindDetailById
(
memberAccountCardId
);
BigDecimal
entryQuantity1
=
new
BigDecimal
(
XMJSONPath
.
readPath
(
res1
,
"$.result.venueBenefit.leftPurchaseBalance"
));
Float
entryPrice1
=
Float
.
valueOf
(
XMJSONPath
.
readPath
(
res1
,
"$.result.venueBenefit.leftBenefitAmount"
));
//操作退卡
orderTools
.
refundOrder1
(
2
,
1
,
entryVoucherId
,
quantity
,
entryQuantity1
,
price
,
entryPrice1
,
"EXPERIENCE_CARD"
,
memberId
,
"1"
);
}
}
src/main/java/com/xiaomai/cases/polar/entry/TestSaveEntryRule.java
0 → 100644
View file @
49cee06d
package
com
.
xiaomai
.
cases
.
polar
.
entry
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.RequestType
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.XMBaseTest
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.Test
;
/**
* @Author zxy
* @Description
* @Date 2024/11/5 14:42
*/
public
class
TestSaveEntryRule
extends
XMBaseTest
{
EntryTool
entryTool
=
new
EntryTool
();
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_MemberEntry
)
.
setApiName
(
"API_memberEntryRuleSave"
)
.
setLoginUser
(
LoginAccount
.
GYM_PROD
)
.
setTerminal
(
Terminal
.
B
);
dal
.
setCase_owner
(
"zyx"
)
.
setCase_name
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getFileName
().
split
(
"\\."
)[
0
]);
super
.
beforeTest
();
}
@DataProvider
()
public
Object
[][]
data
(){
return
new
Object
[][]{
{
"MEMBER_CARD_ENTRY"
,
"FALSE"
},
//不支持凭会员卡入场
{
"MEMBER_CARD_ENTRY"
,
"TRUE"
},
//支持凭会员卡入场
{
"MEMBER_CARD_REPEAT_ENTRY"
,
"FALSE"
},
//不支持凭体验卡入场
{
"MEMBER_CARD_REPEAT_ENTRY"
,
"TRUE"
},
//支持凭体验卡入场
{
"EXPERIENCE_CARD_ENTRY"
,
"FALSE"
},
{
"EXPERIENCE_CARD_ENTRY"
,
"TRUE"
},
{
"EXPERIENCE_CARD_REPEAT_ENTRY"
,
"FALSE"
},
{
"EXPERIENCE_CARD_REPEAT_ENTRY"
,
"TRUE"
},
{
"RESERVE_ENTRY"
,
"FALSE"
},
//不支持凭约课记录入场
{
"RESERVE_ENTRY"
,
"TRUE"
},
//支持凭约课记录入场
{
"RESERVE_ENTRY_TIME_LIMIT"
,
"TRUE"
},
{
"RESERVE_ENTRY_LEAD_MINUTES"
,
"15"
},
//开课前15分钟支持入场
{
"RESERVE_ENTRY_LAG_MINUTES"
,
"30"
},
//开课后30分钟支持入场
{
"RESERVE_ENTRY_TIME_LIMIT"
,
"FALSE"
},
//进场时间限制
};
}
@Test
(
dataProvider
=
"data"
,
description
=
"保存入场规则"
)
public
void
testSaveEntryRule
(
String
code
,
String
value
){
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"code"
,
code
);
object
.
put
(
"value"
,
value
);
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
(
entryTool
.
entryRuleList
().
getJSONObject
(
"result"
).
getJSONObject
(
"ruleMap"
).
getString
(
code
),
value
);
}
}
src/main/java/com/xiaomai/cases/polar/entry/TestScan.java
0 → 100644
View file @
49cee06d
package
com
.
xiaomai
.
cases
.
polar
.
entry
;
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/11/6 14:09
*/
public
class
TestScan
extends
XMBaseTest
{
EntryTool
entryTool
=
new
EntryTool
();
@BeforeMethod
public
void
beforeTest
(){
xmAppApi
.
setApiModule
(
ApiModule
.
Polar_MemberEntry
)
.
setApiName
(
"API_scan"
)
.
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
testScan
(){
JSONObject
object
=
new
JSONObject
();
object
.
put
(
"memberId"
,
"1805435813468483586"
);
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
(
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.memberId"
),
"1805435813468483586"
);
String
id
=
XMJSONPath
.
readPath
(
xmAppApi
.
getBodyInJSON
(),
"$.result.id"
);
Assert
.
assertEquals
(
entryTool
.
memberEntryPage
(
"MEMBER"
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
),
id
);
JSONObject
res
=
entryTool
.
getMemberEntry
(
id
).
getJSONObject
(
"result"
);
Assert
.
assertEquals
(
res
.
getString
(
"memberId"
),
"1805435813468483586"
);
Assert
.
assertEquals
(
res
.
getString
(
"entryType"
),
"MEMBER"
);
Assert
.
assertEquals
(
res
.
getString
(
"entryMethod"
),
"CODE"
);
Assert
.
assertEquals
(
res
.
getString
(
"entryVoucherType"
),
"RESERVE"
);
}
}
src/main/java/com/xiaomai/cases/polar/experienceCard/Tools.java
→
src/main/java/com/xiaomai/cases/polar/experienceCard/
ExperienceCard
Tools.java
View file @
49cee06d
...
@@ -19,7 +19,7 @@ import java.util.UUID;
...
@@ -19,7 +19,7 @@ import java.util.UUID;
* @Description
* @Description
* @Date 2024/7/12 16:45
* @Date 2024/7/12 16:45
*/
*/
public
class
Tools
extends
XMBaseTest
{
public
class
ExperienceCard
Tools
extends
XMBaseTest
{
//是否存在相同名称的卡
//是否存在相同名称的卡
public
JSONObject
checkTitleDuplicate
(
String
title
,
String
commodityCardType
,
DataUserInfo
...
userInfos
)
{
public
JSONObject
checkTitleDuplicate
(
String
title
,
String
commodityCardType
,
DataUserInfo
...
userInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
dataApi
.
setApiModule
(
ApiModule
.
Polar_Card
)
...
...
src/main/java/com/xiaomai/cases/polar/experienceCard/TestActiveExperienceCard.java
View file @
49cee06d
...
@@ -2,6 +2,8 @@ package com.xiaomai.cases.polar.experienceCard;
...
@@ -2,6 +2,8 @@ package com.xiaomai.cases.polar.experienceCard;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.experienceCard.ExperienceCardTools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.LoginAccount
;
...
@@ -22,7 +24,7 @@ import java.math.BigDecimal;
...
@@ -22,7 +24,7 @@ import java.math.BigDecimal;
* @Date 2024/8/31 14:40
* @Date 2024/8/31 14:40
*/
*/
public
class
TestActiveExperienceCard
extends
XMBaseTest
{
public
class
TestActiveExperienceCard
extends
XMBaseTest
{
Tools
tools
=
new
Tools
();
ExperienceCardTools
experienceCardTools
=
new
ExperienceCard
Tools
();
CardTools
cardTools
=
new
CardTools
();
CardTools
cardTools
=
new
CardTools
();
OrderTools
orderTools
=
new
OrderTools
();
OrderTools
orderTools
=
new
OrderTools
();
String
memberCardId
;
String
memberCardId
;
...
@@ -57,10 +59,10 @@ public class TestActiveExperienceCard extends XMBaseTest {
...
@@ -57,10 +59,10 @@ public class TestActiveExperienceCard extends XMBaseTest {
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
title
=
"课程次数入场次数"
+
RandomStringUtil
.
randomString
(
3
)
+
"-自动化创建"
;
title
=
"课程次数入场次数"
+
RandomStringUtil
.
randomString
(
3
)
+
"-自动化创建"
;
//check是否存在同名的体验卡,不存在则新建
//check是否存在同名的体验卡,不存在则新建
Boolean
duplicate
=
t
ools
.
checkTitleDuplicate
(
title
,
"EXPERIENCE_CARD"
).
getBoolean
(
"result"
);
Boolean
duplicate
=
experienceCardT
ools
.
checkTitleDuplicate
(
title
,
"EXPERIENCE_CARD"
).
getBoolean
(
"result"
);
if
(
duplicate
==
false
)
{
if
(
duplicate
==
false
)
{
Thread
.
sleep
(
2000
);
Thread
.
sleep
(
2000
);
memberCardId
=
t
ools
.
create
(
"EXPERIENCE_CARD"
,
title
,
"全部"
,
"YES"
,
"课程次数入场次数"
,
false
).
getString
(
"result"
);
memberCardId
=
experienceCardT
ools
.
create
(
"EXPERIENCE_CARD"
,
title
,
"全部"
,
"YES"
,
"课程次数入场次数"
,
false
).
getString
(
"result"
);
break
;
break
;
}
}
}
}
...
...
src/main/java/com/xiaomai/cases/polar/experienceCard/TestCreateExperienceCard.java
View file @
49cee06d
...
@@ -20,7 +20,7 @@ import java.util.Random;
...
@@ -20,7 +20,7 @@ import java.util.Random;
* @Date 2024/7/13 09:48
* @Date 2024/7/13 09:48
*/
*/
public
class
TestCreateExperienceCard
extends
XMBaseTest
{
public
class
TestCreateExperienceCard
extends
XMBaseTest
{
Tools
tools
=
new
Tools
();
ExperienceCardTools
experienceCardTools
=
new
ExperienceCard
Tools
();
CardTools
cardTools
=
new
CardTools
();
CardTools
cardTools
=
new
CardTools
();
String
id
;
String
id
;
String
title
;
String
title
;
...
@@ -47,22 +47,22 @@ public class TestCreateExperienceCard extends XMBaseTest {
...
@@ -47,22 +47,22 @@ public class TestCreateExperienceCard extends XMBaseTest {
for
(
int
i
=
0
;
i
<
3
;
i
++){
for
(
int
i
=
0
;
i
<
3
;
i
++){
title
=
benefit
+
RandomStringUtil
.
randomString
(
3
)+
"-自动化创建"
;
title
=
benefit
+
RandomStringUtil
.
randomString
(
3
)+
"-自动化创建"
;
//check是否存在同名的体验卡,不存在则新建
//check是否存在同名的体验卡,不存在则新建
Boolean
duplicate
=
t
ools
.
checkTitleDuplicate
(
title
,
"EXPERIENCE_CARD"
).
getBoolean
(
"result"
);
Boolean
duplicate
=
experienceCardT
ools
.
checkTitleDuplicate
(
title
,
"EXPERIENCE_CARD"
).
getBoolean
(
"result"
);
if
(
duplicate
==
false
)
{
if
(
duplicate
==
false
)
{
Thread
.
sleep
(
2000
);
Thread
.
sleep
(
2000
);
id
=
t
ools
.
create
(
"EXPERIENCE_CARD"
,
title
,
"全部"
,
"YES"
,
benefit
,
false
).
getString
(
"result"
);
id
=
experienceCardT
ools
.
create
(
"EXPERIENCE_CARD"
,
title
,
"全部"
,
"YES"
,
benefit
,
false
).
getString
(
"result"
);
break
;
break
;
}
}
}
}
//新建后校验体验卡第一条数据是新建的那条数据
//新建后校验体验卡第一条数据是新建的那条数据
String
id1
=
t
ools
.
fetchPageOfMemberCard
(
"EXPERIENCE_CARD"
,
""
,
""
,
""
,
""
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
String
id1
=
experienceCardT
ools
.
fetchPageOfMemberCard
(
"EXPERIENCE_CARD"
,
""
,
""
,
""
,
""
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
).
getJSONObject
(
0
).
getString
(
"id"
);
Assert
.
assertEquals
(
id
,
id1
);
Assert
.
assertEquals
(
id
,
id1
);
JSONObject
res
=
cardTools
.
fetchDetailById
(
id
).
getJSONObject
(
"result"
);
JSONObject
res
=
cardTools
.
fetchDetailById
(
id
).
getJSONObject
(
"result"
);
List
benefitList
=
res
.
getJSONArray
(
"benefitList"
);
List
benefitList
=
res
.
getJSONArray
(
"benefitList"
);
//全局搜索该体验卡
//全局搜索该体验卡
JSONObject
res1
=
cardTools
.
doMemberCardcommonSearch
(
title
,
"EXPERIENCE_CARD"
);
JSONObject
res1
=
cardTools
.
doMemberCardcommonSearch
(
title
,
"EXPERIENCE_CARD"
);
Assert
.
assertEquals
(
res1
.
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getJSONArray
(
"benefitList"
),
benefitList
);
Assert
.
assertEquals
(
res1
.
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getJSONArray
(
"benefitList"
),
benefitList
);
//停用体验卡
//停用体验卡
...
...
src/main/java/com/xiaomai/cases/polar/experienceCard/TestUpdateExperienceCard.java
View file @
49cee06d
...
@@ -22,8 +22,9 @@ import java.util.List;
...
@@ -22,8 +22,9 @@ import java.util.List;
* @Date 2024/8/8 14:04
* @Date 2024/8/8 14:04
*/
*/
public
class
TestUpdateExperienceCard
extends
XMBaseTest
{
public
class
TestUpdateExperienceCard
extends
XMBaseTest
{
Tools
tools
=
new
Tools
();
ExperienceCardTools
experienceCardTools
=
new
ExperienceCard
Tools
();
CardTools
cardTools
=
new
CardTools
();
CardTools
cardTools
=
new
CardTools
();
String
memberCardId
;
String
memberCardId
;
String
title
;
String
title
;
@BeforeMethod
@BeforeMethod
...
@@ -52,10 +53,10 @@ public class TestUpdateExperienceCard extends XMBaseTest {
...
@@ -52,10 +53,10 @@ public class TestUpdateExperienceCard extends XMBaseTest {
for
(
int
i
=
0
;
i
<
3
;
i
++){
for
(
int
i
=
0
;
i
<
3
;
i
++){
title
=
"课程次数入场次数"
+
RandomStringUtil
.
randomString
(
3
)+
"-自动化创建"
;
title
=
"课程次数入场次数"
+
RandomStringUtil
.
randomString
(
3
)+
"-自动化创建"
;
//check是否存在同名的体验卡,不存在则新建
//check是否存在同名的体验卡,不存在则新建
Boolean
duplicate
=
t
ools
.
checkTitleDuplicate
(
title
,
"EXPERIENCE_CARD"
).
getBoolean
(
"result"
);
Boolean
duplicate
=
experienceCardT
ools
.
checkTitleDuplicate
(
title
,
"EXPERIENCE_CARD"
).
getBoolean
(
"result"
);
if
(
duplicate
==
false
)
{
if
(
duplicate
==
false
)
{
Thread
.
sleep
(
2000
);
Thread
.
sleep
(
2000
);
memberCardId
=
t
ools
.
create
(
"EXPERIENCE_CARD"
,
title
,
"全部"
,
"YES"
,
"课程次数入场次数"
,
false
).
getString
(
"result"
);
memberCardId
=
experienceCardT
ools
.
create
(
"EXPERIENCE_CARD"
,
title
,
"全部"
,
"YES"
,
"课程次数入场次数"
,
false
).
getString
(
"result"
);
break
;
break
;
}
}
}
}
...
...
src/main/java/com/xiaomai/cases/polar/membercluster/TestCreateMemberCluster.java
View file @
49cee06d
...
@@ -3,7 +3,7 @@ package com.xiaomai.cases.polar.membercluster;
...
@@ -3,7 +3,7 @@ package com.xiaomai.cases.polar.membercluster;
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.coupon.CouponTools
;
import
com.xiaomai.cases.polar.coupon.CouponTools
;
import
com.xiaomai.cases.polar.experienceCard.Tools
;
import
com.xiaomai.cases.polar.experienceCard.
ExperienceCard
Tools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.cases.polar.memberCard.CardTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.LoginAccount
;
...
@@ -32,7 +32,7 @@ public class TestCreateMemberCluster extends BaseTestImpl {
...
@@ -32,7 +32,7 @@ public class TestCreateMemberCluster extends BaseTestImpl {
@Resource
(
name
=
"couponTools"
)
@Resource
(
name
=
"couponTools"
)
CouponTools
couponTools
;
CouponTools
couponTools
;
Tools
tools
=
new
Tools
();
ExperienceCardTools
tools
=
new
ExperienceCard
Tools
();
@Resource
(
name
=
"cardTools"
)
@Resource
(
name
=
"cardTools"
)
CardTools
cardTools
;
CardTools
cardTools
;
String
clusterIdNewA
=
""
;
String
clusterIdNewA
=
""
;
...
...
src/main/java/com/xiaomai/enums/ApiModule.java
View file @
49cee06d
...
@@ -29,6 +29,8 @@ public class ApiModule {
...
@@ -29,6 +29,8 @@ public class ApiModule {
public
static
String
Polar_Coupon
=
"polar_coupon"
;
//优惠券
public
static
String
Polar_Coupon
=
"polar_coupon"
;
//优惠券
public
static
String
Polar_LuckyDraw
=
"polar_luckyDraw"
;
//幸运抽奖
public
static
String
Polar_LuckyDraw
=
"polar_luckyDraw"
;
//幸运抽奖
public
static
String
Polar_Membercluster
=
"polar_membercluster"
;
public
static
String
Polar_Membercluster
=
"polar_membercluster"
;
public
static
String
Polar_MemberEntry
=
"polar_memberEntry"
;
//入场
//小程序模块
//小程序模块
public
static
String
Lunar_LuckyDraw
=
"lunar_luckyDraw"
;
//幸运抽奖
public
static
String
Lunar_LuckyDraw
=
"lunar_luckyDraw"
;
//幸运抽奖
...
...
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