Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
泰斯特Test
Taisite-Platform
提交
9f7135a2
T
Taisite-Platform
项目概览
泰斯特Test
/
Taisite-Platform
10 个月 前同步成功
通知
121
Star
28
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Taisite-Platform
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9f7135a2
编写于
10月 31, 2020
作者:
泰斯特Test
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[feat]新增get_test_report_excel_bytes_io方法
上级
ff64f9af
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
75 addition
and
0 deletion
+75
-0
backend/models/testReport.py
backend/models/testReport.py
+75
-0
未找到文件。
backend/models/testReport.py
浏览文件 @
9f7135a2
...
...
@@ -3,6 +3,44 @@
from
app
import
db
from
utils.mango
import
*
from
utils
import
common
import
xlsxwriter
from
io
import
BytesIO
import
ast
import
datetime
from
bson
import
ObjectId
test_report_summary_map
=
{
'projectName'
:
'测试项目'
,
'testDomain'
:
'测试环境'
,
'testCount'
:
'用例总数'
,
'passCount'
:
'通过数'
,
'failedCount'
:
'失败数'
,
'passRate'
:
'通过率'
,
'comeFrom'
:
'报告来源'
,
'executorNickName'
:
'执行人'
,
'createAt'
:
'生成时间'
,
'totalTestSpendingTimeInSec'
:
'总耗时/s'
}
# 使用 dic_get 定位数据
test_report_detail_map
=
{
"['testBaseInfo', 'name']"
:
'用例名称'
,
"['testBaseInfo', 'requestMethod']"
:
'请求方法'
,
"['testBaseInfo', 'url']"
:
'请求地址'
,
"['testBaseInfo', 'headers']"
:
'请求头'
,
"['testBaseInfo', 'cookies']"
:
'请求Cookie'
,
"['testBaseInfo', 'presendParams']"
:
'请求参数'
,
"['testBaseInfo', 'checkHttpCode']"
:
'状态码校验'
,
"['responseHttpStatusCode']"
:
'实际状态码'
,
"['testBaseInfo', 'checkResponseData']"
:
'数据校验'
,
"['testBaseInfo', 'checkResponseNumber']"
:
'数值校验'
,
"['testBaseInfo', 'checkResponseSimilarity']"
:
'相似度校验'
,
"['responseData']"
:
'实际数据'
,
"['testConclusion']"
:
'测试结论'
,
"['testStartTime']"
:
'测试开始时间'
,
"['spendingTimeInSec']"
:
'测试耗时/s'
,
}
# 类名定义 collection
...
...
@@ -31,6 +69,43 @@ class TestReport(Model):
executorNickName
=
StringField
()
cronId
=
StringField
()
@
classmethod
def
get_test_report_excel_bytes_io
(
cls
,
report_id
):
test_report
=
cls
.
find_one
({
'_id'
:
ObjectId
(
report_id
)})
test_report
=
common
.
format_response_in_dic
(
test_report
)
bytes_io
=
BytesIO
()
workbook
=
xlsxwriter
.
Workbook
(
bytes_io
,
{
'in_memory'
:
True
})
summary_sheet
=
workbook
.
add_worksheet
(
u
'测试报告概览'
)
detail_sheet
=
workbook
.
add_worksheet
(
u
'测试报告详情'
)
# 测试报告概览表头
for
index
,
value
in
enumerate
(
test_report_summary_map
.
values
()):
summary_sheet
.
write
(
0
,
index
,
value
)
# 测试报告概览数据
for
index
,
value
in
enumerate
(
test_report_summary_map
.
keys
()):
summary_sheet
.
write
(
1
,
index
,
str
(
test_report
.
get
(
value
,
'(暂无此数据)'
)))
test_details
=
test_report
[
'testDetail'
]
# 测试报告详情表头
for
index
,
value
in
enumerate
(
test_report_detail_map
.
values
()):
detail_sheet
.
write
(
0
,
index
,
value
)
# 测试报告详情数据
for
index
,
locator
in
enumerate
(
test_report_detail_map
.
keys
()):
locator
=
ast
.
literal_eval
(
locator
)
for
col_index
,
detail
in
enumerate
(
test_details
):
detail_sheet
.
write
(
col_index
+
1
,
index
,
str
(
common
.
dict_get
(
detail
,
locator
)))
workbook
.
close
()
bytes_io
.
seek
(
0
)
return
bytes_io
def
__str__
(
self
):
return
"createAt:{}"
\
.
format
(
self
.
createAt
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录