Commit 7042130b authored by Wallen姚文辉's avatar Wallen姚文辉

暂存加审核

parent 45cbba8f
...@@ -4,7 +4,7 @@ import time ...@@ -4,7 +4,7 @@ import time
import uuid import uuid
from flask import Blueprint, request, jsonify,session,current_app from flask import Blueprint, request, jsonify,session,current_app
from manager.serverCenter import server from manager.serverCenter import server
from model.Model import User,Emails,Uploadecase from model.Model import User,Emails,Uploadecase,Testreport,Audituser
import base64 import base64
import requests import requests
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
...@@ -14,6 +14,8 @@ from copy import deepcopy ...@@ -14,6 +14,8 @@ from copy import deepcopy
from manager.tools import par_path from manager.tools import par_path
from threading import Thread from threading import Thread
from flask_socketio import emit,send from flask_socketio import emit,send
from sqlalchemy.sql import alias
from sqlalchemy import func
db=server.db db=server.db
tool = Blueprint("tools", __name__, url_prefix='/tool') tool = Blueprint("tools", __name__, url_prefix='/tool')
...@@ -134,7 +136,7 @@ def reportinfo(): ...@@ -134,7 +136,7 @@ def reportinfo():
continue continue
elif "【前端】" in m.get("summary"): elif "【前端】" in m.get("summary"):
peoples["qian"].append(k) peoples["qian"].append(k)
elif "【后端】" in m.get("summary"): elif "【后端】" in m.get("summary") or "【算法】" in m.get("summary"):
peoples["hou"].append(k) peoples["hou"].append(k)
elif ("测试" in m.get("summary") or "用例" in m.get("summary")): elif ("测试" in m.get("summary") or "用例" in m.get("summary")):
peoples["test"].append(k) peoples["test"].append(k)
...@@ -428,36 +430,6 @@ def test(): ...@@ -428,36 +430,6 @@ def test():
a=server.auto_jenkins.get_job_info('app自动化测试',8) a=server.auto_jenkins.get_job_info('app自动化测试',8)
return jsonify({"code": 200, "message": "请求成功","data":a}),200 return jsonify({"code": 200, "message": "请求成功","data":a}),200
# @tool.route('/testport/getapitestinfo', methods=["POST"])
# def getapitestinfo():
# info=request.json.get("data")
# try:
# runinfo={"运行列表":[]}
# soup=BeautifulSoup(info,"html.parser")
# a=soup.find(class_="container")
# path=lambda x:f'div[class="card"]>div[class="card-body"]>div[class="row"]>div:-soup-contains("{x}")+div'
# onlyinfolist=["测试场景","运行时间","总耗时","总返回数据","接口请求耗时","平均接口请求耗时","通过率","失败率","未测率"]
# twoinfolist=["循环数","HTTP 接口请求数","断言数"]
# [runinfo.update({i:soup.select(path(i))[0].text}) for i in onlyinfolist]
# [runinfo.update({i:[soup.select(path(i))[0].text,soup.select(path(i)+'+div')[0].text]}) for i in twoinfolist]
# for each in a.select("div[class='']>div[class='collapse']>div[class='']"):
# this={"step":[]}
# k=each.find_all('div',recursive=False)
# this["name"]=k[0].text.strip()
# for item in k[1].find_all('div',recursive=False):
# stepinfo={"断言详情":[]}
# stepinfo["name"]=item.find('h5').text.strip()
# onlyinfolist=["Method","URL","耗时","返回数据","HTTP 状态码","断言通过数","断言失败数"]
# path=lambda x:f'div[class="card-body"]>div>div[class="row"]>div:-soup-contains("{x}")+div'
# [stepinfo.update({i:item.select(path(i))[0].text}) for i in onlyinfolist]
# stepinfo["断言详情"].append(list(map(lambda x:x.text.strip(),item.select('div[class="card-body"]>div>div[class="row"]>div:-soup-contains("断言详情")+div>table>tbody>tr>td'))))
# this["step"].append(stepinfo)
# runinfo["运行列表"].append(this)
# return jsonify({"code": 200, "message": "请求成功","data":runinfo}),200
# except:
# return jsonify({"code": 403, "message": "文件内容有误,请确认"}),403
def updateapitoken(): def updateapitoken():
user,password='wallen.ywh@galaxyoversea.com','ywh940509' user,password='wallen.ywh@galaxyoversea.com','ywh940509'
global apifox_token global apifox_token
...@@ -486,7 +458,131 @@ def getapitestinfo(): ...@@ -486,7 +458,131 @@ def getapitestinfo():
return jsonify({"code": 503, "message": "读取项目权限不够,请联系开发配置访问账号权限"}),503 return jsonify({"code": 503, "message": "读取项目权限不够,请联系开发配置访问账号权限"}),503
@tool.route('/testport/staging', methods=["POST"])
def staging():
info=request.json.get("report_data")
if not info:
return jsonify({"code": 401, "message": "缺少存储数据"}),401
create_time=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
if db.session.query(Testreport).filter(Testreport.create_user==session.get("id"),Testreport.report_data==info).count()>0:
db.session.close()
return jsonify({"code": 503, "message": "已存储相同数据"}),503
insert=Testreport(create_time=create_time,update_time=create_time,create_user=session.get("id"),project=request.json.get("project"),story=request.json.get("sprint"),save_remark=request.json.get("save_remark"),type=request.json.get("type"),report_status=request.json.get("report_status"),report_data=request.json.get("report_data"))
db.session.add(insert)
db.session.commit()
db.session.close()
return jsonify({"code": 200, "message": "保存成功"}),200
@tool.route('/testport/updatereport', methods=["POST"])
def updatereport():
if not request.json.get("report_data"):
return jsonify({"code": 401, "message": "缺少存储数据"}),401
updateinfo=request.json
updateinfo.update({"update_time":time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))})
updateinfo["story"]=updateinfo["sprint"]
del updateinfo["sprint"]
db.session.query(Testreport).filter_by(id=request.json.get("id")).update(updateinfo)
db.session.commit()
db.session.close()
return jsonify({"code": 200, "message": "更新成功"}),200
@tool.route('/testport/reportlist', methods=["GET"])
def reportlist():
data=request.args
page_size = int(data.get("page_size"))
page_num = int(data.get("page_num"))
res=db.session.query(Testreport.id,Testreport.project,Testreport.story,Testreport.save_remark,func.date_format(Testreport.update_time, "%Y-%m-%d %H:%i:%s").label('update_time'),Testreport.report_status).filter(Testreport.create_user==session.get("id"),Testreport.type==0)
if data.get("project"):
res=res.filter(Testreport.project.like("%"+data.get("project")+"%"))
if data.get("story"):
res=res.filter(Testreport.project.like("%"+data.get("story")+"%"))
if data.get("remark"):
res=res.filter(Testreport.project.like("%"+data.get("remark")+"%"))
res=res.order_by(Testreport.report_status.asc(),Testreport.update_time.desc())
result=res.paginate(page=page_num, per_page=page_size)
total_sum = result.total
res = result.items
db.session.close()
return jsonify({"code": 200, "message": "请求成功", "data": {"rows": sqlOrmToJson(res), "total": total_sum}})
@tool.route('/testport/reportauditlist', methods=["GET"])
def reportauditlist():
data=request.args
page_size = int(data.get("page_size"))
page_num = int(data.get("page_num"))
users=alias(User,'users')
auditors=alias(User,'auditors')
if (db.session.query(Audituser).filter_by(user_id=session.get("id")).count()==1):
res=db.session.query(Testreport.id,Testreport.project,Testreport.story,Testreport.audit_remark,func.date_format(Testreport.create_time, "%Y-%m-%d %H:%i:%s").label('create_time'),Testreport.create_user,users.c.name.label('create_user_name'),func.date_format(Testreport.audit_time, "%Y-%m-%d %H:%i:%s").label('audit_time'),Testreport.audit_user,auditors.c.name.label('audit_user_name'),Testreport.audit_status,Testreport.report_status).join(users,users.c.id==Testreport.create_user,isouter=True).join(auditors,auditors.c.id==Testreport.audit_user,isouter=True).filter(Testreport.type==1)
else:
res=db.session.query(Testreport.id,Testreport.project,Testreport.story,Testreport.audit_remark,func.date_format(Testreport.create_time, "%Y-%m-%d %H:%i:%s").label('create_time'),Testreport.create_user,users.c.name.label('create_user_name'),func.date_format(Testreport.audit_time, "%Y-%m-%d %H:%i:%s").label('audit_time'),Testreport.audit_user,auditors.c.name.label('audit_user_name'),Testreport.audit_status,Testreport.report_status).join(users,users.c.id==Testreport.create_user,isouter=True).join(auditors,auditors.c.id==Testreport.audit_user,isouter=True).filter(Testreport.create_user==session.get("id"),Testreport.type==1)
if data.get("project"):
res=res.filter(Testreport.project.like("%"+data.get("project")+"%"))
if data.get("story"):
res=res.filter(Testreport.project.like("%"+data.get("story")+"%"))
if data.get("remark"):
res=res.filter(Testreport.project.like("%"+data.get("remark")+"%"))
res=res.order_by(Testreport.audit_status.asc(),Testreport.create_time.desc())
result=res.paginate(page=page_num, per_page=page_size)
total_sum = result.total
res = result.items
db.session.close()
return jsonify({"code": 200, "message": "请求成功", "data": {"rows": sqlOrmToJson(res), "total": total_sum}})
@tool.route('/testport/setauditor', methods=["POST"])
def setauditor():
ids=request.json.get("ids")
res=db.session.query(Audituser.user_id).all()
oldids=map(lambda x:x.user_id,res)
adds=[i for i in ids if i not in oldids]
dels=[i for i in oldids if i not in ids]
db.session.query(Audituser).filter(Audituser.user_id.in_(dels)).delete()
[db.session.add(Audituser(user_id=i)) for i in adds]
db.session.commit()
db.session.close()
return jsonify({"code": 200, "message": "更新成功"})
@tool.route('/testport/getauditors', methods=["GET"])
def getauditors():
res=db.session.query(User.id,User.name).filter(Audituser.user_id==User.id).all()
res=list(map(lambda x:x.id,res))
db.session.close()
return jsonify({"code": 200, "message": "请求成功", "data": res})
@tool.route('/testport/audit', methods=["POST"])
def audit():
if db.session.query(Audituser).filter_by(user_id=session.get("id")).count()!=1:
db.session.close()
return jsonify({"code": 403, "message": "你无权操作"}),403
db.session.query(Testreport).filter(Testreport.id==request.json.get("id")).update(request.json)
db.session.commit()
db.session.close()
return jsonify({"code": 200, "message": "操作成功"})
@tool.route('/testport/getreport/<id_>', methods=["GET"])
def getreport(id_):
res=db.session.query(Testreport.report_data,Testreport.type,Testreport.audit_status,Testreport.save_remark,Testreport.create_user).filter_by(id=id_).first()
self_=res.create_user==session.get("id") and True or False
db.session.close()
res=sqlOrmToJson(res)
del res["create_user"]
res["self"]=self_
return jsonify({"code": 200, "message": "请求成功", "data": res})
@tool.route('/testport/delreport/<id_>', methods=["DELETE"])
def delreport(id_):
res=db.session.query(Testreport).filter_by(id=id_)
if res.first().create_user!=session.get("id"):
db.session.close()
return jsonify({"code": 403, "message": "你无权操作"}),403
res.delete()
db.session.commit()
db.session.close()
return jsonify({"code": 200, "message": "删除成功"})
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment