def __init__(self): global host, user, psw, port, sender, title #有几个变量以下其实并未用到 host = localReadConfig.get_email("mail_host") user = localReadConfig.get_email("mail_user") psw = localReadConfig.get_email("mail_pass") port = localReadConfig.get_email("mail_port") sender = localReadConfig.get_email("sender") title = localReadConfig.get_email("subject") # content = localReadConfig.get_email("content") #receiver=localReadConfig.get_email("receiver") self.receivers = [] #get receiver list value = localReadConfig.get_email("receiver") for n in str(value).split("/"): self.receivers.append(n) #print self.receivers # defined email subject date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") self.subject = u"接口测试报告" + " " + date self.log = MyLog().get_log() self.logger = self.log.get_logger() self.msg = MIMEMultipart('related')
def __init__(self): global host, user, passwd, port, database, config host = localReadConfig.get_db("host") user = localReadConfig.get_db("username") passwd = localReadConfig.get_db("password") port = localReadConfig.get_db("port") database = localReadConfig.get_db("database") self.log = MyLog().get_log() self.logger = self.log.get_logger() self.db = None self.cursor=None
def setUp(self): """ :return: """ self.log = MyLog.get_log() self.logger = self.log.get_logger()
def setUp(self): """ :return: """ self.log = MyLog.get_log() self.logger = self.log.get_logger() self.logintoken = businessCommon.login()
def __init__(self): global log, logger, resultPath, on_off log = Log.get_log() logger = log.get_logger() resultPath = log.get_report_path() on_off = localReadConfig.get_email("on_off") self.caseListFile = os.path.join(readConfig.proDir, "caselist.txt") self.caseFile = os.path.join(readConfig.proDir, "testCase") # self.caseFile = None self.caseList = [] self.email = MyEmail.get_email()
def __init__(self): global host, port, timeout host = localReadConfig.get_http("baseurl") port = localReadConfig.get_http("port") timeout = localReadConfig.get_http("timeout") self.log = Log.get_log() self.logger = self.log.get_logger() self.headers = {} self.param = {} self.data = {} self.url = None self.files = {}
def __init__(self): global scheme, host, timeout scheme = localReadConfig.get_http("scheme") host = localReadConfig.get_http("baseurl") timeout = localReadConfig.get_http("timeout") self.log = Log.get_log() self.logger = self.log.get_logger() self.headers = {} self.params = {} self.data = {} self.url = None self.files = {} self.state = 0
def __init__(self): global scheme, host, port, timeout scheme = localReadConfig.get_http("scheme") host = localReadConfig.get_http("baseurl") port = localReadConfig.get_http("port") timeout = localReadConfig.get_http("timeout") #真正调用了Log示例,在线程中只有一个线程在执行(线程锁) self.log = Log.get_log() self.logger = self.log.get_logger() #print self.logger self.url = None self.headers = {} self.params = {} self.data = {} self.files = {} self.state = 0
def __init__(self): global host, user, password, port, sender, title, content host = localReadConfig.get_email("mail_host") user = localReadConfig.get_email("mail_user") password = localReadConfig.get_email("mail_pass") port = localReadConfig.get_email("mail_port") sender = localReadConfig.get_email("sender") title = localReadConfig.get_email("subject") content = localReadConfig.get_email("content") self.value = localReadConfig.get_email("receiver") self.recerver = [] # get receiver list for n in str(self.value).split("/"): self.recerver.append(n) # defined email subject date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") self.subject = title + " " + date self.log = MyLog.get_log() self.msg = MIMEMultipart('mixed')
import os from xlrd import open_workbook from xml.etree import ElementTree as ElementTree from interfaceTest.common.Log import MyLog as Log from interfaceTest.common import configHttp from interfaceTest.readConfig import proDir localConfigHttp = configHttp.ConfigHttp() log = Log.get_log() logger = log.get_logger() # 从excel文件中读取测试用例 def get_xls(xls_name, sheet_name): cls = [] # get xls file's path xlsPath = os.path.join(proDir, "testFile", xls_name) # open xls file file = open_workbook(xlsPath) # get sheet by name sheet = file.sheet_by_name(sheet_name) # get one sheet's rows nrows = sheet.nrows for i in range(nrows): if sheet.row_values(i)[0] != u'case_name': cls.append(sheet.row_values(i)) return cls # 从xml文件中读取sql语句
class MyDB: def __init__(self): global host, user, passwd, port, database, config host = localReadConfig.get_db("host") user = localReadConfig.get_db("username") passwd = localReadConfig.get_db("password") port = localReadConfig.get_db("port") database = localReadConfig.get_db("database") self.log = MyLog().get_log() self.logger = self.log.get_logger() self.db = None self.cursor=None #连接数据库,把连接后数据数据库的游标赋值给初始化定义的游标,以便后面操作的使用。不要使用return 游标。 #因为return 的函数不更改原值,而赋值则是将None改为实际的游标。 def connectDB(self): """ connect to database :return: """ try: # connect to DB self.db = MySQLdb.connect(host,user,passwd,database,use_unicode=True, charset="utf8") print "self.db is",self.db self.cursor=self.db.cursor() print("Connect DB successfully!") except MySQLdb.Error as ex: self.logger.error(str(ex)) print "Connect DB faild" #通过初始化函数中的self.cursor = self.db.cursor()获得游标,执行sql语句。 def executeSQL(self, sql): """ execute sql :param sql: :return: """ self.connectDB() # executing sql,游标执行之前一定要保证是连接了数据库 self.cursor.execute(sql) # executing by committing to DB self.db.commit() return self.cursor #不用self.cursor原因是任何数据库操作的执行都需要先链接,获取curse。gett all是在执行数据库操作之后获取数据,所以是在 # executeSQL执行之后执行的函数,因此可以将 executeSQL执行后返回的curse传入get_allh函数获取数据。因此此处定义了一个变量。 #而使用全局的sel.curser是不需要定义变量的 def get_all(self,cursor): """ get all result after execute sql :param cursor: :return: """ value = cursor.fetchall() return value def get_one(self,cursor): """ get one result after execute sql :param cursor: :return: """ value =cursor.fetchone() return value def closeDB(self): """ close database :return: """ self.db.close() print("Database closed!")
def __init__(self): self.log = Log.get_log() self.logger = self.log.get_logger() self.db = None self.cursor = None
class Email: def __init__(self): global host, user, psw, port, sender, title #有几个变量以下其实并未用到 host = localReadConfig.get_email("mail_host") user = localReadConfig.get_email("mail_user") psw = localReadConfig.get_email("mail_pass") port = localReadConfig.get_email("mail_port") sender = localReadConfig.get_email("sender") title = localReadConfig.get_email("subject") # content = localReadConfig.get_email("content") #receiver=localReadConfig.get_email("receiver") self.receivers = [] #get receiver list value = localReadConfig.get_email("receiver") for n in str(value).split("/"): self.receivers.append(n) #print self.receivers # defined email subject date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") self.subject = u"接口测试报告" + " " + date self.log = MyLog().get_log() self.logger = self.log.get_logger() self.msg = MIMEMultipart('related') def config_header(self, receivers=None): """ defined email header include subject, sender and receiver :return: """ self.msg['subject'] = title self.msg['from'] = sender #添加多个接收人 self.msg['to'] = ",".join(self.receivers) print self.msg['to'] def config_content(self): """ write the content of email :return: """ f = open(os.path.join(readConfig.proDir, 'testFile', 'emailStyle.txt')) content = f.read() f.close() content_plain = MIMEText(content, 'html', 'UTF-8') #上传文件 self.msg.attach(content_plain) #上传图片 self.config_image() def config_image(self): """ config image that be used by content :return: """ # defined image path image1_path = os.path.join(readConfig.proDir, 'testFile', 'img', '1.png') fp1 = open(image1_path, 'rb') msgImage1 = MIMEImage(fp1.read()) # self.msg.attach(msgImage1) fp1.close() # defined image id msgImage1.add_header('Content-ID', '<image1>') self.msg.attach(msgImage1) image2_path = os.path.join(readConfig.proDir, 'testFile', 'img', 'logo.jpg') fp2 = open(image2_path, 'rb') msgImage2 = MIMEImage(fp2.read()) # self.msg.attach(msgImage2) fp2.close() # defined image id msgImage2.add_header('Content-ID', '<image2>') self.msg.attach(msgImage2) def config_file(self): """ config email file :return: """ # if the file content is not null, then config the email file if self.check_file(): reportpath = self.log.get_result_path() zippath = os.path.join(readConfig.proDir, "result", "test.zip") # zip file files = glob.glob(reportpath + '\*') f = zipfile.ZipFile(zippath, 'w', zipfile.ZIP_DEFLATED) for file in files: # 修改压缩文件的目录结构 f.write(file, '/report/' + os.path.basename(file)) f.close() reportfile = open(zippath, 'rb').read() filehtml = MIMEText(reportfile, 'base64', 'utf-8') filehtml['Content-Type'] = 'application/octet-stream' filehtml['Content-Disposition'] = 'attachment; filename="test.zip"' self.msg.attach(filehtml) def check_file(self): """ check test report :return: """ reportfile = self.log.get_report_path() if os.path.isfile(reportfile) and not os.stat(reportfile) == 0: return True else: return False def send_email(self): try: self.config_header() self.config_content() self.config_file() try: smtp = smtplib.SMTP() smtp.connect(host) smtp.login(sender, psw) except: smtp = smtplib.SMTP_SSL(host) smtp.login(sender, psw) smtp.sendmail(sender, self.receivers, self.msg.as_string()) smtp.quit() #print "The test report has send to developer by email!" self.logger.info("The test report has send to developer by email.") except Exception as ex: self.logger.error(str(ex))