requests+unittest接口自动化-数据处理

文件路径:项目目录/common/data_handler.py

EnvData:存放用例中需要使用的数据
clear_EnvData_attrs:清理 EnvData里设置的属性
replace_case_by_regular:替换测试用例中的“##”标记的变量,替换数据在config.ini-[data]中优先查找,再在EnvData中查找,变量名需一致。
excel中需要的变量用#变量名#标记。例"access_token": "#access_token#"

data_handler.py

import re
from common.config_handler import conf
from common.my_logger import logger


class EnvData:
    """
    存储用例要使用到的数据。
    """
    pass

def clear_EnvData_attrs():
    # 清理 EnvData里设置的属性
    values = dict(EnvData.__dict__.items())
    for key, value in values.items():
        if key.startswith("__"):
            pass
        else:
            delattr(EnvData, key)


def replace_case_by_regular(case):
    """
    对excel当中,读取出来的整条测试用例,做全部替换。
    包括url,request_data,expected,check_sql
    """
    for key,value in case.items():
        if value is not None and isinstance(value, str):  # 确保是个字符串
            case[key] = replace_by_regular(value)
    logger.info("正则表达式替换完成之后的请求数据:\n{}".format(case))
    return case

def replace_by_regular(data):
    """
    将字符串当中,匹配#(.*?)#部分,替换换对应的真实数据。
    真实数据只从2个地方去获取:1个是配置文件当中的data区域 。另1个是,EvnData的类属性。
    data: 字符串
    return: 返回的是替换之后的字符串

    ps: 1个是配置文件当中的data区域 。另1个是,EvnData的类属性。必须都是字符串类型。
    """
    res = re.findall("#(.*?)#", data)  # 如果没有找到,返回的是空列表。
    # 标识符对应的值,来自于:1、环境变量  2、配置文件
    if res:
        for item in res:
            # 得到标识符对应的值。
            try:
                value = conf.get("data", item)
            except:
                try:
                    value = getattr(EnvData, item)
                except AttributeError:
                    # value = "#{}#".format(item)
                    continue
            print(value)
            # 再去替换原字符串
            data = data.replace("#{}#".format(item), value)
    return data

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Pythonrequests库是一个非常强大的用于发送HTTP请求的库。在接口自动化测试中,使用requests库可以轻松地模拟发送各种类型的HTTP请求,例如GET、POST、PUT、DELETE等。 首先,我们需要在Python环境中安装requests库,可以使用pip命令进行安装。安装完成后,在测试脚本中引入requests库。 使用requests库发送GET请求非常简单,只需要调用requests库的get()方法,并传入接口的URL即可。可以通过返回的响应对象来获取接口的响应内容、状态码等信息。 如果需要发送POST请求,可以调用requests库的post()方法,并传入接口的URL和请求参数。请求参数可以通过字典形式传递,也可以通过json.dumps()方法将字典转换为JSON格式传递。 在接口测试中,还可以使用requests库设置请求头信息、传递cookies、设置超时时间等。可以通过调用requests库的headers、cookies、timeout等属性来实现。 另外,requests库还可以非常方便地处理接口的返回结果。可以使用json()方法将返回的JSON格式响应内容转换为字典形式,方便后续对返回结果进行断言或其他处理。 总之,Pythonrequests库是一个十分强大且易于使用的接口自动化测试工具。它提供了丰富的功能和灵活的接口,能够满足大部分接口自动化测试的需求。 ### 回答2: Python requests库是一个用来发送HTTP请求的库,可以用于接口自动化测试。通过使用requests库,可以方便地发送GET、POST、PUT、DELETE等常见的HTTP请求,同时也能处理接收到的响应数据。 对于接口自动化测试来说,requests库具有很多优点。首先,它非常简单易用,不需要过多的配置和繁琐的代码,只需要import requests就可以开始使用。其次,requests库提供了丰富的方法和参数,可以满足多种接口测试的需求,比如发送带参数、Headers、cookies等的请求,也可以指定超时时间、Session等。另外,requests库还提供了简洁的响应处理方式,可以轻松地获取响应的状态码、头部信息、响应内容等。最后,requests库具有很好的可扩展性,可以与其他库和工具结合使用,比如结合unittest或pytest等测试框架,实现更加灵活和高效的接口测试。 使用requests库进行接口自动化测试的步骤大致如下:首先导入requests库,然后通过requests.get()或requests.post()等方法发送请求,可以根据需要传入参数、Headers、cookies等。接着,可以使用response对象获取响应状态码、头部信息、响应内容等。最后根据接口返回的数据进行断言,验证接口的正确性。 总之,使用Pythonrequests库进行接口自动化测试,可以简化测试流程、提高工作效率,是一种非常实用的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值