美文网首页
测试数据获取操作

测试数据获取操作

作者: 每天进步一点点变成更好的自己 | 来源:发表于2022-06-11 09:54 被阅读0次

测试数据的获取操作通过去设置参数和变量进行提交和操作。在做接口测试的时候,我们经常需要去了解接口的入参和出参。每一个参数的来源都是我们需要清楚了解和熟悉的。
协议级接口测试是目前企业实施接口测试最重要的一部分,在不同的客户端调用统一的协议接口完成数据的传输,以便节省服务器端程序的开发。

1.如何选取测试数据

如何选取测试数据:定义一种参数的存储格式。

# uri_login存储战场的选择武器
uri_selectEq = '/selectEq'
# 武器编号变量存储用户名参数
equipmentid = '10003'
# 拼凑body的参数
payload = 'equipmentid=' + equipmentid
response_selectEq = comm.post(uri_selectEq,params=payload)
print('Response内容:' + response_selectEq.text)

2.参数化存储格式

参数化存储格式:通过统一抽象,建立一个公共处理 数据的方式。

import json
import xlrd
class Param(object):
  def __init__(self,paramConf='{}'):
    self.paramConf = json.loads(paramConf)
  def paramRowsCount(self):
    pass
  def paramColsCount(self):
    pass
  def paramHeader(self):
    pass
  def paramAllline(self):
    pass
  def paramAlllineDict(self):
    pass

class XLS(Param):
  '''
  xls基本格式(如果要把xls中存储的数字按照文本读出来的话,纯数字前要加上英文单引号:
  第一行是参数的注释,就是每一行参数是什么  
  第二行是参数名,参数名和对应模块的po页面的变量名一致  
  第3~N行是参数
  最后一列是预期默认头Exp
  '''
  def __init__(self, paramConf):
    '''
    :param paramConf: xls 文件位置(绝对路径)
    '''
    self.paramConf = paramConf
    self.paramfile = self.paramConf['file']
    self.data = xlrd.open_workbook(self.paramfile)
    self.getParamSheet(self.paramConf['sheet'])
  def getParamSheet(self,nsheets):
    '''
    设定参数所处的sheet
    :param nsheets: 参数在第几个sheet中
    :return:
    '''
    self.paramsheet = self.data.sheets()[nsheets]
  def getOneline(self,nRow):
    '''
    返回一行数据
    :param nRow: 行数
    :return: 一行数据 []
    '''
    return self.paramsheet.row_values(nRow)
  def getOneCol(self,nCol):
    '''
    返回一列
    :param nCol: 列数
    :return: 一列数据 []
    '''
    return self.paramsheet.col_values(nCol)
  def paramRowsCount(self):
    '''
    获取参数文件行数
    :return: 参数行数 int
    '''
    return self.paramsheet.nrows
  def paramColsCount(self):
    '''
    获取参数文件列数(参数个数)
    :return: 参数文件列数(参数个数) int
    '''
    return self.paramsheet.ncols
  def paramHeader(self):
    '''
    获取参数名称
    :return: 参数名称[]
    '''
    return self.getOneline(1)
  def paramAlllineDict(self):
    '''
    获取全部参数
    :return: {{}},其中dict的key值是header的值
    '''
    nCountRows = self.paramRowsCount()
    nCountCols = self.paramColsCount()
    ParamAllListDict = {}
    iRowStep = 2
    iColStep = 0
    ParamHeader= self.paramHeader()
    while iRowStep < nCountRows:
    ParamOneLinelist=self.getOneline(iRowStep)
    ParamOnelineDict = {}
    while iColStep<nCountCols:
    ParamOnelineDict[ParamHeader[iColStep]]=ParamOneLinelist[iColStep]
    iColStep=iColStep+1
    iColStep=0
    ParamAllListDict[iRowStep-2]=ParamOnelineDict
    iRowStep=iRowStep+1
    return ParamAllListDict
  def paramAllline(self):
    '''
    获取全部参数
    :return: 全部参数[[]]
    '''
    nCountRows= self.paramRowsCount()
    paramall = []
    iRowStep =2
    while iRowStep<nCountRows:
    paramall.append(self.getOneline(iRowStep))
    iRowStep=iRowStep+1
    return paramall
  def __getParamCell(self,numberRow,numberCol):
    return self.paramsheet.cell_value(numberRow,numberCol)
class ParamFactory(object):
  def chooseParam(self,type,paramConf):
    map_ = {
    'xls': XLS(paramConf)
    }
    return map_[type
#引入Common、ParamFactory类
from common import Common
from param import ParamFactory
import os
# uri_login存储战场的选择武器
uri_selectEq = '/selectEq'
comm = Common('http://127.0.0.1:12356',api_type='http')
# 武器编号变量存储武器编号,并且验证返回时是否有参数设计预期结果
# 获取当前路径绝对值
curPath = os.path.abspath('.')
# 定义存储参数的excel文件路径
searchparamfile = curPath+'/equipmentid_param.xls'
# 调用参数类完成参数读取,返回是一个字典,包含全部的excel数据除去excel的第一行表头说明
searchparam_dict = ParamFactory().chooseParam('xls',{'file':searchparamfile,'sheet':0}).paramAlllineDict()
i=0
while i<len(searchparam_dict):
  # 读取通过参数类获取的第i行的参数
  payload = 'equipmentid=' + searchparam_dict[i]['equipmentid']
  # 读取通过参数类获取的第i行的预期
  exp=searchparam_dict[i]['exp']
  # 进行接口测试
  response_selectEq = comm.post(uri_selectEq,params=payload)
  # 打印返回结果
  print('Response内容:' + response_selectEq.text)
  # 读取下一行excel中的数据
  i=i+1

相关文章

  • 测试数据获取操作

    测试数据的获取操作通过去设置参数和变量进行提交和操作。在做接口测试的时候,我们经常需要去了解接口的入参和出参。每一...

  • Django models 详解之聚合查询(aggregate)

    一、测试代码及数据 models.py 代码 测试数据 authors: books: 二、常用聚合操作 获取所有...

  • Get API

    测试数据 不获取sourceGET twitter/_doc/1?_source=false 过滤sourceGE...

  • 使用BuildPattern--准备测试数据

    在测试某个功能前,需要准备测试数据是不可或缺的步骤,最原始准备测试数据基于GUI操作生成测试数据,哪还有其他方式准...

  • 笔记6:函数数据参数化

    方便测试函数对测试数据的获取 语法:parmetrize(argnames,argvalues,indirect=...

  • 接口测试如何准备测试数据

    读者提问: 『接口测试准备测试数据,有哪些推荐的操作方法?』 阿常回答: 接口测试准备测试数据,通常有如下 4 种...

  • 数据驱动测试

    问题描述: 将所有操作都写在一个脚本中,既有测试数据,又有测试操作。对于有相同页面操作,只是数据不同的操作,存在大...

  • (十七)MySQL递归查询

    表定义 测试数据 递归查询指定父节点下面的所有子节点数据 获取pid=‘ROOT’的所有节点及下级节点 获取所在层...

  • Mysql操作

    参考: golang操作mysql使用总结 建立测试数据表 上代码 运行结果 结束语

  • Shell典型应用之系统信息及运行状态获取

    1.Linux操作系统信息获取 1-1.概述 1-2.获取操作系统基本信息 获取为哪一种操作系统: 获取操作系统版...

网友评论

      本文标题:测试数据获取操作

      本文链接:https://www.haomeiwen.com/subject/lwnszltx.html