Pythonはファイルを設定してパラメータを読み取り、テストケースを実行し、テストレポートを作成し、メールを送信します。

22173 ワード


 
 
#-*-coding:utf-8-*-
#        
#XXXXX_Uitest->baseinfo->__init__.py


base_url = "http://XXXXxxxxx.com"
undirect_username = "XXXX"
undirect_password = "XXXXX"
direct_username = XXXXX"
direct_password = "xxxxxx"


#        
Smtp_Server = 'smtp.mxhichina.com'
Smtp_Sender = 'XXXXX@xxx。com'
Smtp_Sender_Password = 'XXXXXXX'
Smtp_Receiver = ['[email protected]','[email protected]']


#             
test_dir = './test_case'
test_report = './test_report/'
 
 
#
#test_cart.py
import unittest import os import time from selenium import webdriver from selenium.webdriver.common.keys import Keys class TestCart(unittest.TestCase): def setUp(self): print('setup') self.url = 'http://www.XXX.mm' self.driver = webdriver.Firefox() self.driver.implicitly_wait(5) self.driver.get(self.url) self.driver.maximize_window() print("open browser") #return self.driver def get_Info(self): filePath = os.path.join(os.getcwd(),'user_info') filename = filePath + '\\user_info.txt' print(filename) fo = open(filename, 'r') lines = fo.readlines() for data in lines: name,pwd = data.split(',') print(name, pwd) return name,pwd def test_to_login(self): ''' ''' name,pwd = self.get_Info() time.sleep(5) print(name,pwd) self.driver.implicitly_wait(5) self.driver.find_element_by_id('new-username').clear() self.driver.find_element_by_id('new-username').send_keys(name) self.driver.find_element_by_id('new-password').clear() self.driver.find_element_by_id('new-password').send_keys(pwd) self.driver.implicitly_wait(5) # , self.driver.find_element_by_xpath("html/body/div[9]/div[3]/div[1]/div[1]/div[4]/span").send_keys(Keys.ENTER) self.driver.implicitly_wait(10) login_test = self.driver.find_element_by_xpath(".//*[@id='loginOut']").text self.assertEqual(login_test, '[ ]') def tearDown(self): print("tearDown") time.sleep(5) print("close browser") self.driver.quit() if __name__ == '__main__': unittest.main()
 
 
 
 
#runtest.py

import smtplib
import unittest
import time
import xlrd
import os
from HTMLTestRunner import HTMLTestRunner
from email.header import Header
from email.mime.text import MIMEText
# baseinfo
import baseinfo from email.mime.multipart import MIMEMultipart def get_sender(): filePath = os.path.join(os.getcwd(),'user_info') print("get_sender") print(filePath) fileName = filePath + '\Mail_info.xlsx' print(fileName) readExcel = xlrd.open_workbook(fileName) sender = readExcel.sheet_by_name('sender') get_sender = sender.row_values(1) #print(get_sender) return get_sender def get_Receiver(): filePath = os.path.join(os.getcwd(),'user_info') fileName = filePath + '\Mail_info.xlsx' print("get_Receiver()") print(fileName) readExcel = xlrd.open_workbook(fileName) receiver_sheet = readExcel.sheet_by_name('receiver') receiver_temp = receiver_sheet.col_values(0) getReceiver = receiver_temp[1:] print(getReceiver) print(type(getReceiver)) return getReceiver def get_NewReport(testreport): dirs = os.listdir(testreport) dirs.sort() newreportname = dirs[-1] print('The new report name: {0}'.format(newreportname)) file_new = os.path.join(testreport, newreportname) print(file_new) return file_new def send_Mail(file_new): f = open(file_new, 'rb') # mail_body = f.read() f.close() try:      # baseinfo __init__ smtp = smtplib.SMTP(baseinfo.Smtp_Server, 25) sender = baseinfo.Smtp_Sender password = baseinfo.Smtp_Sender_Password receiver = baseinfo.Smtp_Receiver smtp.login(sender, password) msg = MIMEMultipart() # html ,MIMEtext() # text = MIMEText(mail_body, 'html', 'utf-8') text['Subject'] = Header(' ', 'utf-8') msg.attach(text) # # Header() msg['Subject'] = Header(' ', 'utf-8') msg_file = MIMEText(mail_body, 'html', 'utf-8') msg_file['Content-Type'] = 'application/octet-stream' msg_file["Content-Disposition"] = 'attachment; filename="TestReport.html"' msg.attach(msg_file) # , , msg['From'] = sender # , , msg['To'] = ",".join(receiver) tmp = smtp.sendmail(sender, receiver, msg.as_string()) print(receiver) print(tmp) smtp.quit() return True except smtplib.SMTPException as e: print(str(e)) return False if __name__ == '__main__': test_dir = os.path.join(os.getcwd(),'test_case') print(test_dir) report_dir = os.path.join(os.getcwd(),'report') test_discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py') print("test_discover") now = time.strftime("%Y-%m-%d-%H_%M_%S") filename = report_dir+'/result-'+now+'.html' fp = open(filename, 'wb') runner = HTMLTestRunner(stream = fp, title = 'UI ', description = ' ') #runner = unittest.TextTestRunner() runner.run(test_discover) fp.close() new_report = get_NewReport(report_dir) mail = send_Mail(new_report) if mail: print("") else: print("")
 
転載先:https://www.cnblogs.com/Skyyj/p/6763529.html