Skip to content

Commit

Permalink
2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Louis-me committed Jun 9, 2018
1 parent 8389fc4 commit c66c55b
Show file tree
Hide file tree
Showing 115 changed files with 1,059 additions and 1,671 deletions.
2 changes: 1 addition & 1 deletion .idea/auto_http34_test.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

722 changes: 282 additions & 440 deletions .idea/workspace.xml

Large diffs are not rendered by default.

18 changes: 0 additions & 18 deletions BLL/BexcelReport.py

This file was deleted.

9 changes: 0 additions & 9 deletions BLL/BgetEmail.py

This file was deleted.

15 changes: 0 additions & 15 deletions BLL/Bhttpbase.py

This file was deleted.

4 changes: 0 additions & 4 deletions BLL/Bresult.py

This file was deleted.

5 changes: 0 additions & 5 deletions BLL/BresultDetail.py

This file was deleted.

6 changes: 0 additions & 6 deletions BLL/BsendEmail.py

This file was deleted.

1 change: 0 additions & 1 deletion BLL/__init__.py

This file was deleted.

Binary file removed BLL/__pycache__/BexcelReport.cpython-34.pyc
Binary file not shown.
Binary file removed BLL/__pycache__/BgetEmail.cpython-34.pyc
Binary file not shown.
Binary file removed BLL/__pycache__/Bhttpbase.cpython-34.pyc
Binary file not shown.
Binary file removed BLL/__pycache__/Bresult.cpython-34.pyc
Binary file not shown.
Binary file removed BLL/__pycache__/BresultDetail.cpython-34.pyc
Binary file not shown.
Binary file removed BLL/__pycache__/BsendEmail.cpython-34.pyc
Binary file not shown.
Binary file removed BLL/__pycache__/__init__.cpython-34.pyc
Binary file not shown.
17 changes: 17 additions & 0 deletions Base/BaseElementEnmu.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import os

PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
)


class Element(object):
INFO_FILE = PATH("../Log/info.pickle") # 记录结果
REPORT_FILE = PATH("../Report/Report.xlsx") # 测试报告
API_FILE = PATH("../Report/api.xlsx") # 用例文件
PICT_PARAM = PATH("../Log/param.txt") # 写入pict需要的参数
PICT_PARAM_RESULT = PATH("../Log/param_result.txt") # pict生成后的数据
OPEN_PICT = PATH("../Setting/Config.ini") # 打开pict配置器

ERROR_EMPTY = "error_empty"
ERROR_VALUE = "error_value"
53 changes: 53 additions & 0 deletions Base/BaseEmail.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# -*- coding: utf-8 -*-
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import smtplib
import os
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
)
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))
def send_mail(**kwargs):
'''
:param f: 附件路径
:param to_addr:发给的人 []
:return:
'''
from_addr = kwargs["mail_user"]
password = kwargs["mail_pass"]
# to_addr = "[email protected]"
smtp_server = kwargs["mail_host"]

msg = MIMEMultipart()

# msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
msg['From'] = _format_addr('来自<%s>接口测试' % from_addr)
msg['To'] = _format_addr(' <%s>' % kwargs["to_addr"])
msg['Subject'] = Header(kwargs["header_msg"], 'utf-8').encode()
msg.attach(MIMEText(kwargs["attach"], 'plain', 'utf-8'))

if kwargs.get("report", "0") != "0":
part = MIMEApplication(open(kwargs["report"], 'rb').read())
part.add_header('Content-Disposition', 'attachment', filename=('gb2312', '', kwargs["report_name"]))
msg.attach(part)

server = smtplib.SMTP_SSL(smtp_server, kwargs["port"])
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, kwargs["to_addr"], msg.as_string())
server.quit()
if __name__ == '__main__':
to_addr = ["[email protected]"]
mail_host = "smtp.qq.com"
mail_user = "[email protected]"
mail_pass = "oftllbhnknegbjhb"
port = "465"
header_msg = "接口测试"
attach = "接口测试"
report = PATH("../Log/report.xlsx")
send_mail(to_addr = to_addr, mail_host = mail_host, mail_user=mail_user, port=port, mail_pass=mail_pass, header_msg=header_msg, report=report, attach=attach, report_name="接口测试报告")
118 changes: 118 additions & 0 deletions Base/BaseExcel.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
__author__ = 'shikun'
import xlsxwriter
import os

PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
)


class OperateReport:
def __init__(self, wd):
self.wd = wd

def detail(self, worksheet, info):
# 设置列行的宽高
worksheet.set_column("A:A", 30)
worksheet.set_column("B:B", 20)
worksheet.set_column("C:C", 20)
worksheet.set_column("D:D", 20)
worksheet.set_column("E:E", 20)
worksheet.set_column("F:F", 20)
worksheet.set_column("G:G", 20)
worksheet.set_column("H:H", 20)

worksheet.set_row(1, 30)
worksheet.set_row(2, 30)
worksheet.set_row(3, 30)
worksheet.set_row(4, 30)
worksheet.set_row(5, 30)
worksheet.set_row(6, 30)
worksheet.set_row(7, 30)
worksheet.set_row(8, 30)

worksheet.merge_range('A1:H1', '测试详情', get_format(self.wd, {'bold': True, 'font_size': 18, 'align': 'center',
'valign': 'vcenter', 'bg_color': 'blue',
'font_color': '#ffffff'}))
_write_center(worksheet, "A2", '请求', self.wd)
_write_center(worksheet, "B2", '方法', self.wd)
_write_center(worksheet, "C2", '请求参数', self.wd)
_write_center(worksheet, "D2", '请求说明', self.wd)
_write_center(worksheet, "E2", '期望值', self.wd)
_write_center(worksheet, "F2", '响应码 ', self.wd)
_write_center(worksheet, "G2", '实际结果 ', self.wd)
_write_center(worksheet, "H2", '是否通过 ', self.wd)

temp = 3
for item in info:
# print(item)
_write_center(worksheet, "A" + str(temp), item["url"], self.wd)
_write_center(worksheet, "B" + str(temp), item["method"], self.wd)
_write_center(worksheet, "C" + str(temp), item["params"], self.wd)
_write_center(worksheet, "D" + str(temp), item["msg"], self.wd)
_write_center(worksheet, "E" + str(temp), item["hope"], self.wd)
_write_center(worksheet, "F" + str(temp), item["code"], self.wd)
_write_center(worksheet, "G" + str(temp), item["res"], self.wd)
_write_center(worksheet, "H" + str(temp), item["result"], self.wd)

temp += 1

def close(self):
self.wd.close()


def get_format(wd, option={}):
return wd.add_format(option)


# def link_format(wd):
# red_format = wd.add_format({
# 'font_color': 'red',
# 'bold': 1,
# 'underline': 1,
# 'font_size': 12,
# })
def get_format_center(wd, num=1):
return wd.add_format({'align': 'center', 'valign': 'vcenter', 'border': num})


def set_border_(wd, num=1):
return wd.add_format({}).set_border(num)


def _write_center(worksheet, cl, data, wd):
return worksheet.write(cl, data, get_format_center(wd))


def set_row(worksheet, num, height):
worksheet.set_row(num, height)

# 生成饼形图


def pie(workbook, worksheet):
chart1 = workbook.add_chart({'type': 'pie'})
chart1.add_series({
'name': '自动化测试统计',
'categories': '=测试总况!$C$4:$C$5',
'values': '=测试总况!$D$4:$D$5',
})
chart1.set_title({'name': '测试统计'})
chart1.set_style(10)
worksheet.insert_chart('A9', chart1, {'x_offset': 25, 'y_offset': 10})


if __name__ == '__main__':
sum = {'testSumDate': '25秒', 'sum': 10, 'pass': 5, 'testDate': '2017-06-05 15:26:49', 'fail': 5,
'appVersion': '17051515', 'appSize': '14M', 'appName': "'简书'"}
info = [{"id": 1, "title": "第一次打开", "caseName": "testf01", "result": "通过", "phoneName": "三星"},
{"id": 1, "title": "第一次打开",
"caseName": "testf01", "result": "通过", "img": "d:\\1.PNG", "phoneName": "华为"}]
workbook = xlsxwriter.Workbook('Report.xlsx')
worksheet = workbook.add_worksheet("测试总况")
worksheet2 = workbook.add_worksheet("测试详情")
bc = OperateReport(wd=workbook)
bc.init(worksheet, sum)
bc.detail(worksheet2, info)
bc.close()
#
48 changes: 48 additions & 0 deletions Base/BaseFile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import os
import time

PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
)
'''
操作文件
'''


class BaseFile(object):
def __init__(self):
pass

def check_file(self, path):
if not os.path.isfile(path):
# sys.exit()
return False
else:
return True

def mk_file(self, path):
with open(path, 'w', encoding="utf-8") as f:
print("创建文件成功")
pass

def write(self, path, line):
time.sleep(1)
with open(path, 'a') as fileHandle:
fileHandle.write(line + "\n")

def read(self, path):
result = []
with open(path, 'r', encoding="utf-8") as fileHandle:
file_list = fileHandle.readlines()
for i in file_list:
temp = [i.replace("\t", ",").strip("\n")]
result.append(temp)
return result

def remove_file(self, path):
if self.check_file(path):
os.remove(path)


if __name__ == '__main__':
pass
34 changes: 34 additions & 0 deletions Base/BaseGetExcel.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import xlrd
import xlsxwriter
from Base.BaseElementEnmu import Element
from Base.BaseExcel import *
from Base.BaseStatistics import readInfo


def read_excel(file='c:/test.xls'):
data = xlrd.open_workbook(file)
table = data.sheet_by_index(0)
nrows = table.nrows
ncols = table.ncols
colnames = table.row_values(0) # one rows data
list = []
for rownum in range(1, nrows):
row = table.row_values(rownum)
if row:
app = {}
for i in range(len(colnames)):
# row[i] = colnames[i] + row[i]
app[colnames[i]] = row[i]
list.append(app)
return list


def write_excel():
workbook = xlsxwriter.Workbook(Element.REPORT_FILE)
worksheet2 = workbook.add_worksheet("测试详情")
operateReport = OperateReport(workbook)
operateReport.detail(worksheet2, readInfo(Element.INFO_FILE))
operateReport.close()

if __name__ == "__main__":
pass
Loading

0 comments on commit c66c55b

Please sign in to comment.