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
fe50320d
Commit
fe50320d
authored
Aug 31, 2024
by
zhangyuxiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增
parent
de846633
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
322 additions
and
2 deletions
+322
-2
excelFile/memberCardInfo.xls
+0
-0
src/main/java/com/xiaomai/cases/lunar/user/TestBindGhzStatus.java
+51
-0
src/main/java/com/xiaomai/cases/polar/applet/TestGenerateTicket.java
+46
-0
src/main/java/com/xiaomai/cases/polar/experienceCard/TestActiveExperienceCard.java
+120
-0
src/main/java/com/xiaomai/cases/polar/experienceCard/TestUpdateExperienceCard.java
+1
-2
src/main/java/com/xiaomai/cases/polar/importExcel/TestImportMemberCard.java
+104
-0
No files found.
excelFile/memberCardInfo.xls
0 → 100644
View file @
fe50320d
File added
src/main/java/com/xiaomai/cases/lunar/user/TestBindGhzStatus.java
0 → 100644
View file @
fe50320d
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"
);
}
}
src/main/java/com/xiaomai/cases/polar/applet/TestGenerateTicket.java
0 → 100644
View file @
fe50320d
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
);
}
}
src/main/java/com/xiaomai/cases/polar/experienceCard/TestActiveExperienceCard.java
0 → 100644
View file @
fe50320d
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"
),
"会员退卡后生成消耗记录不是退卡"
);
}
}
src/main/java/com/xiaomai/cases/polar/experienceCard/TestUpdateExperienceCard.java
View file @
fe50320d
...
...
@@ -42,8 +42,7 @@ public class TestUpdateExperienceCard extends XMBaseTest {
@Test
(
description
=
"编辑体验卡"
)
public
void
testUpdateExperienceCard
(){
//先检查次下列表有没有数据,有数据才会执行下面的点代码,无数据则新建一个
//先检查下列表有没有数据,有数据才会执行下面的点代码,无数据则新建一个
cardTools
.
fetchPageOfMemberCard
(
"EXPERIENCE_CARD"
);
int
listDatas
=
XMJSONPath
.
getJSONArrayByReadPath
(
dataApi
.
getApi_response
(),
"$.result.records"
).
size
();
if
(
listDatas
>
0
)
{
...
...
src/main/java/com/xiaomai/cases/polar/importExcel/TestImportMemberCard.java
0 → 100644
View file @
fe50320d
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
);
}
}
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