IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 接口自动化测试-使用openpyxl库读取xlsx测试用例数据【python+unittest+requests+openpyxl】 -> 正文阅读

[开发测试]接口自动化测试-使用openpyxl库读取xlsx测试用例数据【python+unittest+requests+openpyxl】

1.接口测试用例的excel文档格式如下:?

2. 读取xlsx的工具类,先安装并导入openpyxl 库(可以先写导入语句,接着按照pycharm提示导入即可),参数化只要表格中的【标题】、【请求体】、【预期状态码】、【预期结果】?数据,函数返回列表套元组格式的数据:[(标题,请求体,状态码,预期结果),(),...]

import json
import logging

from openpyxl import load_workbook


class ReadXlsxUtil(object):

    @classmethod
    def read_xlsx(cls, file_path, sheet_name):
        '''
        :param file_path: xlsx文件路径
        :param sheet_name: xlsx底部的工作表名称
        :return: [(),(),(),...]
        '''
        wb = load_workbook(file_path)
        sheet = wb.get_sheet_by_name(sheet_name)

        case_data = []
        i = 2
        while i <= sheet.max_row:
            # C表格中【标题】的列名,K表格中【请求参数】的列名,L表格中【状态码】的列名,M表格中【预期结果】的列名
            tuple_data = sheet[f'C{i}'].value, json.loads(sheet[f'K{i}'].value), sheet[f'L{i}'].value, json.loads(
                sheet[f'M{i}'].value)
            case_data.append(tuple_data)
            i += 1

        logging.info(case_data)

        return case_data

3. 测试类的参数化实现:导入工具类ReadXlsxUtil.py和参数化库parameterized,在测试方法上引入参数化,可以正常获取数据进行参数化。

import unittest
import config.path_cfg as cfg
from parameterized import parameterized

from common.read_xlsx_util import ReadXlsxUtil


class TestLogin(unittest.TestCase):
    @parameterized.expand(ReadXlsxUtil.read_xlsx(cfg.BASE_DIR + '/data/iHRM.xlsx', '登录'))
    def test_login(self, case_name, body, status_code, expect_data):
        
        # 可以打印看是否都获取正确
        print(f'case_name:{case_name}')
        print(f'body:{body}')
        print(f'status_code:{status_code}')
        print(f'expect_data:{expect_data}')

        # 接下来就是发送请求断言
        pass


  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:33:46  更:2021-12-06 15:34:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:43:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码