Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
test_platform
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
Wallen姚文辉
test_platform
Commits
04fae16d
Commit
04fae16d
authored
Jun 04, 2024
by
Wallen姚文辉
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复一些问题
parent
4b5713de
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
204 deletions
+26
-204
Tool.py
controller/Tool.py
+25
-189
socketevent.py
controller/socketevent.py
+0
-14
mian.py
mian.py
+1
-1
No files found.
controller/Tool.py
View file @
04fae16d
...
...
@@ -196,69 +196,6 @@ def defaultCClist():
db
.
session
.
close
()
return
jsonify
({
"code"
:
200
,
"message"
:
"请求成功"
,
"data"
:
sqlOrmToJson
(
data
)}),
200
@
tool
.
route
(
'/testcase/uploadcase'
,
methods
=
[
"POST"
])
def
uplooadcase
():
data_
=
request
.
json
headers
=
getheader
(
session
.
get
(
"id"
))
id_
=
requests
.
request
(
"get"
,
jiraAddress
+
"/rest/agile/1.0/board?projectKeyOrId="
+
data_
.
get
(
"project"
),
headers
=
headers
)
.
json
()
.
get
(
"values"
)[
0
]
.
get
(
"id"
)
result
=
requests
.
request
(
"get"
,
jiraAddress
+
"/rest/greenhopper/1.0/xboard/plan/backlog/data.json?rapidViewId="
+
str
(
id_
),
headers
=
headers
)
.
json
()
projectId
,
projectkey
=
result
[
"projects"
][
0
][
"id"
],
result
[
"projects"
][
0
][
"key"
]
data
=
{
"fields"
:
{
"project"
:
{
"key"
:
projectkey
},
"summary"
:
"测试占位"
,
"description"
:
"文辉的测试"
,
"issuetype"
:
{
"name"
:
"测试用例"
},
}
}
result
=
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/api/2/issue/"
,
json
=
data
,
headers
=
headers
)
.
json
()
globalcaseId
=
result
[
"id"
]
file_path
=
par_path
+
'/uploadfile/'
+
data_
.
get
(
"file_name"
)
content
=
xmindparser
.
xmind_to_dict
(
file_path
)
def
a
(
suiteName
,
suiteId
,
info
,
new
,
type
):
for
each
in
info
:
oldinfo
,
newtype
=
deepcopy
(
new
),
type
if
not
((
each
[
"title"
])
==
"Map"
or
(
each
[
"title"
])
==
"测试用例"
or
(
each
[
"title"
])
==
"sheet"
or
(
each
[
"title"
])
==
"思维导图"
or
(
each
[
"title"
])
==
"逻辑图"
or
(
each
[
"title"
])
==
"括号图"
or
"画布"
in
(
each
[
"title"
])):
if
not
suiteName
:
suiteName
=
each
.
get
(
"title"
)
params
=
{
"tcIssueId"
:
globalcaseId
,
"projectId"
:
projectId
,
"sourcePage"
:
"TEST_SUITE_TEST_CASE_PAGE"
,
"decorator"
:
"dialog"
,
"inline"
:
True
}
requests
.
request
(
"post"
,
jiraAddress
+
"/secure/CreateTestSuite.jspa?projectId="
+
str
(
projectId
),
data
=
{
"inline"
:
True
,
"decorator"
:
"dialog"
,
"testSuiteName"
:
suiteName
},
headers
=
headers
)
text
=
requests
.
request
(
"get"
,
jiraAddress
+
"/secure/ShowLinkTestSuiteInPanel.jspa"
,
params
=
params
,
headers
=
headers
)
.
content
soup
=
BeautifulSoup
(
text
,
"html.parser"
)
suiteId
=
soup
.
find
(
"strong"
,
string
=
suiteName
)
.
parent
.
find
(
"input"
)
.
attrs
.
get
(
"value"
)
if
type
==
"name"
:
string
=
each
.
get
(
"title"
)
if
"tc:"
in
each
.
get
(
"title"
)
or
"tc:"
in
each
.
get
(
"title"
)
or
"tc:"
in
each
.
get
(
"title"
):
string
,
newtype
=
each
.
get
(
"title"
)
.
replace
(
"tc:"
,
""
)
.
replace
(
"tc:"
,
""
)
.
replace
(
"tc:"
,
""
),
"step"
oldinfo
[
"name"
]
=
oldinfo
.
get
(
"name"
)
and
oldinfo
.
get
(
"name"
)
+
"->"
+
string
or
string
elif
type
==
"step"
:
newtype
,
oldinfo
[
"step"
]
=
"expect"
,
each
.
get
(
"title"
)
else
:
oldinfo
[
"expect"
]
=
each
.
get
(
"title"
)
if
each
.
get
(
"topic"
)
or
each
.
get
(
"topics"
):
each
.
get
(
"topic"
)
and
a
(
suiteName
,
suiteId
,[
each
.
get
(
"topic"
)],
oldinfo
,
newtype
)
each
.
get
(
"topics"
)
and
a
(
suiteName
,
suiteId
,
each
.
get
(
"topics"
),
oldinfo
,
newtype
)
else
:
testId
=
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/api/2/issue/"
,
json
=
{
"fields"
:
{
"project"
:
{
"key"
:
projectkey
},
"summary"
:
oldinfo
[
"name"
],
"issuetype"
:
{
"name"
:
"测试用例"
},
}
},
headers
=
headers
)
.
json
()[
"id"
]
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/synapse/1.0/testStep/addTestStep"
,
json
=
{
"tcId"
:
testId
,
"step"
:
oldinfo
.
get
(
"step"
),
"expectedResult"
:
oldinfo
.
get
(
"expect"
),
"sequenceNumber"
:
None
},
headers
=
headers
)
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/synapse/latest/testSuite/addTestCaseMemberToTestSuites"
,
json
=
{
"testSuiteIds"
:[
suiteId
],
"testCaseId"
:
testId
},
headers
=
headers
)
a
(
None
,
None
,
content
,{},
"name"
)
requests
.
request
(
"delete"
,
jiraAddress
+
"/rest/api/2/issue/"
+
globalcaseId
,
headers
=
headers
)
os
.
remove
(
file_path
)
return
jsonify
({
"code"
:
200
,
"message"
:
"用例创建成功"
}),
200
@
tool
.
route
(
'/testcase/uploadhistory'
,
methods
=
[
"GET"
])
def
uploadhistory
():
...
...
@@ -297,13 +234,8 @@ def run():
upid
=
a
.
id
db
.
session
.
commit
()
db
.
session
.
close
()
# h=Thread(target=runstart,args=(current_app._get_current_object(),file_name,request.form.get("project"),upid,session.get("id")))
# h.start()
# server.socketio.start_background_task(runstart,current_app._get_current_object(),file_name,request.form.get("project"),upid,session.get("id"))
# server.socketio.emit("www",room=)
from
controller.socketevent
import
target
print
(
target
)
emit
(
"www"
,
to
=
target
,
namespace
=
'/'
)
server
.
socketio
.
start_background_task
(
runstart
,
current_app
.
_get_current_object
(),
file_name
,
request
.
form
.
get
(
"project"
),
upid
,
session
.
get
(
"id"
))
server
.
socketio
.
emit
(
"infoupdate"
,
room
=
upid
)
return
jsonify
({
"code"
:
200
,
"message"
:
"上传成功"
}),
200
def
runstart
(
app
,
file_name
,
project
,
upid
,
user_id
):
...
...
@@ -323,10 +255,10 @@ def runstart(app,file_name,project,upid,user_id):
},
}
}
case_count
=
[
0
]
result
=
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/api/2/issue/"
,
json
=
data
,
headers
=
headers
)
.
json
()
globalcaseId
=
result
[
"id"
]
def
up
(
suiteName
,
suiteId
,
info
,
new
,
type
):
sums
=
0
for
each
in
info
:
oldinfo
,
newtype
=
deepcopy
(
new
),
type
if
not
((
each
[
"title"
])
==
"Map"
or
(
each
[
"title"
])
==
"测试用例"
or
(
each
[
"title"
])
==
"sheet"
or
(
each
[
"title"
])
==
"思维导图"
or
(
each
[
"title"
])
==
"逻辑图"
or
(
each
[
"title"
])
==
"括号图"
or
"画布"
in
(
each
[
"title"
])):
...
...
@@ -347,8 +279,8 @@ def runstart(app,file_name,project,upid,user_id):
else
:
oldinfo
[
"expect"
]
=
each
.
get
(
"title"
)
if
each
.
get
(
"topic"
)
or
each
.
get
(
"topics"
):
each
.
get
(
"topic"
)
and
up
(
suiteName
,
suiteId
,[
each
.
get
(
"topic"
)],
oldinfo
,
newtype
)
each
.
get
(
"topics"
)
and
up
(
suiteName
,
suiteId
,
each
.
get
(
"topics"
),
oldinfo
,
newtype
)
sums
=
sums
+
(
each
.
get
(
"topic"
)
and
up
(
suiteName
,
suiteId
,[
each
.
get
(
"topic"
)],
oldinfo
,
newtype
)
or
0
)
sums
=
sums
+
(
each
.
get
(
"topics"
)
and
up
(
suiteName
,
suiteId
,
each
.
get
(
"topics"
),
oldinfo
,
newtype
)
or
0
)
else
:
testId
=
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/api/2/issue/"
,
json
=
{
"fields"
:
{
"project"
:
{
...
...
@@ -362,7 +294,8 @@ def runstart(app,file_name,project,upid,user_id):
},
headers
=
headers
)
.
json
()[
"id"
]
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/synapse/1.0/testStep/addTestStep"
,
json
=
{
"tcId"
:
testId
,
"step"
:
oldinfo
.
get
(
"step"
),
"expectedResult"
:
oldinfo
.
get
(
"expect"
),
"sequenceNumber"
:
None
},
headers
=
headers
)
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/synapse/latest/testSuite/addTestCaseMemberToTestSuites"
,
json
=
{
"testSuiteIds"
:[
suiteId
],
"testCaseId"
:
testId
},
headers
=
headers
)
case_count
[
0
]
=+
case_count
[
0
]
return
1
return
sums
def
relevancycase
(
pro
):
id_
=
requests
.
request
(
"get"
,
jiraAddress
+
"/rest/agile/1.0/board?projectKeyOrId="
+
pro
,
headers
=
headers
)
.
json
()
.
get
(
"values"
)[
0
]
.
get
(
"id"
)
...
...
@@ -386,134 +319,37 @@ def runstart(app,file_name,project,upid,user_id):
db
.
session
.
commit
()
server
.
socketio
.
emit
(
"infoupdate"
,
room
=
a
.
id
)
content
=
xmindparser
.
xmind_to_dict
(
par_path
+
"/uploadfile/"
+
file_name
)
#
try:
up
(
None
,
None
,
content
,{},
"name"
)
requests
.
request
(
"delete"
,
jiraAddress
+
"/rest/api/2/issue/"
+
globalcaseId
,
headers
=
headers
)
a
.
step
=
2
a
.
stepstatus
=
0
a
.
case_count
=
case_count
[
0
]
db
.
session
.
commit
()
server
.
socketio
.
send
(
"infoupdate"
,
room
=
a
.
id
)
#
except:
#
a.stepstatus=1
#
a.status=1
# a.case_count=case_count
#
db.session.commit()
#
server.socketio.emit("infoupdate",room=a.id)
#
db.session.close()
#
return
try
:
sums
=
up
(
None
,
None
,
content
,{},
"name"
)
requests
.
request
(
"delete"
,
jiraAddress
+
"/rest/api/2/issue/"
+
globalcaseId
,
headers
=
headers
)
a
.
step
=
2
a
.
stepstatus
=
0
a
.
case_count
=
sums
db
.
session
.
commit
()
server
.
socketio
.
emit
(
"infoupdate"
,
room
=
a
.
id
)
except
:
a
.
stepstatus
=
1
a
.
status
=
1
a
.
case_count
=
sums
db
.
session
.
commit
()
server
.
socketio
.
emit
(
"infoupdate"
,
room
=
a
.
id
)
db
.
session
.
close
()
return
try
:
relevancycase
(
project
)
a
.
step
=
3
a
.
stepstatus
=
2
a
.
status
=
1
db
.
session
.
commit
()
server
.
socketio
.
send
(
"infoupdate"
,
room
=
a
.
id
)
server
.
socketio
.
emit
(
"infoupdate"
,
room
=
a
.
id
)
except
:
a
.
stepstatus
=
1
a
.
status
=
1
db
.
session
.
commit
()
server
.
socketio
.
send
(
"infoupdate"
,
room
=
a
.
id
)
server
.
socketio
.
emit
(
"infoupdate"
,
room
=
a
.
id
)
db
.
session
.
close
()
import
os
import
requests
from
urllib.parse
import
urlparse
def
download_file
(
url
):
response
=
requests
.
get
(
url
,
stream
=
True
)
response
.
raise_for_status
()
download_dir
=
'./upload'
os
.
makedirs
(
download_dir
,
exist_ok
=
True
)
file_name
=
os
.
path
.
basename
(
urlparse
(
url
)
.
path
)
file_path
=
os
.
path
.
join
(
download_dir
,
file_name
)
with
open
(
file_path
,
'wb'
)
as
file
:
for
chunk
in
response
.
iter_content
(
chunk_size
=
8192
):
if
chunk
:
file
.
write
(
chunk
)
return
file_path
def
uploadcase
(
project
,
file_path
,
headers
):
id_
=
requests
.
request
(
"get"
,
jiraAddress
+
"/rest/agile/1.0/board?projectKeyOrId="
+
project
,
headers
=
headers
)
.
json
()
.
get
(
"values"
)[
0
]
.
get
(
"id"
)
result
=
requests
.
request
(
"get"
,
jiraAddress
+
"/rest/greenhopper/1.0/xboard/plan/backlog/data.json?rapidViewId="
+
str
(
id_
),
headers
=
headers
)
.
json
()
projectId
,
projectkey
=
result
[
"projects"
][
0
][
"id"
],
result
[
"projects"
][
0
][
"key"
]
data
=
{
"fields"
:
{
"project"
:
{
"key"
:
projectkey
},
"summary"
:
"测试占位"
,
"description"
:
"文辉的测试"
,
"issuetype"
:
{
"name"
:
"测试用例"
},
}
}
result
=
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/api/2/issue/"
,
json
=
data
,
headers
=
headers
)
.
json
()
globalcaseId
=
result
[
"id"
]
content
=
xmindparser
.
xmind_to_dict
(
file_path
)
def
a
(
suiteName
,
suiteId
,
info
,
new
,
type
):
for
each
in
info
:
oldinfo
,
newtype
=
deepcopy
(
new
),
type
if
not
((
each
[
"title"
])
==
"Map"
or
(
each
[
"title"
])
==
"测试用例"
or
(
each
[
"title"
])
==
"sheet"
or
(
each
[
"title"
])
==
"思维导图"
or
(
each
[
"title"
])
==
"逻辑图"
or
(
each
[
"title"
])
==
"括号图"
or
"画布"
in
(
each
[
"title"
])):
if
not
suiteName
:
suiteName
=
each
.
get
(
"title"
)
params
=
{
"tcIssueId"
:
globalcaseId
,
"projectId"
:
projectId
,
"sourcePage"
:
"TEST_SUITE_TEST_CASE_PAGE"
,
"decorator"
:
"dialog"
,
"inline"
:
True
}
requests
.
request
(
"post"
,
jiraAddress
+
"/secure/CreateTestSuite.jspa?projectId="
+
str
(
projectId
),
data
=
{
"inline"
:
True
,
"decorator"
:
"dialog"
,
"testSuiteName"
:
suiteName
},
headers
=
headers
)
text
=
requests
.
request
(
"get"
,
jiraAddress
+
"/secure/ShowLinkTestSuiteInPanel.jspa"
,
params
=
params
,
headers
=
headers
)
.
content
soup
=
BeautifulSoup
(
text
,
"html.parser"
)
suiteId
=
soup
.
find
(
"strong"
,
string
=
suiteName
)
.
parent
.
find
(
"input"
)
.
attrs
.
get
(
"value"
)
if
type
==
"name"
:
string
=
each
.
get
(
"title"
)
if
"tc:"
in
each
.
get
(
"title"
)
or
"tc:"
in
each
.
get
(
"title"
)
or
"tc:"
in
each
.
get
(
"title"
):
string
,
newtype
=
each
.
get
(
"title"
)
.
replace
(
"tc:"
,
""
)
.
replace
(
"tc:"
,
""
)
.
replace
(
"tc:"
,
""
),
"step"
oldinfo
[
"name"
]
=
oldinfo
.
get
(
"name"
)
and
oldinfo
.
get
(
"name"
)
+
"->"
+
string
or
string
elif
type
==
"step"
:
newtype
,
oldinfo
[
"step"
]
=
"expect"
,
each
.
get
(
"title"
)
else
:
oldinfo
[
"expect"
]
=
each
.
get
(
"title"
)
if
each
.
get
(
"topic"
)
or
each
.
get
(
"topics"
):
each
.
get
(
"topic"
)
and
a
(
suiteName
,
suiteId
,[
each
.
get
(
"topic"
)],
oldinfo
,
newtype
)
each
.
get
(
"topics"
)
and
a
(
suiteName
,
suiteId
,
each
.
get
(
"topics"
),
oldinfo
,
newtype
)
else
:
testId
=
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/api/2/issue/"
,
json
=
{
"fields"
:
{
"project"
:
{
"key"
:
projectkey
},
"summary"
:
oldinfo
[
"name"
],
"issuetype"
:
{
"name"
:
"测试用例"
},
}
},
headers
=
headers
)
.
json
()[
"id"
]
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/synapse/1.0/testStep/addTestStep"
,
json
=
{
"tcId"
:
testId
,
"step"
:
oldinfo
.
get
(
"step"
),
"expectedResult"
:
oldinfo
.
get
(
"expect"
),
"sequenceNumber"
:
None
},
headers
=
headers
)
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/synapse/latest/testSuite/addTestCaseMemberToTestSuites"
,
json
=
{
"testSuiteIds"
:[
suiteId
],
"testCaseId"
:
testId
},
headers
=
headers
)
a
(
None
,
None
,
content
,{},
"name"
)
requests
.
request
(
"delete"
,
jiraAddress
+
"/rest/api/2/issue/"
+
globalcaseId
,
headers
=
headers
)
os
.
remove
(
file_path
)
def
relevancycase
(
project
,
headers
):
id_
=
requests
.
request
(
"get"
,
jiraAddress
+
"/rest/agile/1.0/board?projectKeyOrId="
+
project
,
headers
=
headers
)
.
json
()
.
get
(
"values"
)[
0
]
.
get
(
"id"
)
result
=
requests
.
request
(
"get"
,
jiraAddress
+
"/rest/greenhopper/1.0/xboard/plan/backlog/data.json?rapidViewId="
+
str
(
id_
),
headers
=
headers
)
.
json
()
projectkey
=
result
[
"projects"
][
0
][
"key"
]
result
=
requests
.
request
(
"get"
,
jiraAddress
+
"/rest/greenhopper/1.0/xboard/plan/backlog/data.json?rapidViewId="
+
str
(
id_
)
+
"&selectedProjectKey="
+
projectkey
,
headers
=
headers
)
.
json
()
all
,
type_
,
storyids
=
result
.
get
(
"issues"
),{},{}
for
k
,
v
in
result
[
"entityData"
][
"types"
]
.
items
():
type_
[
str
(
k
)]
=
v
[
"typeName"
]
[
storyids
.
update
({
i
.
get
(
"key"
):[]})
for
i
in
list
(
filter
(
lambda
x
:
type_
[
x
[
"typeId"
]]
==
"Story"
,
all
))]
for
item
in
list
(
filter
(
lambda
x
:
type_
[
x
[
"typeId"
]]
==
"测试用例"
,
all
)):
for
each
in
storyids
.
keys
():
each
in
item
.
get
(
"summary"
)
and
storyids
[
each
]
.
append
(
item
.
get
(
"key"
))
for
k
,
v
in
storyids
.
items
():
requests
.
request
(
"post"
,
jiraAddress
+
"/rest/synapse/latest/requirementTestCase/addTestCase"
,
headers
=
headers
,
json
=
{
"currentReqkey"
:
k
,
"testCaseKeys"
:
v
,
"history"
:
"yes"
})
def
run
(
url
,
project
):
headers
=
{
"Authorization"
:
"Basic "
+
base64
.
b64encode
((
"username:password"
)
.
encode
(
'utf-8'
))
.
decode
(),
"accept"
:
"application/json,text/javascript,*/*;q=0.01"
}
file_path
=
download_file
(
url
)
controller/socketevent.py
View file @
04fae16d
from
manager.serverCenter
import
server
from
flask_socketio
import
join_room
,
leave_room
from
flask
import
request
target
=
None
@
server
.
socketio
.
on
(
"connect"
)
def
on_connect
():
global
target
target
=
request
.
sid
@
server
.
socketio
.
on
(
'join'
)
def
on_join
(
data
):
print
(
"我加入了房间"
)
print
(
data
)
join_room
(
data
)
@
server
.
socketio
.
on
(
'leave'
)
def
on_leave
(
data
):
print
(
"我离开了房间"
)
print
(
data
)
leave_room
(
data
)
mian.py
View file @
04fae16d
...
...
@@ -77,7 +77,7 @@ if __name__ == '__main__':
server
.
app
.
register_blueprint
(
notoken
)
# server.app.run(host="0.0.0.0", port=8000, debug=True)
server
.
socketio
.
run
(
server
.
app
,
host
=
"0.0.0.0"
,
port
=
8000
,
debug
=
True
)
server
.
socketio
.
run
(
server
.
app
,
host
=
"0.0.0.0"
,
port
=
8000
,
debug
=
True
,
allow_unsafe_werkzeug
=
True
)
...
...
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