接口自动化测试 unittest+request+excel(八)

完善接口自动化测试框架,加入日志模块

#!/usr/bin/env python3
# -*-coding:utf-8-*-
# __author__: hunter

import logging
import os
import time

class Logger:
    def __init__(self, loggername):
        # 创建一个logger
        self.logger = logging.getLogger(loggername)
        self.logger.setLevel(logging.DEBUG)

        # 创建一个handler,用于写入文件
        rq = time.strftime(‘%Y%m%d‘, time.localtime(time.time()))  # 给文件名加上时间
        log_path = os.path.dirname(os.path.abspath(‘.‘)) + ‘/logs/‘  # 指定文件输出路径,注意logs是一个文件夹,
        logname = log_path + rq + ‘test.log‘  # 指定输出的日志文件名
        fh = logging.FileHandler(logname, encoding=‘utf-8‘)  # 指定utf-8格式编码,避免输出的日志文本乱码

        fh.setLevel(logging.DEBUG)

        # 创建一个handler,用于将日志输出到控制台
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)

        # 定义handler的输出格式
        formatter = logging.Formatter(‘%(asctime)s-%(name)s-%(levelname)s-%(message)s‘)
        fh.setFormatter(formatter)
        ch.setFormatter(formatter)

        # 给logger添加handler
        self.logger.addHandler(fh)
        self.logger.addHandler(ch)

    def get_log(self):
        """定义一个函数,回调logger实例"""
        return self.logger

if __name__ == ‘__main__‘:
    t = Logger("hunter").get_log().debug("User %s is loging" % ‘jeck‘)

打开日志文件:

 在主函数中调用日志模块:

#!/usr/bin/env python3
# -*-coding:utf-8-*-
# __author__: hunter

from conn.run_demo import RunMain
from interface.tool.handle_excel import *
from interface.tool.logger import Logger

import json

class RunTestCase:
    def __init__(self):
        self.Runmain = RunMain()  # 实例化调用get/post请求基类
        self.data = HandleExcel()  # 实例化操作Excel文件类
        self.logger = Logger(__name__)

    def go_run(self):
        rows_count = self.data.get_rows()  # 获取Excel行数
        for i in range(1, rows_count):  # 利用行数进行迭代处理每个接口
            url = self.data.get_value(i, get_url())  # 循环获取URL的值
            method = self.data.get_value(i, get_mothod())  # 循环获取method的值
            print(self.data.get_value(i, get_params()))
            data = json.loads(self.data.get_value(i, get_params()))  # 循环获取请求参数
            expect = self.data.get_value(i, get_expectvalue())  # 循环获取期望输出
            is_run = self.data.get_value(i, get_priority())  # 获取是否运行,即判断Excel中priority是不是为“high"
            if is_run == ‘high‘:
                res = self.Runmain.run_main(url, method, data)  # 调用主函数,res就是返回的参数
                self.logger.get_log().debug(‘第‘ + str(i) + ‘个接口的返回结果为:%s‘, res)  # 日志:输出接口响应内容
                self.data.write_value(i, get_actualvalue(), res)  # 将实际结果写入Excel中
                if expect in res:  # res返回的内容是否包含expect,是否与期望一致
                    # print(‘测试通过‘)
                    self.logger.get_log().error(‘第‘ + str(i) + ‘接口测试通过‘)
                    self.data.write_value(i, get_resultvalue(), ‘pass‘)  # 调用写入数据方法,将结果写进Excel
                else:
                    # print("测试失败")
                    self.logger.get_log().info(‘第‘ + str(i) + ‘接口测试失败‘)
                    self.data.write_value(i, get_resultvalue(), ‘fail‘)

if __name__ == ‘__main__‘:
    run = RunTestCase()
    run.go_run()

查看日志输出:

原文地址:https://www.cnblogs.com/hemingwei/p/11595987.html

时间: 2024-08-29 16:32:52

接口自动化测试 unittest+request+excel(八)的相关文章

接口自动化测试 unittest+request+excel(五)

封装操作Excel方法,后续功能进行直接调用 #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import xlrd class HandleExcel: """封装操作Excel的方法""" def __init__(self, file='D:/hunter_/interfaceTest/interface/tool/demo2.xlsx', sheet_id=

接口自动化测试 unittest+request+excel(踩‘坑’)

通过运行主函数,返回的参数,报json解析错误 正常的返回参数,应该如图 造成这个原因的是: python从excel中解析出来的数据类型不是字典,是字符串,所以无法传递给requests当做请求参数 需用用json.loads()转成字典格式,然后进行传参 对python从Excel中解析出来的数据类型进行测试一波 #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import xlrd import json i

接口自动化测试 unittest+request+excel(二)

上一节是接口测试单条测试get/post,加上封装. 通过学习到unittest,使用其中的unittest.TestCase和Testsuit #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import unittest from conn.run_demo import RunMain # 上一节写的类,进行调用 import HTMLTestRunner import json class TestMeth

python接口自动化测试(十一)-写入excel(xlswriter)--生成图表

一.折线图: # -*- coding:utf-8 -*- import xlsxwriter # 创建一个excel workbook = xlsxwriter.Workbook("chart_line.xlsx") # 创建一个sheet worksheet = workbook.add_worksheet() # worksheet = workbook.add_worksheet("bug_analysis") # 自定义样式,加粗 bold = workb

python接口自动化测试(十)-写入excel(xlswriter)

 一.安装xlrd模块: 1.mac下打开终端输入命令: pip install XlsxWriter 2.验证安装是否成功: 在mac终端输入 python  进入python环境 然后输入 import xlswriter 不报错说明模块安装成功 二.常用方法: 1.创建excel文件 # 创建文件 workbook = xlsxwriter.Workbook("new_excel.xlsx")  2.创建sheet # 创建sheet worksheet = workbook.a

python接口自动化测试 - unittest框架基本使用

unittest简单介绍 单元测试框架 还可以适用WEB自动化测试用例的开发与执行 提供丰富的断言方法 官方文档:https://docs.python.org/zh-cn/3/library/unittest.html unittest基础使用 1 # 导入unittest模块 2 import unittest 3 4 5 # 创建单元测试类,继承unittest.TestCase 6 class testCase(unittest.TestCase): 7 8 def setUp(self

python接口自动化测试 - unittest框架suite、runner详细使用

test suite 测试套件,理解成测试用例集 一系列的测试用例,或测试套件,理解成测试用例的集合和测试套件的集合 当运行测试套件时,则运行里面添加的所有测试用例 test runner 测试运行器 用于执行和输出结果的组件 test suite.test runner基础使用 单元测试类 1 # 创建单元测试类,继承unittest.TestCase 2 class testCase(unittest.TestCase): 3 4 # 测试case 5 def test_01(self):

简单实现接口自动化测试(基于python+unittest)

简单实现接口自动化测试(基于python+unittest) 简介 本文通过从Postman获取基本的接口测试Code简单的接口测试入手,一步步调整优化接口调用,以及增加基本的结果判断,讲解Python自带的Unittest框架调用,期望各位可以通过本文对接口自动化测试有一个大致的了解. 引言 为什么要做接口自动化测试? 在当前互联网产品迭代频繁的背景下,回归测试的时间越来越少,很难在每个迭代都对所有功能做完整回归.但接口自动化测试因其实现简单.维护成本低,容易提高覆盖率等特点,越来越受重视.

【python3+request】python3+requests接口自动化测试框架实例详解教程

转自:https://my.oschina.net/u/3041656/blog/820023 前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自动化框架,使用的是java语言,但对于一个学java,却在学python的我来说,觉得python比起java更简单些,所以,我决定自己写python的接口自动化测试框架,由于本人也是刚学习python,