接口自动化 - 生成HttpRunner需要的数据驱动文件,接口的所有字段正反用例全覆盖

本文介绍如何将接口文档整理成HttpRunner需要的数据驱动CSV文件,以实现接口所有字段的正反用例全覆盖。通过自动化脚本,根据接口字段和异常用例创建全面的测试用例,简化测试用例评审过程,并生成适用于HttpRunner执行的测试数据源。
摘要由CSDN通过智能技术生成

由于HttpRunner是基于数据驱动的接口自动化框架,可以完美实现代码和数据分离,那么在写好接口报文后,自动化的效果直接取决于数据文件的全面性.
如果要完美实现一个接口的所有字段正反用例全量覆盖,手写肯定不合适, 但可以对照接口文档,先手写出下面的excel:
name=接口报文的字段名
value=该字段的正常用例
err=该字段的异常用例
null = 为空值

在这里插入图片描述

把用例简化成这个csv文件,测试用例评审时也更加一目了然,不用对着几十条大部分内容千篇一律的数据翻着演示给其他人看了.


接下来就是怎么把上面的csv,转换成HttpRunner需要的csv文件.

先看看需要的效果,如果要实现上面的接口所有交叉全覆盖,生成的用例数会是: 1*3*2*1*1*2*1+(3+4+2+3+3+1+4)=32条.
如果一个接口有十多个字段, 又有多个字段是枚举值的话,生成的用例数会指数级增长. 如果是手工执行,可以用这个方式减少用例,但如果可以自动生成用例并自动执行,那么全覆盖也无所谓.
在这里插入图片描述
res=0代表返回正常结果,res=1代表返回异常结果


脚本流程:

  1. 读取one.xlsx的第一列值(除去标题行),作为two.csv的第一行值.
  2. 对于正常用例,生成笛卡尔列表集,最后加上res标志为0
  3. 对于异常用例,计算出异常用例个数N,然后复制正常用例N份,最后res标志改为1
  4. 把异常用例里的每个异常值,去替代第3步复制的正常用例对应数据

代码:

import os
import xlrd , xlwt
from xlutils.copy import copy as xl_copy
import csv
from typing import Dict, List, Any, Union, Text
import itertools
import random 
from shutil import copyfile
import copy
import sys

   
def gen_cartesian_product(*args: List[Dict]) -> List[Dict]:

    if not args:
        return []
    elif len(args) == 1:
        return args[0]

    product_list = []
    for product_item_tuple in itertools.product(*args):
        product_item_dict = {
   }
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值