Example #1
0
    def startAllCase(self):
        """
        使用HTMLTestRunner配置参数,输出报告路径、报告标题、描述
        @:param filename 报告存放路径
        @:param Report_title 报告标题
        @:param Report_description 报告描述信息
        """
        Report_title = apiset().getConfigValues("report", "title")
        Report_description = apiset().getConfigValues("report", "description")
        discover = unittest.defaultTestLoader.discover(Config().case_path,
                                                       pattern='test*.py',
                                                       top_level_dir=None)
        file_path = Config().report_path
        try:
            os.mkdir(file_path)
        except:
            pass
        finally:
            filename = os.path.join(file_path, (time.strftime(
                '%Y-%m-%d %H_%M_%S', time.localtime(time.time())) + '.html'))

        fp = file(filename, 'wb')
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                               title=Report_title,
                                               description=Report_description)
        try:
            runner.run(discover)
        except Exception, e:
            raise Exception(e.message)
Example #2
0
def log(**kwargs):
    global loggers
    log_level = (int)(apiset().getConfigValues("log", "log_level"))
    log_path = Config().log_path
    if os.path.exists(log_path):
        log_file = os.path.join(log_path, datetime.datetime.now().strftime('%Y-%m-%d_%H_%M') + '.log')
    else:
        os.mkdir(r'%s' % log_path)
        log_file = os.path.join(log_path, datetime.datetime.now().strftime('%Y-%m-%d_%H_%M') + '.log')
    logger = logging.getLogger()

    logger.setLevel(log_level)
    if not logger.handlers:
        # 创建一个handler,用于写入日志文件
        fh = logging.FileHandler(log_file)
        fh.setLevel(log_level)
        # 再创建一个handler,用于输出到控制台
        ch = logging.StreamHandler()
        ch.setLevel(logging.ERROR)
        # 定义handler的输出格式
        formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
        fh.setFormatter(formatter)
        ch.setFormatter(formatter)
        # 给logger添加handler
        logger.addHandler(fh)
        logger.addHandler(ch)
        loggers.update(dict(name=logger))
    return logger
Example #3
0
 def __init__(self):
     reload(sys)
     sys.setdefaultencoding('utf-8')
     self.version_name = apiset().getConfigValues("version", "version_name")
     self.header = {
         "Accept": "application/json",
         "versionName": self.version_name
     }
Example #4
0
def sendEmail():
    root_path = os.path.dirname(__file__)
    report_path = [os.path.join(root_path, 'Report.py'), ]
    actionReport(report_path)
    report_list = [os.path.join(root_path, 'TestReport'), ]
    re_list = sortReportFile(report_list)
    # 邮件内容
    mail_body = ''
    mail_user = apiset().getConfigValues("email_from", "username")
    mail_pwd = apiset().getConfigValues("email_from", "password")
    mail_to = apiset().getConfigItems("email_to")
    email_to = []
    for i in range(0, len(mail_to)):
        if mail_to[i][1] != None:
            email_to.append(mail_to[i][1])
    msg = MIMEMultipart()
    msg['Subject'] = apiset().getConfigValues("report", "title")
    msg['From'] = mail_user
    msg['to'] = ';'.join(email_to)
    msg['Date'] = time.strftime('%a,%d %b %Y %H:%S %z')
    for file in re_list:
        report_obj = open(file, 'rb')
        mail_bady_value = report_obj.read()
        mail_body += mail_bady_value
        # 创建附件,并添加到msg
        part = MIMEBase('application', 'octet-stream')
        part.set_payload(mail_bady_value)
        encoders.encode_base64(part)
        part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
        msg.attach(part)
        report_obj.close()
        # 创建MIMEText,并添加到msg
        body = MIMEText(mail_body, _subtype="html", _charset='utf-8')
        msg.attach(body)
        smtp = smtplib.SMTP()
        smtp.connect("smtp.163.com")
        print smtp
        try:
            smtp.login(mail_user, mail_pwd)
            smtp.sendmail(mail_user, email_to, msg.as_string())
            print 'email has send out !'
        except smtplib.SMTPAuthenticationError,e:
            print e
        smtp.quit()
Example #5
0
 def __init__(self, host=None, port=None, user=None, password=None):
     config = apiset().getConfigItems("mysql_db")
     if host == None:
         self.host = config[0][1]
     else:
         self.host = host
     if port == None:
         self.port = int(config[1][1])
     else:
         self.port = port
     if user == None:
         self.user = config[2][1]
     else:
         self.user = user
     if password == None:
         self.password = config[3][1]
     else:
         self.password = password
Example #6
0
 def setUpClass(cls):
     cls.login = Login("", "")
     cls.token = cls.login.getToken()
     cls.shopId = cls.login.getShopId()
     cls.version_name = apiset().getConfigValues("version", "version_name")
Example #7
0
 def __init__(self):
     self.redis_items = apiset().getConfigItems("redis_db")
     pool = redis.ConnectionPool(host=self.redis_items[0][1],
                                 port=self.redis_items[1][0],
                                 password=self.redis_items[2][1])
     self.con = redis.Redis(connection_pool=pool)