Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oto
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
龚小红
oto
Commits
b54bed8c
Commit
b54bed8c
authored
Apr 27, 2020
by
李浩弘
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'test/20200426-test' into 'master'
更新网络框架、钉钉机器人、名片 See merge request test-group/kejiji!3
parents
ba57991d
ad51b4a2
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1006 additions
and
251 deletions
+1006
-251
Home.java
src/test/java/com/kjj/qa/cases/Home.java
+0
-1
Pay.java
src/test/java/com/kjj/qa/cases/Pay.java
+14
-14
SellerCard.java
src/test/java/com/kjj/qa/cases/SellerCard.java
+147
-15
NetworkOperation.java
src/test/java/com/kjj/qa/services/NetworkOperation.java
+6
-4
DingTalkUtil.java
src/test/java/com/kjj/qa/utils/DingTalkUtil.java
+15
-4
KjyUtil.java
src/test/java/com/kjj/qa/utils/KjyUtil.java
+3
-0
testNG.xml
src/test/testNG.xml
+9
-9
report.html
test-output/report.html
+812
-204
No files found.
src/test/java/com/kjj/qa/cases/Home.java
View file @
b54bed8c
...
...
@@ -21,7 +21,6 @@ public class Home {
public
void
setUp
()
{
// 代理人 cookies
network
.
agentCookies
.
put
(
"tku"
,
"3wSM7Cd4wsesMcuzVhBQVGVupkmB3tT1JHyRbv9sK6ts7f6P67rmuygUqGfPc2Xd9YduvdByMocmpuzNMzKKWd48"
);
network
.
agentCookies
.
put
(
"acw_tc"
,
"76b20ff215756198852864366e248d9e6bfb989ae8f073e81a05f23e6ef703"
);
network
.
agentHeaders
.
put
(
"Content-Type"
,
"application/json"
);
}
...
...
src/test/java/com/kjj/qa/cases/Pay.java
View file @
b54bed8c
...
...
@@ -21,7 +21,7 @@ public class Pay {
@BeforeClass
public
void
setUp
()
{
// 代理人 cookies
network
.
agentCookies
.
put
(
"tku"
,
"T3gM31f18j
AXAwJJQPrjuY6xCJQThg3dXxpzkv8X5w3oZZn5yXB41EQad3CuY5A8USk26gxjQvUn7hWekU
"
);
network
.
agentCookies
.
put
(
"tku"
,
"T3gM31f18j
8w3o5y1iEkAGkGxfNgri1yZC1Qix9Y8JawhrzhpZMDhgTzDvhzXSbagbXZxA8AYCbxLPG4SG
"
);
network
.
agentHeaders
.
put
(
"Content-Type"
,
"application/json"
);
}
...
...
@@ -66,9 +66,8 @@ public class Pay {
payParams
.
put
(
"oaId"
,
"1"
);
payParams
.
put
(
"paySource"
,
"2"
);
payParams
.
put
(
"sellerFrom"
,
""
);
String
payJson
=
JSONObject
.
toJSONString
(
payParams
);
Response
orderAppId
=
network
.
PostResponse
(
payJson
,
"/kjy/order/create"
);
Response
orderAppId
=
network
.
postResponse
(
payParams
,
"/kjy/order/create"
);
String
appId
=
orderAppId
.
jsonPath
().
getString
(
"data.appId"
);
Assert
.
assertEquals
(
appId
,
"wxcb8c36279dd7dff2"
,
"拉起支付:拉起微信支付失败"
);
//判断返回的微信调起参数中appId是否正确
...
...
@@ -83,8 +82,7 @@ public class Pay {
payParams
.
put
(
"oaId"
,
"1"
);
payParams
.
put
(
"paySource"
,
"2"
);
payParams
.
put
(
"sellerFrom"
,
""
);
String
payJson
=
JSONObject
.
toJSONString
(
payParams
);
Response
orderAppId
=
network
.
PostResponse
(
payJson
,
"/kjy/order/create"
);
Response
orderAppId
=
network
.
postResponse
(
payParams
,
"/kjy/order/create"
);
String
tradeNo
=
orderAppId
.
jsonPath
().
getString
(
"data.tradeNo"
);
...
...
@@ -111,9 +109,11 @@ public class Pay {
int
changeVersion
=
userVersion
==
1
?
2
:
1
;
// 判断当前开启的版本,如果当前版本是1,则改为2,反之;
//切换版本
String
changeUserVersionJson
=
"{\"targetVersion\":"
+
changeVersion
+
"}"
;
Response
resultResponse
=
network
.
PostResponse
(
changeUserVersionJson
,
"/kjy/mp/version/exchange"
);
Map
<
String
,
Object
>
versionParams
=
new
HashMap
<
String
,
Object
>();
versionParams
.
put
(
"targetVersion"
,
changeVersion
);
Response
resultResponse
=
network
.
postResponse
(
versionParams
,
"/kjy/mp/version/exchange"
);
String
result
=
resultResponse
.
jsonPath
().
getString
(
"desc"
);
Assert
.
assertEquals
(
result
,
"OK"
,
"会员类型切换:切换失败"
);
//判断返回的微信调起参数中appId是否正确
...
...
@@ -130,7 +130,7 @@ public class Pay {
// 绑定一个上级为保险版的会员,scId和inviterSid可以在用户分享的链接里拿到
Map
<
String
,
Object
>
distributeParams
=
new
HashMap
<
String
,
Object
>();
distributeParams
.
put
(
"scId"
,
"Kj21OTk0MTU"
);
//文章ID: 文章转化访客时,传此参数
distributeParams
.
put
(
"inviterSid"
,
"Kj21MTQ4OTU"
);
//销售ID: 会员邀请好友付费时,传此参数
distributeParams
.
put
(
"inviterSid"
,
"Kj21MTQ4OTU"
);
//销售ID:
1861加密后
会员邀请好友付费时,传此参数
distributeParams
.
put
(
"fromStr"
,
6
);
//文章来源: 6文章访客转化 1会员邀请
distributeParams
.
put
(
"accessSource"
,
12
);
//支付来源:客集集
Response
distributeResponse
=
network
.
getResponse
(
distributeParams
,
"/kjy/sp/visitorPayment/distribute"
);
...
...
@@ -171,9 +171,8 @@ public class Pay {
payParams
.
put
(
"oaId"
,
"1"
);
payParams
.
put
(
"paySource"
,
"2"
);
payParams
.
put
(
"sellerFrom"
,
""
);
String
payJson
=
JSONObject
.
toJSONString
(
payParams
);
Response
orderAppId
=
network
.
PostResponse
(
payJson
,
"/kjy/order/create"
);
Response
orderAppId
=
network
.
postResponse
(
payParams
,
"/kjy/order/create"
);
String
appId
=
orderAppId
.
jsonPath
().
getString
(
"data.appId"
);
Assert
.
assertEquals
(
appId
,
"wxcb8c36279dd7dff2"
,
"拉起支付:拉起微信支付失败"
);
//判断返回的微信调起参数中appId是否正确
}
...
...
@@ -199,8 +198,7 @@ public class Pay {
payParams
.
put
(
"oaId"
,
"1"
);
payParams
.
put
(
"paySource"
,
"2"
);
payParams
.
put
(
"sellerFrom"
,
""
);
String
payJson
=
JSONObject
.
toJSONString
(
payParams
);
Response
orderAppId
=
network
.
PostResponse
(
payJson
,
"/kjy/order/create"
);
Response
orderAppId
=
network
.
postResponse
(
payParams
,
"/kjy/order/create"
);
String
tradeNo
=
orderAppId
.
jsonPath
().
getString
(
"data.tradeNo"
);
...
...
@@ -223,8 +221,10 @@ public class Pay {
int
changeVersion
=
userVersion
==
1
?
2
:
1
;
// 判断当前开启的版本,如果当前版本是1,则改为2,反之;
//切换版本
String
changeUserVersionJson
=
"{\"targetVersion\":"
+
changeVersion
+
"}"
;
Response
resultResponse
=
network
.
PostResponse
(
changeUserVersionJson
,
"/kjy/mp/version/exchange"
);
//切换版本
Map
<
String
,
Object
>
versionParams
=
new
HashMap
<
String
,
Object
>();
versionParams
.
put
(
"targetVersion"
,
changeVersion
);
Response
resultResponse
=
network
.
postResponse
(
versionParams
,
"/kjy/mp/version/exchange"
);
String
result
=
resultResponse
.
jsonPath
().
getString
(
"desc"
);
Assert
.
assertEquals
(
result
,
"OK"
,
"会员类型切换:切换失败"
);
//判断返回的微信调起参数中appId是否正确
...
...
src/test/java/com/kjj/qa/cases/SellerCard.java
View file @
b54bed8c
...
...
@@ -15,35 +15,167 @@ import java.util.Map;
public
class
SellerCard
{
private
NetworkOperation
network
=
new
NetworkOperation
();
private
String
scid
=
""
;
private
String
sellerId
=
""
;
@BeforeClass
public
void
setUp
()
{
// 代理人 cookies
network
.
agentCookies
.
put
(
"tku"
,
"T3gM31f18jAWvBFkQfN29cBnRJPVhN64pvvU1T2tkuQe24NggZnSnByQ8yncFGVAxui9GZ4veufsYPCcG2"
);
// network.agentCookies.put("acw_tc","76b20fec15850493922213781e346d81600bc01e6019c96a7e36d6b829aef3");
network
.
agentCookies
.
put
(
"tku"
,
"T3gM31f18j8w3o5y1iEkAGkGxfNgri1yZC1Qix9Y8JawhrzhpZMDhgTzDvhzXSbagbXZxA8AYCbxLPG4SG"
);
network
.
agentHeaders
.
put
(
"Content-Type"
,
"application/json"
);
}
@Test
(
description
=
"详情页顶部"
,
priority
=
1
)
//priorty 方法执行优先级
public
void
详情页顶部
()
throws
IOException
{
Response
topDetailResponse
=
network
.
getResponse
(
"/kjy/mp/sellerCardV5/topOfDetail"
);
String
name
=
topDetailResponse
.
jsonPath
().
getString
(
"data.sellerName"
);
Assert
.
assertEquals
(
name
,
"小葡萄"
,
"详情页顶部:获取用户信息失败!"
);
@Test
(
description
=
"获取用户版本"
,
priority
=
1
)
//priorty 方法执行优先级
public
void
获取用户版本
()
throws
IOException
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"t"
,
System
.
currentTimeMillis
());
Response
response
=
network
.
getResponse
(
params
,
"/kjy/mp/version/info"
);
int
userVersion
=
response
.
jsonPath
().
getInt
(
"data.find {it.openType == 1}.userVersion"
);
// 找出开启状态的版本类型
Assert
.
assertEquals
(
userVersion
,
1
,
"会员类型版本判断:判断错误,此版本为保险版"
);
}
@Test
(
description
=
"是否关注红号-弹框"
,
priority
=
2
)
//priorty 方法执行优先级
public
void
是否关注红号
()
throws
IOException
{
Response
response
=
network
.
getResponse
(
"/kjy/mp/seller/isVipSubscribe"
);
boolean
isVip
=
response
.
jsonPath
().
getBoolean
(
"data.vip"
);
Assert
.
assertEquals
(
isVip
,
false
,
"vip弹框判断错误"
);
}
@Test
(
description
=
"头部展示"
,
priority
=
3
)
public
void
头部展示
()
throws
IOException
{
//获取信息
Response
response
=
network
.
getResponse
(
"/kjy/mp/sellerCardV5/topOfDetail"
);
scid
=
response
.
jsonPath
().
getString
(
"data.scid"
);
sellerId
=
response
.
jsonPath
().
getString
(
"data.sellerId"
);
String
sellerName
=
response
.
jsonPath
().
getString
(
"data.sellerName"
);
Assert
.
assertEquals
(
sellerName
,
"Su Yi"
,
"获取用户失败"
);
//修改用户信息
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"sellerName"
,
"测试123"
);
params
.
put
(
"phoneNumber"
,
"13012341234"
);
params
.
put
(
"wechatNumber"
,
"wx123456"
);
params
.
put
(
"address"
,
"杭州数娱大厦(文一西路98号)"
);
params
.
put
(
"addressLocation"
,
"120.112204,30.287785"
);
params
.
put
(
"avatarStyle"
,
3
);
Response
editRsponse
=
network
.
postResponse
(
params
,
"/kjy/mp/sellerCard/editBaseInfo"
);
//重新获取用户信息
response
=
network
.
getResponse
(
"/kjy/mp/sellerCardV5/topOfDetail"
);
sellerName
=
response
.
jsonPath
().
getString
(
"data.sellerName"
);
String
phoneNumber
=
response
.
jsonPath
().
getString
(
"data.phoneNumber"
);
String
wechatNumber
=
response
.
jsonPath
().
getString
(
"data.wechatNumber"
);
String
address
=
response
.
jsonPath
().
getString
(
"data.address"
);
int
avatarStyle
=
response
.
jsonPath
().
getInt
(
"data.avatarStyle"
);
Assert
.
assertEquals
(
sellerName
,
"测试123"
,
"修改昵称失败"
);
Assert
.
assertEquals
(
phoneNumber
,
"13012341234"
,
"修改手机号失败"
);
Assert
.
assertEquals
(
wechatNumber
,
"wx123456"
,
"修改微信号成功"
);
Assert
.
assertEquals
(
address
,
"杭州数娱大厦(文一西路98号)"
,
"修改地址失败"
);
Assert
.
assertEquals
(
avatarStyle
,
3
,
"修改地址成功"
);
}
@Test
(
description
=
"专业介绍"
,
priority
=
4
)
public
void
专业介绍
()
throws
IOException
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"scid"
,
scid
);
Response
response
=
network
.
getResponse
(
params
,
"/kjy/mp/sellerCardV5/personalProfile"
);
String
intro
=
response
.
jsonPath
().
getString
(
"data.personalIntro"
);
//个人介绍
int
exprLength
=
response
.
jsonPath
().
getInt
(
"data.exprLength"
);
//工作年限
Assert
.
assertEquals
(
intro
,
"我在行业内深耕多年,经验丰富,具备过硬的专业素质,深受客户喜爱和支持。"
,
"个人介绍-获取介绍不匹配"
);
Assert
.
assertEquals
(
exprLength
,
0
,
"个人介绍-获取工作年限不匹配"
);
//修改工作年限和个人介绍
Map
<
String
,
Object
>
baseParams
=
new
HashMap
<
String
,
Object
>();
baseParams
.
put
(
"exprLength"
,
2
);
baseParams
.
put
(
"personalIntro"
,
"我在行业内整挺好!"
);
Response
baseResponse
=
network
.
postResponse
(
baseParams
,
"/kjy/mp/sellerCard/editBaseInfo"
);
//修改擅长专业
Map
<
String
,
Object
>
personalParams
=
new
HashMap
<
String
,
Object
>();
personalParams
.
put
(
"goodAtCustom"
,
"逼逼赖赖,叽叽歪歪"
);
personalParams
.
put
(
"goodAtDefault"
,
""
);
Response
personalResponse
=
network
.
postResponse
(
personalParams
,
"/kjy/mp/sellerCard/editMajorGoodAuth"
);
//查看修改后的专业介绍
response
=
network
.
getResponse
(
params
,
"/kjy/mp/sellerCardV5/personalProfile"
);
intro
=
response
.
jsonPath
().
getString
(
"data.personalIntro"
);
//个人介绍
exprLength
=
response
.
jsonPath
().
getInt
(
"data.exprLength"
);
//工作年限
Assert
.
assertEquals
(
intro
,
"我在行业内整挺好!"
,
"修改个人介绍失败"
);
Assert
.
assertEquals
(
exprLength
,
2
,
"修改工作年限失败"
);
}
@Test
(
description
=
"个人介绍"
,
priority
=
2
)
public
void
个人介绍
()
throws
IOException
{
//拿到用户scid
Response
topDetailResponse
=
network
.
getResponse
(
"/kjy/mp/sellerCardV5/topOfDetail"
);
String
scid
=
topDetailResponse
.
jsonPath
().
getString
(
"data.scid"
);
@Test
(
description
=
"客户评价"
,
priority
=
6
)
//priorty 方法执行优先级
public
void
客户评价
()
throws
IOException
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"scid"
,
scid
);
params
.
put
(
"pageIndex"
,
1
);
params
.
put
(
"pageSize"
,
6
);
params
.
put
(
"appraiseState"
,
1
);
Response
response
=
network
.
getResponse
(
params
,
"/kjy/mp/sellerCardV5/appraiseList"
);
int
totalCount
=
response
.
jsonPath
().
getInt
(
"data.appraiseList.totalCount"
);
Assert
.
assertEquals
(
totalCount
,
0
,
"获取用户评价失败"
);
}
@Test
(
description
=
"投保实录"
,
priority
=
7
)
//priorty 方法执行优先级
public
void
投保实录
()
throws
IOException
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"scid"
,
scid
);
Response
personalProfileResponse
=
network
.
getResponse
(
params
,
"/kjy/mp/sellerCardV5/personalProfile"
);
String
profile
=
personalProfileResponse
.
jsonPath
().
getString
(
"data.personalIntro"
);
Assert
.
assertEquals
(
profile
,
"我在行业内深耕多年,经验丰富,具备过硬的专业素质,深受客户喜爱和支持。"
,
"个人介绍:获取介绍失败"
);
params
.
put
(
"pageIndex"
,
1
);
params
.
put
(
"pageSize"
,
6
);
params
.
put
(
"appraiseState"
,
1
);
Response
response
=
network
.
getResponse
(
params
,
"/kjy/mp/sellerCardV5/appraiseList"
);
int
totalCount
=
response
.
jsonPath
().
getInt
(
"data.appraiseList.totalCount"
);
Assert
.
assertEquals
(
totalCount
,
0
,
"获取用户评价失败"
);
}
@Test
(
description
=
"获奖记录"
,
priority
=
8
)
//priorty 方法执行优先级
public
void
获奖记录
()
throws
IOException
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"scid"
,
scid
);
Response
response
=
network
.
getResponse
(
params
,
"/kjy/mp/sellerCardV5/honorList"
);
boolean
IDAOpen
=
response
.
jsonPath
().
getBoolean
(
"data.authenticationV5[0].open"
);
boolean
MDRTOpen
=
response
.
jsonPath
().
getBoolean
(
"data.authenticationV5[1].open"
);
boolean
CMFOpen
=
response
.
jsonPath
().
getBoolean
(
"data.authenticationV5[2].open"
);
Assert
.
assertFalse
(
IDAOpen
,
"IDA认证匹配错误"
);
Assert
.
assertFalse
(
MDRTOpen
,
"MDRT认证匹配错误"
);
Assert
.
assertFalse
(
CMFOpen
,
"CMF认证匹配错误"
);
//开启IDA认证
Map
<
String
,
Object
>
configParams
=
new
HashMap
<
String
,
Object
>();
configParams
.
put
(
"configKey"
,
"CARD_HONOR_AUTH_3"
);
configParams
.
put
(
"configValue"
,
true
);
Response
configResponse
=
network
.
postResponse
(
configParams
,
"/kjy/mp/sellerConfig/editConfig"
);
//重新查询获奖记录
response
=
network
.
getResponse
(
params
,
"/kjy/mp/sellerCardV5/honorList"
);
IDAOpen
=
response
.
jsonPath
().
getBoolean
(
"data.authenticationV5[0].open"
);
MDRTOpen
=
response
.
jsonPath
().
getBoolean
(
"data.authenticationV5[1].open"
);
CMFOpen
=
response
.
jsonPath
().
getBoolean
(
"data.authenticationV5[2].open"
);
Assert
.
assertTrue
(
IDAOpen
,
"修改后-IDA认证匹配错误"
);
Assert
.
assertFalse
(
MDRTOpen
,
"修改后-MDRT认证匹配错误"
);
Assert
.
assertFalse
(
CMFOpen
,
"修改后-CMF认证匹配错误"
);
}
@Test
(
description
=
"精彩分享"
,
priority
=
9
)
//priorty 方法执行优先级
public
void
精彩分享
()
throws
IOException
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"sellerId"
,
sellerId
);
params
.
put
(
"pageIndex"
,
1
);
params
.
put
(
"pageSize"
,
30
);
Response
response
=
network
.
getResponse
(
params
,
"/kjy/mp/chat/sellerContentHistory"
);
// int totalCount = response.jsonPath().getInt("data.totalCount");
// Assert.assertEquals(totalCount,0,"获取分享失败");
String
contentId
=
response
.
jsonPath
().
getString
(
"data.list[0].contentId"
);
Assert
.
assertEquals
(
contentId
,
"Kj21NTgxMjc"
,
"获取分享失败"
);
}
}
src/test/java/com/kjj/qa/services/NetworkOperation.java
View file @
b54bed8c
...
...
@@ -36,7 +36,7 @@ public class NetworkOperation {
private
static
String
host
=
"https://kjj.m.duibatest.com.cn"
;
//测试环境
//钉钉机器人域名
private
static
String
dingtalkPath
=
"https://oapi.dingtalk.com/robot/send?access_token=
f63c9cb36e89dd68e9af82d926933b3afc6544e57b23a3a55ed5b3b772d5e8d2
"
;
private
static
String
dingtalkPath
=
"https://oapi.dingtalk.com/robot/send?access_token=
e4b7d997fb9f90b17672dcdb9c9922d52c59f741b82081a368f4d3c305c1afcd
"
;
// get 不带参请求
public
Response
getResponse
(
String
path
)
{
...
...
@@ -56,7 +56,7 @@ public class NetworkOperation {
}
// post 不帶参请求
public
Response
P
ostResponse
(
String
path
)
{
public
Response
p
ostResponse
(
String
path
)
{
return
given
()
.
cookies
(
agentCookies
)
.
headers
(
agentHeaders
)
...
...
@@ -64,7 +64,8 @@ public class NetworkOperation {
}
// post 带参请求
public
Response
PostResponse
(
String
jsonStr
,
String
path
)
{
public
Response
postResponse
(
Map
<
String
,
Object
>
params
,
String
path
)
{
String
jsonStr
=
JSONObject
.
toJSONString
(
params
);
return
given
()
.
cookies
(
agentCookies
)
.
headers
(
agentHeaders
)
...
...
@@ -74,7 +75,8 @@ public class NetworkOperation {
}
// post 带参请求
public
Response
dingTalkRobot
(
String
jsonStr
)
{
public
Response
dingTalkRobot
(
Map
<
String
,
Object
>
params
)
{
String
jsonStr
=
JSONObject
.
toJSONString
(
params
);
dingTalkHeaders
.
put
(
"Content-Type"
,
"application/json;charset=utf-8"
);
return
given
()
...
...
src/test/java/com/kjj/qa/utils/DingTalkUtil.java
View file @
b54bed8c
...
...
@@ -2,17 +2,28 @@ package com.kjj.qa.utils;
import
com.kjj.qa.services.NetworkOperation
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
DingTalkUtil
{
//通过钉钉机器人发送消息到钉钉群中
public
static
void
sendVal
(
String
context
)
throws
Exception
{
context
=
context
+
"报告地址:http://10.254.187.25/view/kjj_test/job/kejiji_interface/ws/test-output/report.html"
;
String
entityString
=
"{'msgtype': 'text', 'text': {'content': '【测试结果】\n"
+
context
+
"'}}"
;
//测试结果
context
=
"【测试结果】\n"
+
context
+
"报告地址: http://10.254.187.25/view/kjj_test/job/kejiji_interface/ws/test-output/report.html"
;
System
.
out
.
println
(
entityString
);
Map
<
String
,
Object
>
contentParams
=
new
HashMap
<
String
,
Object
>();
contentParams
.
put
(
"content"
,
context
);
//钉钉机器人消息体
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"msgtype"
,
"text"
);
params
.
put
(
"text"
,
contentParams
);
// System.out.println(params);
NetworkOperation
network
=
new
NetworkOperation
();
network
.
dingTalkRobot
(
entityString
);
//发起请求
network
.
dingTalkRobot
(
params
);
//发起dingding机器人通知
}
...
...
src/test/java/com/kjj/qa/utils/KjyUtil.java
View file @
b54bed8c
package
com
.
kjj
.
qa
.
utils
;
import
com.kjj.qa.services.NetworkOperation
;
public
final
class
KjyUtil
{
}
src/test/testNG.xml
View file @
b54bed8c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite
name=
"客集集-测试结果"
verbose=
"1"
thread-count=
"3"
>
<test
preserve-order=
"true"
name=
"首页"
>
<!-- <test preserve-order="true" name="首页" >-->
<!-- <classes>-->
<!-- <class name="com.kjj.qa.cases.Home"/>-->
<!-- </classes>-->
<!-- </test>-->
<test
preserve-order=
"true"
name=
"支付"
>
<classes>
<class
name=
"com.kjj.qa.cases.
Home
"
/>
<class
name=
"com.kjj.qa.cases.
Pay
"
/>
</classes>
</test>
<test
preserve-order=
"true"
name=
"
支付
"
>
<test
preserve-order=
"true"
name=
"
名片
"
>
<classes>
<class
name=
"com.kjj.qa.cases.
Pay
"
/>
<class
name=
"com.kjj.qa.cases.
SellerCard
"
/>
</classes>
</test>
<!-- <test preserve-order="true" name="名片" >-->
<!-- <classes>-->
<!-- <class name="com.kjj.qa.cases.SellerCard"/>-->
<!-- </classes>-->
<!-- </test>-->
<!-- 监听器-->
<listeners>
<listener
class-name=
"com.kjj.qa.config.ExtentTestNGIReporterListener"
/>
...
...
test-output/report.html
View file @
b54bed8c
...
...
@@ -49,7 +49,7 @@
<ul
id=
'nav-mobile'
class=
'right hide-on-med-and-down nav-right'
>
<li>
<a
href=
'#!'
>
<span
class=
'label suite-start-time blue darken-3'
>
Apr 2
6, 2020 02:54:2
4 PM
</span>
<span
class=
'label suite-start-time blue darken-3'
>
Apr 2
7, 2020 05:12:4
4 PM
</span>
</a>
</li>
<li>
...
...
@@ -89,8 +89,8 @@
</a>
<ul
id=
'category-toggle'
class=
'dropdown-content'
>
<li><a
href=
'#'
>
客集集-测试结果
</a></li>
<li><a
href=
'#'
>
首页
</a></li>
<li><a
href=
'#'
>
支付
</a></li>
<li><a
href=
'#'
>
名片
</a></li>
<li
class=
'divider'
></li>
<li
class=
'clear'
><a
href=
'#!'
clear=
'true'
>
Clear Filters
</a></li>
</ul>
...
...
@@ -138,10 +138,10 @@
<canvas
id=
'parent-analysis'
width=
'100'
height=
'80'
></canvas>
</div>
<div
class=
'block text-small'
>
<span
class=
'tooltipped'
data-position=
'top'
data-tooltip=
'
55.556%'
><span
class=
'strong'
>
5
</span>
test(s) passed
</span>
<span
class=
'tooltipped'
data-position=
'top'
data-tooltip=
'
43.75%'
><span
class=
'strong'
>
7
</span>
test(s) passed
</span>
</div>
<div
class=
'block text-small'
>
<span
class=
'strong tooltipped'
data-position=
'top'
data-tooltip=
'
44.444%'
>
4
</span>
test(s) failed,
<span
class=
'strong tooltipped'
data-position=
'top'
data-tooltip=
'0%'
>
0
</span>
others
<span
class=
'strong tooltipped'
data-position=
'top'
data-tooltip=
'
56.25%'
>
9
</span>
test(s) failed,
<span
class=
'strong tooltipped'
data-position=
'top'
data-tooltip=
'0%'
>
0
</span>
others
</div>
</div>
</div>
...
...
@@ -153,10 +153,10 @@
<canvas
id=
'child-analysis'
width=
'100'
height=
'80'
></canvas>
</div>
<div
class=
'block text-small'
>
<span
class=
'tooltipped'
data-position=
'top'
data-tooltip=
'
55.556%'
><span
class=
'strong'
>
5
</span>
step(s) passed
</span>
<span
class=
'tooltipped'
data-position=
'top'
data-tooltip=
'
43.75%'
><span
class=
'strong'
>
7
</span>
step(s) passed
</span>
</div>
<div
class=
'block text-small'
>
<span
class=
'strong tooltipped'
data-position=
'top'
data-tooltip=
'
44.444%'
>
4
</span>
step(s) failed,
<span
class=
'strong tooltipped'
data-position=
'top'
data-tooltip=
'0%'
>
0
</span>
others
<span
class=
'strong tooltipped'
data-position=
'top'
data-tooltip=
'
56.25%'
>
9
</span>
step(s) failed,
<span
class=
'strong tooltipped'
data-position=
'top'
data-tooltip=
'0%'
>
0
</span>
others
</div>
</div>
</div>
...
...
@@ -171,38 +171,346 @@
<ul
id=
'test-collection'
class=
'test-collection'
>
<li
class=
'test displayed active has-leaf
pass'
status=
'pass
'
bdd=
'false'
test-id=
'1'
>
<li
class=
'test displayed active has-leaf
fail'
status=
'fail
'
bdd=
'false'
test-id=
'1'
>
<div
class=
'test-heading'
>
<span
class=
'test-name'
>
客集集-测试结果 :
首页
</span>
<span
class=
'test-time'
>
Apr 2
6, 2020 02:54:2
4 PM
</span>
<span
class=
'test-status right
pass'
>
pass
</span>
<span
class=
'test-name'
>
客集集-测试结果 :
支付
</span>
<span
class=
'test-time'
>
Apr 2
7, 2020 05:12:4
4 PM
</span>
<span
class=
'test-status right
fail'
>
fail
</span>
</div>
<div
class=
'test-content hide'
>
<div
class=
'test-time-info'
>
<span
class=
'label start-time'
>
Apr 2
6, 2020 02:54:2
4 PM
</span>
<span
class=
'label end-time'
>
Apr 2
6, 2020 02:54:28
PM
</span>
<span
class=
'label time-taken grey lighten-1 white-text'
>
0h 0m
4s+32
1ms
</span>
<span
class=
'label start-time'
>
Apr 2
7, 2020 05:12:4
4 PM
</span>
<span
class=
'label end-time'
>
Apr 2
7, 2020 05:12:55
PM
</span>
<span
class=
'label time-taken grey lighten-1 white-text'
>
0h 0m
10s+59
1ms
</span>
</div>
<div
class=
'test-desc'
>
Pass:
1 ; Fail: 0
; Skip: 0 ;
</div>
<div
class=
'test-desc'
>
Pass:
4 ; Fail: 4
; Skip: 0 ;
</div>
<div
class=
'test-attributes'
>
<div
class=
'category-list'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
首页
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
</div>
<ul
class=
'collapsible node-list'
data-collapsible=
'accordion'
>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'2'
>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'2'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
默认付费_付费页
</div>
<span
class=
'node-time'
>
Apr 27, 2020 05:12:44 PM
</span>
<span
class=
'node-duration'
>
0h 0m 12s+165ms
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
<thead>
<tr>
<th>
Status
</th>
<th>
Timestamp
</th>
<th>
Details
</th>
</tr>
</thead>
<tbody>
<tr
class=
'log'
status=
'fail'
>
<td
class=
'status fail'
title=
'fail'
alt=
'fail'
><i
class=
'material-icons'
>
cancel
</i></td>
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError: 会员类型版本判断:判断错误,此版本为保险版 expected [1] but found [2]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:370)
at com.kjj.qa.cases.Pay.默认付费_付费页(Pay.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'3'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
默认付费_切换为保险版会员类型并成功付款
</div>
<span
class=
'node-time'
>
Apr 27, 2020 05:12:52 PM
</span>
<span
class=
'node-duration'
>
0h 0m 4s+684ms
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
<thead>
<tr>
<th>
Status
</th>
<th>
Timestamp
</th>
<th>
Details
</th>
</tr>
</thead>
<tbody>
<tr
class=
'log'
status=
'fail'
>
<td
class=
'status fail'
title=
'fail'
alt=
'fail'
><i
class=
'material-icons'
>
cancel
</i></td>
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError: 会员类型切换:切换失败 expected [OK] but found [用户切换失败,请稍后再试]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.Pay.默认付费_切换为保险版会员类型并成功付款(Pay.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'4'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
分销码_付费页
</div>
<span
class=
'node-time'
>
Apr 27, 2020 05:12:52 PM
</span>
<span
class=
'node-duration'
>
0h 0m 4s+221ms
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
<thead>
<tr>
<th>
Status
</th>
<th>
Timestamp
</th>
<th>
Details
</th>
</tr>
</thead>
<tbody>
<tr
class=
'log'
status=
'fail'
>
<td
class=
'status fail'
title=
'fail'
alt=
'fail'
><i
class=
'material-icons'
>
cancel
</i></td>
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError: 获取付费价格:价格不是486 expected [486] but found [586]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.Pay.分销码_付费页(Pay.java:155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'5'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
分销码_切换为保险版会员类型并成功付款
</div>
<span
class=
'node-time'
>
Apr 27, 2020 05:12:55 PM
</span>
<span
class=
'node-duration'
>
0h 0m 1s+872ms
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
<thead>
<tr>
<th>
Status
</th>
<th>
Timestamp
</th>
<th>
Details
</th>
</tr>
</thead>
<tbody>
<tr
class=
'log'
status=
'fail'
>
<td
class=
'status fail'
title=
'fail'
alt=
'fail'
><i
class=
'material-icons'
>
cancel
</i></td>
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError: 会员类型切换:切换失败 expected [OK] but found [用户切换失败,请稍后再试]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.Pay.分销码_切换为保险版会员类型并成功付款(Pay.java:229)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'6'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
JSSDK
</div>
<span
class=
'node-time'
>
Apr 2
6, 2020 02:54:24
PM
</span>
<span
class=
'node-duration'
>
0h 0m
10s+674
ms
</span>
<div
class=
'node-name'
>
默认付费_待支付
</div>
<span
class=
'node-time'
>
Apr 2
7, 2020 05:12:50
PM
</span>
<span
class=
'node-duration'
>
0h 0m
6s+389
ms
</span>
<span
class=
'test-status right pass'
>
pass
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
首页
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
<thead>
<tr>
<th>
Status
</th>
<th>
Timestamp
</th>
<th>
Details
</th>
</tr>
</thead>
<tbody>
<tr
class=
'log'
status=
'pass'
>
<td
class=
'status pass'
title=
'pass'
alt=
'pass'
><i
class=
'material-icons'
>
check_circle
</i></td>
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
>
Test passed
</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'7'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
默认付费_取消支付
</div>
<span
class=
'node-time'
>
Apr 27, 2020 05:12:51 PM
</span>
<span
class=
'node-duration'
>
0h 0m 5s+382ms
</span>
<span
class=
'test-status right pass'
>
pass
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
<thead>
<tr>
<th>
Status
</th>
<th>
Timestamp
</th>
<th>
Details
</th>
</tr>
</thead>
<tbody>
<tr
class=
'log'
status=
'pass'
>
<td
class=
'status pass'
title=
'pass'
alt=
'pass'
><i
class=
'material-icons'
>
check_circle
</i></td>
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
>
Test passed
</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'8'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
分销码_待支付
</div>
<span
class=
'node-time'
>
Apr 27, 2020 05:12:53 PM
</span>
<span
class=
'node-duration'
>
0h 0m 3s+447ms
</span>
<span
class=
'test-status right pass'
>
pass
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
...
...
@@ -216,7 +524,39 @@
<tbody>
<tr
class=
'log'
status=
'pass'
>
<td
class=
'status pass'
title=
'pass'
alt=
'pass'
><i
class=
'material-icons'
>
check_circle
</i></td>
<td
class=
'timestamp'
>
2:54:34 PM
</td>
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
>
Test passed
</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'9'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
分销码_取消支付
</div>
<span
class=
'node-time'
>
Apr 27, 2020 05:12:54 PM
</span>
<span
class=
'node-duration'
>
0h 0m 2s+644ms
</span>
<span
class=
'test-status right pass'
>
pass
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
<thead>
<tr>
<th>
Status
</th>
<th>
Timestamp
</th>
<th>
Details
</th>
</tr>
</thead>
<tbody>
<tr
class=
'log'
status=
'pass'
>
<td
class=
'status pass'
title=
'pass'
alt=
'pass'
><i
class=
'material-icons'
>
check_circle
</i></td>
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
>
Test passed
</td>
</tr>
</tbody>
...
...
@@ -229,38 +569,38 @@
</li>
<li
class=
'test displayed active has-leaf fail'
status=
'fail'
bdd=
'false'
test-id=
'
3
'
>
<li
class=
'test displayed active has-leaf fail'
status=
'fail'
bdd=
'false'
test-id=
'
10
'
>
<div
class=
'test-heading'
>
<span
class=
'test-name'
>
客集集-测试结果 :
支付
</span>
<span
class=
'test-time'
>
Apr 2
6, 2020 02:54:28
PM
</span>
<span
class=
'test-name'
>
客集集-测试结果 :
名片
</span>
<span
class=
'test-time'
>
Apr 2
7, 2020 05:12:55
PM
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'test-content hide'
>
<div
class=
'test-time-info'
>
<span
class=
'label start-time'
>
Apr 2
6, 2020 02:54:28
PM
</span>
<span
class=
'label end-time'
>
Apr 2
6, 2020 02:54:34
PM
</span>
<span
class=
'label time-taken grey lighten-1 white-text'
>
0h 0m
6s+297
ms
</span>
<span
class=
'label start-time'
>
Apr 2
7, 2020 05:12:55
PM
</span>
<span
class=
'label end-time'
>
Apr 2
7, 2020 05:12:56
PM
</span>
<span
class=
'label time-taken grey lighten-1 white-text'
>
0h 0m
1s+486
ms
</span>
</div>
<div
class=
'test-desc'
>
Pass:
4 ; Fail: 4
; Skip: 0 ;
</div>
<div
class=
'test-desc'
>
Pass:
3 ; Fail: 5
; Skip: 0 ;
</div>
<div
class=
'test-attributes'
>
<div
class=
'category-list'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
<span
class=
'category label white-text'
>
名片
</span>
</div>
</div>
<ul
class=
'collapsible node-list'
data-collapsible=
'accordion'
>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'
4
'
>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'
11
'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
默认付费_付费页
</div>
<span
class=
'node-time'
>
Apr 2
6, 2020 02:54:28
PM
</span>
<span
class=
'node-duration'
>
0h 0m
6s+389
ms
</span>
<div
class=
'node-name'
>
获取用户版本
</div>
<span
class=
'node-time'
>
Apr 2
7, 2020 05:12:55
PM
</span>
<span
class=
'node-duration'
>
0h 0m
1s+641
ms
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
<span
class=
'category label white-text'
>
名片
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
...
...
@@ -274,13 +614,13 @@
<tbody>
<tr
class=
'log'
status=
'fail'
>
<td
class=
'status fail'
title=
'fail'
alt=
'fail'
><i
class=
'material-icons'
>
cancel
</i></td>
<td
class=
'timestamp'
>
2:54:34
PM
</td>
<td
class=
'timestamp'
>
5:12:56
PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError: 会员类型版本判断:判断错误,此版本为保险版 expected [1] but found [2]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:370)
at com.kjj.qa.cases.
Pay.默认付费_付费页(Pay.java:47
)
at com.kjj.qa.cases.
SellerCard.获取用户版本(SellerCard.java:35
)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
@@ -311,17 +651,17 @@
</div>
</div>
</li>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'
5
'
>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'
12
'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
默认付费_切换为保险版会员类型并成功付款
</div>
<span
class=
'node-time'
>
Apr 2
6, 2020 02:54:30
PM
</span>
<span
class=
'node-duration'
>
0h 0m
3s+926
ms
</span>
<div
class=
'node-name'
>
是否关注红号
</div>
<span
class=
'node-time'
>
Apr 2
7, 2020 05:12:55
PM
</span>
<span
class=
'node-duration'
>
0h 0m
1s+484
ms
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
<span
class=
'category label white-text'
>
名片
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
...
...
@@ -335,13 +675,74 @@
<tbody>
<tr
class=
'log'
status=
'fail'
>
<td
class=
'status fail'
title=
'fail'
alt=
'fail'
><i
class=
'material-icons'
>
cancel
</i></td>
<td
class=
'timestamp'
>
2:54:34 PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError: 会员类型切换:切换失败 expected [OK] but found [用户切换失败,请稍后再试]
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError: vip弹框判断错误 expected [false] but found [true]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:286)
at com.kjj.qa.cases.SellerCard.是否关注红号(SellerCard.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'13'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
头部展示
</div>
<span
class=
'node-time'
>
Apr 27, 2020 05:12:55 PM
</span>
<span
class=
'node-duration'
>
0h 0m 1s+291ms
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
名片
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
<thead>
<tr>
<th>
Status
</th>
<th>
Timestamp
</th>
<th>
Details
</th>
</tr>
</thead>
<tbody>
<tr
class=
'log'
status=
'fail'
>
<td
class=
'status fail'
title=
'fail'
alt=
'fail'
><i
class=
'material-icons'
>
cancel
</i></td>
<td
class=
'timestamp'
>
5:12:56 PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError: 获取用户失败 expected [Su Yi] but found [测试123]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.
Pay.默认付费_切换为保险版会员类型并成功付款(Pay.java:119
)
at com.kjj.qa.cases.
SellerCard.头部展示(SellerCard.java:54
)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
@@ -372,17 +773,17 @@
</div>
</div>
</li>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'
6
'
>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'
14
'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
分销码_付费页
</div>
<span
class=
'node-time'
>
Apr 2
6, 2020 02:54:31
PM
</span>
<span
class=
'node-duration'
>
0h 0m
3s+493
ms
</span>
<div
class=
'node-name'
>
专业介绍
</div>
<span
class=
'node-time'
>
Apr 2
7, 2020 05:12:55
PM
</span>
<span
class=
'node-duration'
>
0h 0m
1s+70
ms
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
<span
class=
'category label white-text'
>
名片
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
...
...
@@ -396,13 +797,13 @@
<tbody>
<tr
class=
'log'
status=
'fail'
>
<td
class=
'status fail'
title=
'fail'
alt=
'fail'
><i
class=
'material-icons'
>
cancel
</i></td>
<td
class=
'timestamp'
>
2:54:34
PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError:
获取付费价格:价格不是486 expected [486] but found [0.01
]
<td
class=
'timestamp'
>
5:12:56
PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError:
个人介绍-获取介绍不匹配 expected [我在行业内深耕多年,经验丰富,具备过硬的专业素质,深受客户喜爱和支持。] but found [我在行业内整挺好!
]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.
Pay.分销码_付费页(Pay.java:156
)
at com.kjj.qa.cases.
SellerCard.专业介绍(SellerCard.java:88
)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
@@ -433,17 +834,17 @@
</div>
</div>
</li>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'
7
'
>
<li
class=
'node level-1 leaf fail'
status=
'fail'
test-id=
'
15
'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
分销码_切换为保险版会员类型并成功付款
</div>
<span
class=
'node-time'
>
Apr 2
6, 2020 02:54:33
PM
</span>
<span
class=
'node-duration'
>
0h 0m
1s+206
ms
</span>
<div
class=
'node-name'
>
获奖记录
</div>
<span
class=
'node-time'
>
Apr 2
7, 2020 05:12:56
PM
</span>
<span
class=
'node-duration'
>
0h 0m
0s+509
ms
</span>
<span
class=
'test-status right fail'
>
fail
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
<span
class=
'category label white-text'
>
名片
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
...
...
@@ -457,13 +858,12 @@
<tbody>
<tr
class=
'log'
status=
'fail'
>
<td
class=
'status fail'
title=
'fail'
alt=
'fail'
><i
class=
'material-icons'
>
cancel
</i></td>
<td
class=
'timestamp'
>
2:54:34
PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError:
会员类型切换:切换失败 expected [OK] but found [用户切换失败,请稍后再试
]
<td
class=
'timestamp'
>
5:12:56
PM
</td>
<td
class=
'step-details'
><pre>
java.lang.AssertionError:
IDA认证匹配错误 expected [false] but found [true
]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.Pay.分销码_切换为保险版会员类型并成功付款(Pay.java:230)
at org.testng.Assert.assertFalse(Assert.java:63)
at com.kjj.qa.cases.SellerCard.获奖记录(SellerCard.java:145)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
@@ -494,49 +894,17 @@
</div>
</div>
</li>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'8'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
默认付费_待支付
</div>
<span
class=
'node-time'
>
Apr 26, 2020 02:54:29 PM
</span>
<span
class=
'node-duration'
>
0h 0m 5s+326ms
</span>
<span
class=
'test-status right pass'
>
pass
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
<thead>
<tr>
<th>
Status
</th>
<th>
Timestamp
</th>
<th>
Details
</th>
</tr>
</thead>
<tbody>
<tr
class=
'log'
status=
'pass'
>
<td
class=
'status pass'
title=
'pass'
alt=
'pass'
><i
class=
'material-icons'
>
check_circle
</i></td>
<td
class=
'timestamp'
>
2:54:34 PM
</td>
<td
class=
'step-details'
>
Test passed
</td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'9'
>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'16'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
默认付费_取消支付
</div>
<span
class=
'node-time'
>
Apr 2
6, 2020 02:54:30
PM
</span>
<span
class=
'node-duration'
>
0h 0m
4s+67
8ms
</span>
<div
class=
'node-name'
>
客户评价
</div>
<span
class=
'node-time'
>
Apr 2
7, 2020 05:12:56
PM
</span>
<span
class=
'node-duration'
>
0h 0m
0s+85
8ms
</span>
<span
class=
'test-status right pass'
>
pass
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
<span
class=
'category label white-text'
>
名片
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
...
...
@@ -550,7 +918,7 @@
<tbody>
<tr
class=
'log'
status=
'pass'
>
<td
class=
'status pass'
title=
'pass'
alt=
'pass'
><i
class=
'material-icons'
>
check_circle
</i></td>
<td
class=
'timestamp'
>
2:54:34
PM
</td>
<td
class=
'timestamp'
>
5:12:56
PM
</td>
<td
class=
'step-details'
>
Test passed
</td>
</tr>
</tbody>
...
...
@@ -558,17 +926,17 @@
</div>
</div>
</li>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'1
0
'
>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'1
7
'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
分销码_待支付
</div>
<span
class=
'node-time'
>
Apr 2
6, 2020 02:54:32
PM
</span>
<span
class=
'node-duration'
>
0h 0m
2s+820
ms
</span>
<div
class=
'node-name'
>
投保实录
</div>
<span
class=
'node-time'
>
Apr 2
7, 2020 05:12:56
PM
</span>
<span
class=
'node-duration'
>
0h 0m
0s+689
ms
</span>
<span
class=
'test-status right pass'
>
pass
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
<span
class=
'category label white-text'
>
名片
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
...
...
@@ -582,7 +950,7 @@
<tbody>
<tr
class=
'log'
status=
'pass'
>
<td
class=
'status pass'
title=
'pass'
alt=
'pass'
><i
class=
'material-icons'
>
check_circle
</i></td>
<td
class=
'timestamp'
>
2:54:34
PM
</td>
<td
class=
'timestamp'
>
5:12:56
PM
</td>
<td
class=
'step-details'
>
Test passed
</td>
</tr>
</tbody>
...
...
@@ -590,17 +958,17 @@
</div>
</div>
</li>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'1
1
'
>
<li
class=
'node level-1 leaf pass'
status=
'pass'
test-id=
'1
8
'
>
<div
class=
'collapsible-header'
>
<div
class=
'node-name'
>
分销码_取消支付
</div>
<span
class=
'node-time'
>
Apr 2
6, 2020 02:54:32
PM
</span>
<span
class=
'node-duration'
>
0h 0m
2s+257
ms
</span>
<div
class=
'node-name'
>
精彩分享
</div>
<span
class=
'node-time'
>
Apr 2
7, 2020 05:12:56
PM
</span>
<span
class=
'node-duration'
>
0h 0m
0s+285
ms
</span>
<span
class=
'test-status right pass'
>
pass
</span>
</div>
<div
class=
'collapsible-body'
>
<div
class=
'category-list right'
>
<span
class=
'category label white-text'
>
客集集-测试结果
</span>
<span
class=
'category label white-text'
>
支付
</span>
<span
class=
'category label white-text'
>
名片
</span>
</div>
<div
class=
'node-steps'
>
<table
class=
'bordered table-results'
>
...
...
@@ -614,7 +982,7 @@
<tbody>
<tr
class=
'log'
status=
'pass'
>
<td
class=
'status pass'
title=
'pass'
alt=
'pass'
><i
class=
'material-icons'
>
check_circle
</i></td>
<td
class=
'timestamp'
>
2:54:34
PM
</td>
<td
class=
'timestamp'
>
5:12:56
PM
</td>
<td
class=
'step-details'
>
Test passed
</td>
</tr>
</tbody>
...
...
@@ -679,14 +1047,14 @@
<div
class=
'category-heading'
>
<span
class=
'category-name'
>
客集集-测试结果
</span>
<span
class=
'category-status right'
>
<span
class=
'label pass'
>
6
</span>
<span
class=
'label fail'
>
5
</span>
<span
class=
'label pass'
>
7
</span>
<span
class=
'label fail'
>
11
</span>
</span>
</div>
<div
class=
'category-content hide'
>
<div
class=
'category-status-counts'
>
<span
class=
'label green accent-4 white-text'
>
Passed:
6
</span>
<span
class=
'label red lighten-1 white-text'
>
Failed:
5
</span>
<span
class=
'label green accent-4 white-text'
>
Passed:
7
</span>
<span
class=
'label red lighten-1 white-text'
>
Failed:
11
</span>
</div>
...
...
@@ -701,58 +1069,93 @@
</thead>
<tbody>
<tr>
<td>
Apr 26, 2020 02:54:24 PM
</td>
<td
class=
'linked'
test-id=
'1'
>
首页
</td>
<td>
Apr 27, 2020 05:12:44 PM
</td>
<td
class=
'linked'
test-id=
'1'
>
支付
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:44 PM
</td>
<td
class=
'linked'
test-id=
'2'
>
支付.默认付费_付费页
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:52 PM
</td>
<td
class=
'linked'
test-id=
'3'
>
支付.默认付费_切换为保险版会员类型并成功付款
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:52 PM
</td>
<td
class=
'linked'
test-id=
'4'
>
支付.分销码_付费页
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:55 PM
</td>
<td
class=
'linked'
test-id=
'5'
>
支付.分销码_切换为保险版会员类型并成功付款
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:50 PM
</td>
<td
class=
'linked'
test-id=
'6'
>
支付.默认付费_待支付
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:24
PM
</td>
<td
class=
'linked'
test-id=
'
2'
>
首页.JSSDK
</td>
<td>
Apr 2
7, 2020 05:12:51
PM
</td>
<td
class=
'linked'
test-id=
'
7'
>
支付.默认付费_取消支付
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 26, 2020 02:54:28 PM
</td>
<td
class=
'linked'
test-id=
'3'
>
支付
</td>
<td>
Apr 27, 2020 05:12:53 PM
</td>
<td
class=
'linked'
test-id=
'8'
>
支付.分销码_待支付
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:54 PM
</td>
<td
class=
'linked'
test-id=
'9'
>
支付.分销码_取消支付
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:55 PM
</td>
<td
class=
'linked'
test-id=
'10'
>
名片
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:28
PM
</td>
<td
class=
'linked'
test-id=
'
4'
>
支付.默认付费_付费页
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
11'
>
名片.获取用户版本
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:30
PM
</td>
<td
class=
'linked'
test-id=
'
5'
>
支付.默认付费_切换为保险版会员类型并成功付款
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
12'
>
名片.是否关注红号
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:31
PM
</td>
<td
class=
'linked'
test-id=
'
6'
>
支付.分销码_付费页
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
13'
>
名片.头部展示
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:33
PM
</td>
<td
class=
'linked'
test-id=
'
7'
>
支付.分销码_切换为保险版会员类型并成功付款
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
14'
>
名片.专业介绍
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:29
PM
</td>
<td
class=
'linked'
test-id=
'
8'
>
支付.默认付费_待支付
</td>
<td><span
class=
'test-status
pass'
>
pass
</span></td>
<td>
Apr 2
7, 2020 05:12:56
PM
</td>
<td
class=
'linked'
test-id=
'
15'
>
名片.获奖记录
</td>
<td><span
class=
'test-status
fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:30
PM
</td>
<td
class=
'linked'
test-id=
'
9'
>
支付.默认付费_取消支付
</td>
<td>
Apr 2
7, 2020 05:12:56
PM
</td>
<td
class=
'linked'
test-id=
'
16'
>
名片.客户评价
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:32
PM
</td>
<td
class=
'linked'
test-id=
'1
0'
>
支付.分销码_待支付
</td>
<td>
Apr 2
7, 2020 05:12:56
PM
</td>
<td
class=
'linked'
test-id=
'1
7'
>
名片.投保实录
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:32
PM
</td>
<td
class=
'linked'
test-id=
'1
1'
>
支付.分销码_取消支付
</td>
<td>
Apr 2
7, 2020 05:12:56
PM
</td>
<td
class=
'linked'
test-id=
'1
8'
>
名片.精彩分享
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
</tbody>
...
...
@@ -762,15 +1165,16 @@
</li>
<li
class=
'category displayed active'
>
<div
class=
'category-heading'
>
<span
class=
'category-name'
>
首页
</span>
<span
class=
'category-name'
>
支付
</span>
<span
class=
'category-status right'
>
<span
class=
'label pass'
>
2
</span>
<span
class=
'label pass'
>
4
</span>
<span
class=
'label fail'
>
5
</span>
</span>
</div>
<div
class=
'category-content hide'
>
<div
class=
'category-status-counts'
>
<span
class=
'label green accent-4 white-text'
>
Passed:
2
</span>
<span
class=
'label green accent-4 white-text'
>
Passed:
4
</span>
<span
class=
'label red lighten-1 white-text'
>
Failed: 5
</span>
</div>
...
...
@@ -785,13 +1189,48 @@
</thead>
<tbody>
<tr>
<td>
Apr 26, 2020 02:54:24 PM
</td>
<td
class=
'linked'
test-id=
'1'
>
首页
</td>
<td>
Apr 27, 2020 05:12:44 PM
</td>
<td
class=
'linked'
test-id=
'1'
>
支付
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:44 PM
</td>
<td
class=
'linked'
test-id=
'2'
>
支付.默认付费_付费页
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:52 PM
</td>
<td
class=
'linked'
test-id=
'3'
>
支付.默认付费_切换为保险版会员类型并成功付款
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:52 PM
</td>
<td
class=
'linked'
test-id=
'4'
>
支付.分销码_付费页
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:55 PM
</td>
<td
class=
'linked'
test-id=
'5'
>
支付.分销码_切换为保险版会员类型并成功付款
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:50 PM
</td>
<td
class=
'linked'
test-id=
'6'
>
支付.默认付费_待支付
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:51 PM
</td>
<td
class=
'linked'
test-id=
'7'
>
支付.默认付费_取消支付
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 26, 2020 02:54:24 PM
</td>
<td
class=
'linked'
test-id=
'2'
>
首页.JSSDK
</td>
<td>
Apr 27, 2020 05:12:53 PM
</td>
<td
class=
'linked'
test-id=
'8'
>
支付.分销码_待支付
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:54 PM
</td>
<td
class=
'linked'
test-id=
'9'
>
支付.分销码_取消支付
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
</tbody>
...
...
@@ -801,16 +1240,16 @@
</li>
<li
class=
'category displayed active'
>
<div
class=
'category-heading'
>
<span
class=
'category-name'
>
支付
</span>
<span
class=
'category-name'
>
名片
</span>
<span
class=
'category-status right'
>
<span
class=
'label pass'
>
4
</span>
<span
class=
'label fail'
>
5
</span>
<span
class=
'label pass'
>
3
</span>
<span
class=
'label fail'
>
6
</span>
</span>
</div>
<div
class=
'category-content hide'
>
<div
class=
'category-status-counts'
>
<span
class=
'label green accent-4 white-text'
>
Passed:
4
</span>
<span
class=
'label red lighten-1 white-text'
>
Failed:
5
</span>
<span
class=
'label green accent-4 white-text'
>
Passed:
3
</span>
<span
class=
'label red lighten-1 white-text'
>
Failed:
6
</span>
</div>
...
...
@@ -825,48 +1264,48 @@
</thead>
<tbody>
<tr>
<td>
Apr 2
6, 2020 02:54:28
PM
</td>
<td
class=
'linked'
test-id=
'
3'
>
支付
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
10'
>
名片
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:28
PM
</td>
<td
class=
'linked'
test-id=
'
4'
>
支付.默认付费_付费页
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
11'
>
名片.获取用户版本
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:30
PM
</td>
<td
class=
'linked'
test-id=
'
5'
>
支付.默认付费_切换为保险版会员类型并成功付款
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
12'
>
名片.是否关注红号
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:31
PM
</td>
<td
class=
'linked'
test-id=
'
6'
>
支付.分销码_付费页
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
13'
>
名片.头部展示
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:33
PM
</td>
<td
class=
'linked'
test-id=
'
7'
>
支付.分销码_切换为保险版会员类型并成功付款
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
14'
>
名片.专业介绍
</td>
<td><span
class=
'test-status fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:29
PM
</td>
<td
class=
'linked'
test-id=
'
8'
>
支付.默认付费_待支付
</td>
<td><span
class=
'test-status
pass'
>
pass
</span></td>
<td>
Apr 2
7, 2020 05:12:56
PM
</td>
<td
class=
'linked'
test-id=
'
15'
>
名片.获奖记录
</td>
<td><span
class=
'test-status
fail'
>
fail
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:30
PM
</td>
<td
class=
'linked'
test-id=
'
9'
>
支付.默认付费_取消支付
</td>
<td>
Apr 2
7, 2020 05:12:56
PM
</td>
<td
class=
'linked'
test-id=
'
16'
>
名片.客户评价
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:32
PM
</td>
<td
class=
'linked'
test-id=
'1
0'
>
支付.分销码_待支付
</td>
<td>
Apr 2
7, 2020 05:12:56
PM
</td>
<td
class=
'linked'
test-id=
'1
7'
>
名片.投保实录
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:32
PM
</td>
<td
class=
'linked'
test-id=
'1
1'
>
支付.分销码_取消支付
</td>
<td>
Apr 2
7, 2020 05:12:56
PM
</td>
<td
class=
'linked'
test-id=
'1
8'
>
名片.精彩分享
</td>
<td><span
class=
'test-status pass'
>
pass
</span></td>
</tr>
</tbody>
...
...
@@ -914,7 +1353,7 @@
<li
class=
'exception displayed active'
>
<div
class=
'exception-heading'
>
<span
class=
'exception-name'
>
java.lang.AssertionError
</span>
<span
class=
'exception-count right'
><span
class=
'label red lighten-1 white-text'
>
4
</span></span>
<span
class=
'exception-count right'
><span
class=
'label red lighten-1 white-text'
>
9
</span></span>
</div>
<div
class=
'exception-content hide'
>
<div
class=
'exception-tests'
>
...
...
@@ -928,14 +1367,14 @@
</thead>
<tbody>
<tr>
<td>
Apr 2
6, 2020 02:54:28
PM
</td>
<td
class=
'linked'
test-id=
'
4
'
>
支付.默认付费_付费页
</td>
<td>
Apr 2
7, 2020 05:12:44
PM
</td>
<td
class=
'linked'
test-id=
'
2
'
>
支付.默认付费_付费页
</td>
<td><pre><pre>
java.lang.AssertionError: 会员类型版本判断:判断错误,此版本为保险版 expected [1] but found [2]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:370)
at com.kjj.qa.cases.Pay.默认付费_付费页(Pay.java:4
7
)
at com.kjj.qa.cases.Pay.默认付费_付费页(Pay.java:4
6
)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
@@ -962,14 +1401,14 @@
</pre></pre></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:30
PM
</td>
<td
class=
'linked'
test-id=
'
5
'
>
支付.默认付费_切换为保险版会员类型并成功付款
</td>
<td>
Apr 2
7, 2020 05:12:52
PM
</td>
<td
class=
'linked'
test-id=
'
3
'
>
支付.默认付费_切换为保险版会员类型并成功付款
</td>
<td><pre><pre>
java.lang.AssertionError: 会员类型切换:切换失败 expected [OK] but found [用户切换失败,请稍后再试]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.Pay.默认付费_切换为保险版会员类型并成功付款(Pay.java:11
9
)
at com.kjj.qa.cases.Pay.默认付费_切换为保险版会员类型并成功付款(Pay.java:11
8
)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
@@ -996,14 +1435,14 @@
</pre></pre></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:31
PM
</td>
<td
class=
'linked'
test-id=
'
6
'
>
支付.分销码_付费页
</td>
<td><pre><pre>
java.lang.AssertionError: 获取付费价格:价格不是486 expected [486] but found [
0.01
]
<td>
Apr 2
7, 2020 05:12:52
PM
</td>
<td
class=
'linked'
test-id=
'
4
'
>
支付.分销码_付费页
</td>
<td><pre><pre>
java.lang.AssertionError: 获取付费价格:价格不是486 expected [486] but found [
586
]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.Pay.分销码_付费页(Pay.java:15
6
)
at com.kjj.qa.cases.Pay.分销码_付费页(Pay.java:15
5
)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
@@ -1030,14 +1469,183 @@
</pre></pre></td>
</tr>
<tr>
<td>
Apr 2
6, 2020 02:54:33
PM
</td>
<td
class=
'linked'
test-id=
'
7
'
>
支付.分销码_切换为保险版会员类型并成功付款
</td>
<td>
Apr 2
7, 2020 05:12:55
PM
</td>
<td
class=
'linked'
test-id=
'
5
'
>
支付.分销码_切换为保险版会员类型并成功付款
</td>
<td><pre><pre>
java.lang.AssertionError: 会员类型切换:切换失败 expected [OK] but found [用户切换失败,请稍后再试]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.Pay.分销码_切换为保险版会员类型并成功付款(Pay.java:230)
at com.kjj.qa.cases.Pay.分销码_切换为保险版会员类型并成功付款(Pay.java:229)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></pre></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:55 PM
</td>
<td
class=
'linked'
test-id=
'11'
>
名片.获取用户版本
</td>
<td><pre><pre>
java.lang.AssertionError: 会员类型版本判断:判断错误,此版本为保险版 expected [1] but found [2]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:370)
at com.kjj.qa.cases.SellerCard.获取用户版本(SellerCard.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></pre></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:55 PM
</td>
<td
class=
'linked'
test-id=
'12'
>
名片.是否关注红号
</td>
<td><pre><pre>
java.lang.AssertionError: vip弹框判断错误 expected [false] but found [true]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:286)
at com.kjj.qa.cases.SellerCard.是否关注红号(SellerCard.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></pre></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:55 PM
</td>
<td
class=
'linked'
test-id=
'13'
>
名片.头部展示
</td>
<td><pre><pre>
java.lang.AssertionError: 获取用户失败 expected [Su Yi] but found [测试123]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.SellerCard.头部展示(SellerCard.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></pre></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:55 PM
</td>
<td
class=
'linked'
test-id=
'14'
>
名片.专业介绍
</td>
<td><pre><pre>
java.lang.AssertionError: 个人介绍-获取介绍不匹配 expected [我在行业内深耕多年,经验丰富,具备过硬的专业素质,深受客户喜爱和支持。] but found [我在行业内整挺好!]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertEquals(Assert.java:123)
at org.testng.Assert.assertEquals(Assert.java:176)
at com.kjj.qa.cases.SellerCard.专业介绍(SellerCard.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
</pre></pre></td>
</tr>
<tr>
<td>
Apr 27, 2020 05:12:56 PM
</td>
<td
class=
'linked'
test-id=
'15'
>
名片.获奖记录
</td>
<td><pre><pre>
java.lang.AssertionError: IDA认证匹配错误 expected [false] but found [true]
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:494)
at org.testng.Assert.assertFalse(Assert.java:63)
at com.kjj.qa.cases.SellerCard.获奖记录(SellerCard.java:145)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
@@ -1087,31 +1695,31 @@
<div
class=
'col s2'
>
<div
class=
'card-panel r'
>
Tests
<div
class=
'panel-lead'
>
9
</div>
<div
class=
'panel-lead'
>
16
</div>
</div>
</div>
<div
class=
'col s2'
>
<div
class=
'card-panel r'
>
Steps
<div
class=
'panel-lead'
>
9
</div>
<div
class=
'panel-lead'
>
16
</div>
</div>
</div>
<div
class=
'col s2'
>
<div
class=
'card-panel r'
>
Start
<div
class=
'panel-lead'
>
Apr 2
6, 2020 02:54:2
4 PM
</div>
<div
class=
'panel-lead'
>
Apr 2
7, 2020 05:12:4
4 PM
</div>
</div>
</div>
<div
class=
'col s2'
>
<div
class=
'card-panel r'
>
End
<div
class=
'panel-lead'
>
Apr 2
6, 2020 02:54:28
PM
</div>
<div
class=
'panel-lead'
>
Apr 2
7, 2020 05:12:55
PM
</div>
</div>
</div>
<div
class=
'col s2'
>
<div
class=
'card-panel r'
>
Time Taken
<div
class=
'panel-lead'
>
4,32
1ms
</div>
<div
class=
'panel-lead'
>
10,59
1ms
</div>
</div>
</div>
<div
class=
'col s4'
>
...
...
@@ -1127,14 +1735,8 @@
</tr>
<tr>
<td>
客集集-测试结果
</td>
<td>
6
</td>
<td>
5
</td>
<td>
0
</td>
</tr>
<tr>
<td>
首页
</td>
<td>
2
</td>
<td>
0
</td>
<td>
7
</td>
<td>
11
</td>
<td>
0
</td>
</tr>
<tr>
...
...
@@ -1143,6 +1745,12 @@
<td>
5
</td>
<td>
0
</td>
</tr>
<tr>
<td>
名片
</td>
<td>
3
</td>
<td>
6
</td>
<td>
0
</td>
</tr>
</table>
</div>
</div>
...
...
@@ -1156,22 +1764,22 @@
<script>
var
statusGroup
=
{
passParent
:
5
,
failParent
:
4
,
passParent
:
7
,
failParent
:
9
,
fatalParent
:
0
,
errorParent
:
0
,
warningParent
:
0
,
skipParent
:
0
,
exceptionsParent
:
4
,
exceptionsParent
:
9
,
passChild
:
5
,
failChild
:
4
,
passChild
:
7
,
failChild
:
9
,
fatalChild
:
0
,
errorChild
:
0
,
warningChild
:
0
,
skipChild
:
0
,
infoChild
:
0
,
exceptionsChild
:
4
,
exceptionsChild
:
9
,
passGrandChild
:
0
,
failGrandChild
:
0
,
...
...
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