unittest框架

  最近做项目中用selenium+requests开发自动化脚本,对于unittest框架做一些梳理。

       unittest思路:首先是要写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由 TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中,整个过程集成在unittest.main模块中。

  一、unittest库下的所有类:

       __all__ = ['TestResult', 'TestCase', 'TestSuite',
'TextTestRunner', 'TestLoader', 'FunctionTestCase', 'main',
'defaultTestLoader', 'SkipTest', 'skip', 'skipIf', 'skipUnless',
'expectedFailure', 'TextTestResult', 'installHandler',
'registerResult', 'removeResult', 'removeHandler']
      TestCase是所有测试类的父类,封装的测试类需要继承TestCase,其中提供了丰富的断言方法,setUp方法用于测试执行前的准备工作如连接数据库打开网页等,tearDown用于测试完之后的善后工作,
资源关闭等。测试方法必须以test_开头。
      TestSuite用来生成测试套件,加载测试类中的方法。很多个TestCase集合起来就是一个TestSuite。可以一个一个方法逐步加载,也可以一次性加载类中的所有方法。
        TestLoader().loadTestsFromTestCase(类名),一次性将类中的所有测试方法全部加载到suite中
        TextTestRunner执行suite中加载进来的测试方法,并生成测试报告。我在项目中用的是HTMLTestRunner,类似于TextTestRunner的功能,生成HTML类型的测试报告。    
二、框架结构

三、部分功能实现代码

  1. 读取Excel参数,转换成list类型

  

  1. 截图

  1. 打包

  1. 发送邮件
import os
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication

class email():
    def send_email(self,attach_file):
        sender = "***@qq.com"
        recv = "544****[email protected]"
        msg = MIMEMultipart()
        msg['Subject'] = 'Python自动发送的测试邮件'
        msg['From'] = sender
        msg['To'] = recv
        #三个参数,内容、格式、编码格式
        content = MIMEText('<p style="color:red;font-size:30px">Python自动发送的测试邮件</p>','html','utf-8')
        msg.attach(content)
        #添加附件
        attachment = MIMEApplication(open(attach_file,'rb').read())
        attachment.add_header('Content-Disposition','attachment',filename='Test_result.rar')
        msg.attach(attachment)
        #发送
        try:
            s_obj = smtplib.SMTP()
            s_obj.connect(host='smtp.qq.com',port=25)
            s_obj.login(user='[email protected]',password='kitzwpgauumabbha')
            s_obj.sendmail(sender,recv,str(msg))
            s_obj.quit()
            print('已发送')
        except Exception as e:
            print(e)
            print('未成功发送')

if __name__ == '__main__':
    rar_data = os.path.abspath('.') + "\\report\\2018-08-09.rar"
    email().send_email(rar_data)

  


猜你喜欢

转载自www.cnblogs.com/fr-up3/p/9485918.html