C/C++教程

pytest数据驱动应用-excel测试用例数据读取封装

本文主要是介绍pytest数据驱动应用-excel测试用例数据读取封装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

接口测试数据存放

  excel、json、yaml、数据库

实例:注册功能

参数 变量名 类型 说明 是否必填
手机号 mobile_phone int 新用户的手机号
密码 pwd string 8-16位
类型 type int 0:管理员,1:普通用户(默认为1)
注册名 reg_name string 昵称:长度最大为10位(不填写有默认值)

读取出来应该是一个大的列表,列表里面放的每一条测试用例,测试用例是一个字典(使用openpyxl)

 步骤:

1、对操作进行封装(请求头、发送请求的操作)

MyRequests.py
"""
    对操作进行封装
"""
import requests
class MyRequests:
    """
        将共性提取出来
        headers="http://api.lemonban.com/futureloan"
    """
    def __init__(self):
        #请求头
        self.headers={
            "X-Lemonban-Media-Type":"lemonban.v2"
        }
    """
        定义一个私有方法,处理请求头(有的请求头有token)
    """
    def __deal_header(self,token=None):
        if token:
            self.headers["Authorization"]="Bearer {}".format(token)#添加字典元素
    """
        发请求方法封装
        method=post或者get
    """
    def send_requests(self,method,url,json=None,params=None,token=None):
        self.__deal_header(token)#处理请求头
        #调用requests方法
        resp=requests.request(method,url,json=json,params=params,headers=self.headers)
        return resp

2、对读取数据的操作进行封装(将excel的测试用例以字典的形式一条一条读取出来)

My_Excel.py
"""
    封装读取表单测试用例的方法
"""
from openpyxl import load_workbook
class MyExcel:
    def __init__(self,excel_path,sheet_name):
        """
            打开工作簿,选择一个表单
        """
        wb=load_workbook(excel_path)#加载一个excel,得到工作簿对象
        self.sh=wb[sheet_name]
    def read_data(self):
        """
            读取excel表单数据
        """
        data=list(self.sh.values)#将生成器转换为列表
        header=data[0]
        case_data=[]
        for row in data[1:]:
            row_dict=dict(zip(header,row))#将头部和用例打包
            case_data.append(row_dict)
        return case_data
#返回的是一个列表,列表中每一条数据都是一个用例

3、执行用例

"""
    测试步骤
    1、读取注册接口的测试数据-读取出来是个列表,列表中每个成员都是一个测试用例
    2、遍历测试数据,每组数据发起一个http请求
"""
import pytest
import json
from common.MyRequests import MyRequests
from common.My_Excel import MyExcel
#1、读取注册接口的测试数据-读取出来是个列表,列表中每个成员都是一个测试用例
excel_path=r'D:\study\study_API\day5\testdata\测试用例.xlsx'#测试用例的存放路径
myexcel=MyExcel(excel_path,'注册接口')
cases=myexcel.read_data()
#2、遍历测试数据,每组数据发起一个http请求
myrequests=MyRequests()
class TestRegister:
    @pytest.mark.parametrize("case",cases)
    def test_register(self,case):
        #需要把请求参数cases转换为字符串
        req_dict=json.loads(case['req_data'])
        resp=myrequests.send_requests(case["method"],case["url"],json=req_dict)
        print(resp.json())

 

这篇关于pytest数据驱动应用-excel测试用例数据读取封装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!