zoukankan      html  css  js  c++  java
  • 自动化数据驱动与日常处理

    自定义报告:

      python自带的报告如下图所示(.代表成功e代表失败):

    HTMLTestRunner(自动生成html文件):

    下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html----用于python2

        https://pan.baidu.com/s/1dEZQ0pz-------用于python3

    import unittest
    import  os
    from python_tool import HTMLTestRunner
    
    pwd = os.getcwd()
    # 获取父路径
    path = os.path.abspath(os.path.dirname(pwd) + os.path.sep)
    
    def runner():
         #获取测试用例存在目录的路径
         path_all=path+'\all_test'
         print(path_all)
         discover=unittest.defaultTestLoader.discover(path_all,pattern='test*.py',top_level_dir=None)
         print(discover)
    
         return  discover
    
    if __name__ == '__main__':
        #生成报告文件路径
        report_abspath=path+'\python_tool\result.html'
        fp=open(report_abspath,'wb')
        run=HTMLTestRunner.HTMLTestRunner(
            stream=fp,
            title='测试报告',
            description='用例执行情况'
        )
        run.run(runner())

     结果图:

      

     数据驱动(参数化):

      Excel读取:

    from xlrd import open_workbook
    import os
    class workbook():
        pwd=pwd = os.getcwd()
        path_object=os.path.abspath(os.path.dirname(pwd) + os.path.sep)
        def data(self):
            #生成路径
            path= workbook.path_object+'\data_workbook\week.xlsx'
            # 打开execl
            file=open_workbook(path)
            #读取execl数据中的行数
            data=file.sheet_by_index(0)
            nrows=data.nrows
            # print(data.row_values(1))
            #循环读取行的数据
            cls=[]
            for i in range(nrows):
                if i!=0:
                    cls.append(data.row_values(i))
            return cls

      数据驱动:pip install ddt

        @data(*cls)
        def test_loginone(self,cls):
            print(cls[3])
            # print(self.date[0][3])
            # print(isinstance(self.date[0][3],str))
            self.driver.get(cls[3])
            time.sleep(4)
            self.driver.find_element_by_css_selector(
                'body > div.container-top > div > div.sport-user > div.user-btn > a.btnUser.btnUserLogin').click()
            time.sleep(4)
            text = self.driver.find_element_by_css_selector(
                'body > div.login-bg > div > div > div.login-logo > span').get_attribute('innerHTML')
            print('取值%s', text)
            self.assertIn('用户登录', text, '跳转登录页面失败')

    log日志:

    import logging
    
    class log():
    
            #创建handler终端Hanler:
            consoleHandler = logging.StreamHandler()
            consoleHandler.setLevel(logging.DEBUG)
            #文件Hanler
            fileHandler=logging.FileHandler('log.log',mode='w',encoding='utf-8')
            fileHandler.setLevel(logging.NOTSET)
            #actime:时间
            #name:日志名字
            #lovename:等级名字
            #message:显示信息
            formatter=logging.Formatter('%(actime)s-%(name)s-%(lovelname)s-%(message)s')
            #添加到logger中
            logging.addHandlerRef(consoleHandler)
            logging.addHandlerRef(fileHandler)

      日志级别:

        默认等级:warning

        其他等级:debug

            error

            critical

            info

      日志对象:

      Handler对象:

      Formatter对象(格式输出):

        

     文章链接:http://mumuling.com/?p=93

  • 相关阅读:
    ‘Host’ is not allowed to connect to this mysql server
    centos7安装mysql
    further configuration avilable 不见了
    Dynamic Web Module 3.0 requires Java 1.6 or newer
    hadoop启动 datanode的live node为0
    ssh远程访问失败 Centos7
    Linux 下的各种环境安装
    Centos7 安装 python2.7
    安装scala
    Centos7 安装 jdk 1.8
  • 原文地址:https://www.cnblogs.com/cpxjl/p/9174562.html
Copyright © 2011-2022 走看看