-
Notifications
You must be signed in to change notification settings - Fork 170
Commit
- Loading branch information
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Large diffs are not rendered by default.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
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" |
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="接口测试报告") |
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() | ||
# |
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 |
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 |