Exemple #1
0
    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')
Exemple #2
0
    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
Exemple #3
0
    def setUp(self):
        """

        :return:
        """
        self.log = MyLog.get_log()
        self.logger = self.log.get_logger()
Exemple #4
0
    def setUp(self):
        """

        :return:
        """
        self.log = MyLog.get_log()
        self.logger = self.log.get_logger()
        self.logintoken = businessCommon.login()
Exemple #5
0
 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 = {}
Exemple #7
0
 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
Exemple #8
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
Exemple #9
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语句
Exemple #11
0
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!")
Exemple #12
0
 def __init__(self):
     self.log = Log.get_log()
     self.logger = self.log.get_logger()
     self.db = None
     self.cursor = None
Exemple #13
0
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))