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
ad51b4a2
Commit
ad51b4a2
authored
Apr 27, 2020
by
Su-Yi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新网络框架、钉钉机器人、名片
parent
ba57991d
Changes
8
Hide 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 @
ad51b4a2
...
...
@@ -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 @
ad51b4a2
...
...
@@ -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 @
ad51b4a2
...
...
@@ -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 @
ad51b4a2
...
...
@@ -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 @
ad51b4a2
...
...
@@ -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 @
ad51b4a2
package
com
.
kjj
.
qa
.
utils
;
import
com.kjj.qa.services.NetworkOperation
;
public
final
class
KjyUtil
{
}
src/test/testNG.xml
View file @
ad51b4a2
<?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 @
ad51b4a2
...
...
@@ -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