>
快捷搜索:

编排装饰器达成python诉求错误重试功用【皇家国

- 编辑:皇家国际app -

编排装饰器达成python诉求错误重试功用【皇家国

 

在做接口自动化测验的时候,总会碰着,因连年超时等悖谬形成,接口脚本败北。

下边分享给具备的程序员们:

类继承:

Python3字符串

EMAIL功用完结:

法定给出的议程:

  古语说得好,“笑一笑十年少”平常大家的劳作大概是意气风发复29日的面前境遇计算机敲着代码,既然大家早就挑选了这些生意,职业办法和剧情纯属是无计可施在改造的了,但是作者得以帮我们改一改心态啊,下边小编会把TI行当的现状给我们做叁个深入剖判,在这里后面先分享多少个笑话,假设你笑了那你便是工程师无疑了:卡塔 尔(阿拉伯语:قطر‎

持续的主张在于,充份利用本来就有类的功用,在其根底上来扩大来定义新的类。

 ①字符串相比较

1.发送EMAIL带附件,何况带压缩文件夹做为附件

max_retries=5 出错重试5次
注意的是,这个只对DNS,连接错误进行重试。

    from requests.adapters import HTTPAdapter
    s = requests.Session()
    s.mount('http://',HTTPAdapter(max_retries=5))
    s.mount('https://',HTTPAdapter(max_retries=5))
    s.get('https://www.baidu.com')

 

 

1、相比较字符串是或不是黄金年代致:

#_*_coding:utf-8_*_

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.header import Header
from email import encoders
import time
import yaml,os,base64
from pos.lib import gl,scripts


class EmailClass(object):
    def __init__(self):
        self.curDateTime = str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) #当前日期时间
        self.config = scripts.getYamlfield(gl.configFile) #配置文件路径
        self.sender = self.config['EMAIL']['Smtp_Sender'] # 从配置文件获取,发件人
        self.receivers = self.config['EMAIL']['Receivers']  # 从配置文件获取,接收人
        self.msg_title = self.config['EMAIL']['Msg_Title'] #从配置文件获取,邮件标题
        self.sender_server = self.config['EMAIL']['Smtp_Server'] #从配置文件获取,发送服务器
        self.From = self.config['EMAIL']['From']
        self.To = self.config['EMAIL']['To']

    '''
    配置邮件内容
    '''
    @property
    def setMailContent(self):
        print self.receivers
        msg = MIMEMultipart()
        msg['From'] = Header(self.From,'utf-8')
        msg['To'] = self.To
        msg['Subject'] = Header('%s%s'%(self.msg_title,self.curDateTime),'utf-8')

        #附件路径
        dirpath = gl.reportPath
        zipfile = os.path.join(os.path.dirname(dirpath), 'report.zip')
        reportfile = os.path.join(gl.reportPath, 'Report.html')
        scripts.zipDir(dirpath,zipfile) #压缩报告
        #增加邮件内容为html
        fp = open(reportfile, 'rb')
        reportHtmlText = fp.read()
        msg.attach(MIMEText(reportHtmlText,'html','utf-8'))
        fp.close()

        #增加附件
        html = self.addAttach(zipfile,filename='Report%s.zip'%self.curDateTime) #自动化测试报告附件
        msg.attach(html)

        return msg


    '''
    增加附件
    '''
    def addAttach(self,apath,filename='Report.html'):
        with open(apath, 'rb') as fp:
            attach = MIMEBase('application','octet-stream')
            attach.set_payload(fp.read())
            attach.add_header('Content-Disposition', 'attachment', filename=filename)
            encoders.encode_base64(attach)
            fp.close()
            return attach


    '''
    发送电子邮件
    '''
    def sendEmail(self,message):
        try:
            smtpObj = smtplib.SMTP()
            smtpObj.connect(self.sender_server,25)
            smtpObj.login(self.sender,self.config['EMAIL']['Password'])
            smtpObj.sendmail(self.sender,self.receivers , message.as_string())
            smtpObj.quit()
            print "邮件发送成功"
        except smtplib.SMTPException as ex:
            print "Error: 无法发送邮件.%s"%ex

    #发送调用
    @property
    def send(self):
        self.sendEmail(self.setMailContent)

if __name__=="__main__":
    EmailClass().send

 

生龙活虎、三个技师小笑话

Parent Class(父类) 与 Child Class(子类):

==:使用==来比较四个字符串内的value值是或不是同样

 

 

1、爱妻给当工程师的相恋的人打电话:“下班顺道买后生可畏斤包子带回到,假使见到卖青门绿玉房的,就买多少个。”

编排装饰器达成python诉求错误重试功用【皇家国际app】,Python3主导数据类型。被接续的类称为父类,继承的类称为子类,多个父类,能够有四个子类;

is:比相当多个字符串的id值。

2.压缩文件夹及文件代码:

自编写装饰器后生可畏

连夜,程序猿相公手捧七个馒头进了家门……

子类,后生可畏旦延续父类,就有所了父类的本性与措施,依据要求能够扩充增加和删除改。

2、字符串的尺寸比较

def zipDir(dirpath,outFullName):
    """
    压缩指定文件夹
    :param dirpath: 目标文件夹路径
    :param outFullName: 压缩文件保存路径+xxxx.zip
    :return: 无
    """
    zip = zipfile.ZipFile(outFullName,"w",zipfile.ZIP_DEFLATED)
    for path,dirnames,filenames in os.walk(dirpath):
        # 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩
        fpath = path.replace(dirpath,'')

        for filename in filenames:
            zip.write(os.path.join(path,filename),os.path.join(fpath,filename))
    zip.close()
from requests.exceptions import ConnectionError
import requests
def retry(**kw):
    def war(func):
        def w(*args,**kwargs):
            try:
                ret = func(*args,**kwargs)
            except ConnectionError:
                kw['reNum'] = int(kw['reNum']) - 1
                if kw['reNum'] >=0:
                    print kw['reNum']
                    ret = w(*args,**kwargs)
                else:
                    ret = ConnectionError
            return ret
        return w
    return war

妻子怒道:“你怎么就买了多少个包子?!”

这种做法的关键收益之后生可畏正是代码重用。

len():展现字符串的长短,再次回到数字整型。能够实行长度的相比较。

本文由皇家国际app发布,转载请注明来源:编排装饰器达成python诉求错误重试功用【皇家国