python excel接口自动化测试框架!

今天采用Excel继续写一个接口自动化测试框架。

设计流程图

这张图是我的excel接口测试框架的一些设计思路。

首先读取excel文件,得到测试信息,然后通过封装的requests方法,用unittest进行测试。

其中,接口关联的参数通过正则进行查找和替换,为此我专门开辟了一个全局变量池,用于管理各种各样的变量。

最后通过HTMLrunner生成测试报告。如果执行失败,发送测试报告结果邮件。

图片

Excel和结果预览

这个时excel的测试测试用例组织结构图。

图片

这个是运行之后生成的HTML测试报告。

图片

这个时运行之后生成的excel报告。可以看到我故意在预期正则中设置了错误的值,然后用例失败的同时也把失败的预期值标记出来了。

图片

测试失败之后收到的邮件

图片

好了上面就是一些简单的介绍,我们开始进入正题把。

框架结构

首先,要开发这样一个excel接口自动化测试项目必须有一个设计清晰的思路,这样我们在开发框架的过程中才会明白自己要干什么。【关注我的vx公众号:程序员小濠免费获取一份13G的软件测试资源】

图片

Excel相关

用例设计

本次依然采用的是智学网登录接口。使用了智学网中的登录接口和登录验证接口,这两个接口之间有依赖的参数。

配置文件

在项目的根目录创建config.py,把你能想到的配置信息,全部丢在这个文件中进行统一的管理。

#!/usr/bin/env python3
# coding=utf-8
import os


class CF:
    """配置文件"""
    # 项目目录
    BASE_DIR = os.path.abspath(os.path.dirname(__file__))

    # Excel首行配置
    NUMBER = 0
    NAME = 1
    METHOD = 2
    URL = 3
    ROUTE = 4
    HEADERS = 5
    PARAMETER = 6  # 参数
    EXPECTED_CODE = 7  # 预期响应码
    EXPECTED_REGULAR = 8  # 预期正则
    EXPECTED_VALUE = 9  # 预期结果值
    SPEND_TIME = 10  # 响应时间
    TEST_RESULTS = 11  # 测试结果
    EXTRACT_VARIABLE = 12  # 提取变量
    RESPONSE_TEXT = 13  # 响应文本
    # 字体大小
    FONT_SET = "微软雅黑"
    FONT_SIZE = 16
    # 颜色配置
    COLOR_PASSED = "90EE90"
    COLOR_FAILED = "FA8072"

    # 邮箱配置
    EMAIL_INFO = {
        'username': '1084502012@qq.com',
        'password': 2,
        'smtp_host': 'smtp.qq.com',
        'smtp_port': 465
    }
    # 收件人
    ADDRESSEE = ['1084502012@qq.com']


if __name__ == '__main__':
    print(CF.EXPECTED_CODE)

读取/写入excel

在common目录中新建excelset.py文件,在这个文件中我们要实现,读取excel中的用例,写入测试结果并绘制相应的颜色,写入测试耗费时长。

#!/usr/bin/env python
# coding=utf-8
import shutil
import openpyxl
from config import CF
from openpyxl.styles import Font
from openpyxl.styles import PatternFill
from common.variables import VariablePool


class ExcelSet:
    """Excel配置"""

    def __init__(self):
        shutil.copyfile(VariablePool.get('excel_input'), VariablePool.get('excel_output'))
        self.path = VariablePool.get('excel_output')
        self.wb = openpyxl.load_workbook(self.path)
        self.table = self.wb.active

    def get_cases(self, min_row=2):
        """获取用例"""
        all_cases = []
        for row in self.table.iter_rows(min_row=min_row):
            all_cases.append((self.table.cell(min_row, CF.NAME + 1).value,
                              min_row, [cell.value for cell in row]))
            min_row += 1
        return all_cases

    def write_color(self, row_n, col_n, color=CF.COLOR_FAILED):
        """写入颜色"""
        cell = self.table.cell(row_n, col_n + 1)
        fill = PatternFill("solid", fgColor=color)
        cell.fill = fill

    def write_results(self, row_n, col_n, value, color=True):
        """写入结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值