Commit 8af5c5e2 by zhangchunyao

code update 201907231601

parent ff773f0d
...@@ -6,10 +6,10 @@ import json,ddt ...@@ -6,10 +6,10 @@ import json,ddt
http = Http() http = Http()
reader = Reader() reader = Reader()
writer = Writer() writer = Writer()
#reader.open_excle('D:/dminterfacetest/repot/testcase.xls') #reader.open_excle('D:/workSpace/Python_workspace/testcase.xls')
reader.open_excle('/opt/apitest/apiAutoByJenkins/repot/testcase.xls') reader.open_excle('/opt/apitest/apiAutoByJenkins/repot/testcase.xls')
sheetname = reader.get_sheets() sheetname = reader.get_sheets()
#writer.copy_open('D:/dminterfacetest/repot/testcase.xls', 'D:/dminterfacetest/repot/testcase1.xls') #writer.copy_open('D:/workSpace/Python_workspace/testcase.xls', 'D:/workSpace/Python_workspace/testcase1.xls')
writer.copy_open('/opt/apitest/apiAutoByJenkins/repot/testcase.xls', '/opt/apitest/apiAutoByJenkins/repot/testcase1.xls') writer.copy_open('/opt/apitest/apiAutoByJenkins/repot/testcase.xls', '/opt/apitest/apiAutoByJenkins/repot/testcase1.xls')
sheetname1 = writer.get_sheets() sheetname1 = writer.get_sheets()
writer.set_sheet(sheetname1[0]) writer.set_sheet(sheetname1[0])
......
...@@ -21,6 +21,11 @@ class Run(unittest.TestCase): ...@@ -21,6 +21,11 @@ class Run(unittest.TestCase):
@ddt.data(*data) @ddt.data(*data)
def test_run(self,data): def test_run(self,data):
result = inter.dosheet(br, bw, data) result = inter.dosheet(br, bw, data)
if result[1]:
if isinstance(result[1][0], int):
self.assertEqual(result[1][0], int(result[1][1]))
else:
self.assertEqual(result[1][0], result[1][1])
print(result) print(result)
def tearDown(self): def tearDown(self):
inter.xlsx_save(bw, APIPATH) inter.xlsx_save(bw, APIPATH)
......
...@@ -104,6 +104,20 @@ class Reader: ...@@ -104,6 +104,20 @@ class Reader:
row1[i] = str(strs) row1[i] = str(strs)
i = i + 1 i = i + 1
return row1 return row1
def api_result(self,path):
self.open_excle(path)
sheetname = self.get_sheets()
api = []
for sheet in sheetname:
# 设置当前读取的sheet页面
self.set_sheet(sheet)
for i in range(self.rows):
line = self.readline()
if line[10] == 'fail':
api.append(line[4])
return api
class Writer: class Writer:
''' '''
by kongwen 2019/7/8 用来复制写入excel by kongwen 2019/7/8 用来复制写入excel
......
...@@ -278,6 +278,11 @@ class InterFace(): ...@@ -278,6 +278,11 @@ class InterFace():
bwt_sheet = bwt.get_sheet(0) bwt_sheet = bwt.get_sheet(0)
object = slef.xlsx_getRow(brd_sheet, i) object = slef.xlsx_getRow(brd_sheet, i)
result = slef.xlsx_request(object) result = slef.xlsx_request(object)
arr = []
if result != 0:
code = jsonpath.jsonpath(result, object["code"])
arr.append(code[0])
arr.append(object["expected_code"])
if result == 0: if result == 0:
print("此行是接口说明,跳过不执行") print("此行是接口说明,跳过不执行")
elif type(object["expected_code"]) == type(1.0): elif type(object["expected_code"]) == type(1.0):
...@@ -306,4 +311,4 @@ class InterFace(): ...@@ -306,4 +311,4 @@ class InterFace():
inRow = i inRow = i
inCol = 11 inCol = 11
slef.writeResultDate(bwt_sheet, inRow, inCol, result) slef.writeResultDate(bwt_sheet, inRow, inCol, result)
return result return result, arr
# coding: UTF-8
'''
pip install DingtalkChatbot
'''
# 2019/7/22 created by dadu
from dingtalkchatbot.chatbot import DingtalkChatbot
import time
from common.Excel import Reader
qaTeamWebhook = 'https://oapi.dingtalk.com/robot/send?access_token=2656a52b44f1e2d9ebbf5e57560b5a7c2619dc07cec35c62d19b8b252e24a064'
qaTeamDing = DingtalkChatbot(qaTeamWebhook)
runTime = time.strftime('%Y-%m-%d %H:%M:%S')
def resultText(reporturl):
#path = 'D:/workSpace/Python_workspace/apitestunit.xls'
path = '/opt/apitest/apiAutoByJenkins/repot/apitest.xls'
readExp = Reader()
arrExpSingle = readExp.api_result(path)
expMsg = '\n'.join(arrExpSingle)
qaTeamDing.send_text(msg = "接口自动化执行异常结果\n执行时间:"+ runTime+ "\n执行异常接口列表:\n"+expMsg+"\n详细结果地址:"+reporturl)
def msgSend(passrate,reporturl):
if passrate!=100:
resultText(reporturl)
else :
pass
\ No newline at end of file
...@@ -2,18 +2,29 @@ import unittest ...@@ -2,18 +2,29 @@ import unittest
import HTMLTestReportCN import HTMLTestReportCN
import time import time
from common.Mail import sendResultMail from common.Mail import sendResultMail
from HTMLTestReportCN import TestResult
from common.resultToDing import msgSend
#case_dir = 'D:/workSpace/Python_workspace/myPython/.idea/interfaceTest_ddt/case' #case_dir = 'D:/workSpace/Python_workspace/myPython/.idea/interfaceTest_ddt/case'
#report_dir = 'D:/workSpace/Python_workspace/myPython/.idea/interfaceTest_ddt/repot' #report_dir = 'D:/workSpace/Python_workspace/myPython/.idea/interfaceTest_ddt/repot'
case_dir = '/opt/apitest/apiAutoByJenkins/case' case_dir = '/opt/apitest/apiAutoByJenkins/case'
report_dir = '/opt/apitest/apiAutoByJenkins/repot' report_dir = '/opt/apitest/apiAutoByJenkins/repot'
discover = unittest.defaultTestLoader.discover(case_dir,pattern='test*.py') discover = unittest.defaultTestLoader.discover(case_dir,pattern='test*.py')
now = time.strftime('%Y-%m-%d %H_%M_%S') #discover = unittest.defaultTestLoader.discover(case_dir,pattern='testcase.py')
report_name = report_dir+'/'+now+' test_report.html' now = time.strftime('%Y%m%d%H%M%S')
with open(report_name, 'wb') as f: fileName = '/'+now+'test_report.html'
reportFileName = report_dir+fileName
report_url = "https://four.gicdev.com/apitest"
reportUrl = report_url+fileName
with open(reportFileName, 'wb') as f:
runner = HTMLTestReportCN.HTMLTestRunner(stream=f, title='接口自动化测试报告', description='接口测试用例执行情况', tester='jenkins') runner = HTMLTestReportCN.HTMLTestRunner(stream=f, title='接口自动化测试报告', description='接口测试用例执行情况', tester='jenkins')
runner.run(discover) runner.run(discover)
str=runner.getPassRate()
passRateValue = str.split('%',1)[0]
msgSend(passRateValue,reportUrl)
smtpSer ="smtp.exmail.qq.com" smtpSer ="smtp.exmail.qq.com"
# 测试服务器群发测试组成员 # 测试服务器群发测试组成员
sendUser ="apitest@demogic.com" sendUser ="apitest@demogic.com"
...@@ -21,7 +32,7 @@ sendPwd ="Api@201906" ...@@ -21,7 +32,7 @@ sendPwd ="Api@201906"
recvUser ="test@demogic.com" recvUser ="test@demogic.com"
#recvUser = "zhangchunyao@demogic.com" #recvUser = "zhangchunyao@demogic.com"
sendResultMail(smtpSer,sendUser,sendPwd,recvUser,report_name) sendResultMail(smtpSer,sendUser,sendPwd,recvUser,reportFileName)
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