接口自动化--基本

测试框架结构

Test runner:执行器,执行测试用例的引擎

Test case:测试用例

Test fixtures:测试夹具,用例集执行之前、之后的操作

Test suites:测试套件,测试用例的集合或者排序关系

Test execution:单个用例执行之前、之后的操作

Test result formatter:执行结果

 Assertions:断言

接口基本信息

常见接口请求体

上传文件
r = requests.post("url",files={"文件名":open("具体的文件及格式例如:a.txt","rb")})

设置超时

r = requests.get("url",timeout = 0.01)

request设置代理

  • 方法体里写
proxy={
    # 此处的端口是代理软件设置的端口
    "http":"http://127.0.0.1:8888",
    "https":"http://127.0.0.1:8888"
}

# veruft=false,意思是不认证,否则需要配置证书
r =  requests.post("url","data/json/params",proxies=proxy, verify=False)    

JSONPath获取多层结构的响应体的数据

  • JSONPath规则

  • JSONPath使用
# JSONPath第一个参数格式要求为dict,所以不要用r.text
# JSONPath第二个参数为jsonpath的表达式
jsonpath.jsonpath(r.json(),"$..age")

接口鉴权

  • 请求头加token
  • cookies

断言

响应信息数据极为庞大

  1. 针对少量且主要的业务字段断言
  2. 其他字段不做数据正确性断言,只做类型与整体结构的校验
  3. 与前面的版本进行diff,对比差异化的地方

  1. JSONSchema作用
    1. 定义校验JSON数据的结构
    2. 校验JSON数据的一致性
    3. 校验API接口请求和响应
  2. JSONSchema使用步骤
    1. 预先生成对应结构的Schema
    2. 将实际获取到的响应与生成的Schema进行对比
  3. JSONSchema的生成方式
    1. 安装genson
    2. 调用方法生成对应的JSONSchema数据结构
from genson import SchemaBuilder
def generate_jsonschema(cls, obj):
        # 实例化jsonschema
        builder = SchemaBuilder()
        # 传入被转换的对象
        builder.add_object(obj)
        # 转换成schema数据
        return builder.to_schema()

                3. JSONSchema验证

                            1.安装pip install jsonschema

                            2.调用validate()进行验证

def schema_validate(obj, schema):
    '''
    对比python对象与生成的JSONSchema的结构是否一致
    '''
    try:
        validate(instance=obj, schema=schema)
        return True
    except Exception as e:
        return False

环境管理 (多环境切换)   

1. 使用环境管理文件

        yaml

        ini

        常量类

2. 使用不同的文件管理不同的环境

        日常调试的时候,有三种方法设置环境变量,解决os.getenv()获取不到环境变量的问题

        通过环境变量,切换环境

# 设置环境变量
# mac设置环境变量
export env=dev
# windows设置环境变量
set env=dev
# 代码中使用
default = os.getenv("环境变量名称env",default="dev")

3. 在接口用例中只指定path,不指定URL

多协议封装

将多种响应的格式统一成一种(json),方便测试的时候断言

接口加解密

1.通用加密算法

        场景:了解数据使用的通用加密算法,例如base64.

        解决方案:使用通用的解密算法在获取加密响应信息后》对数据进行解密操作研发提供加解密 lib

2.研发提供加解密 lib

        场景:不了解对应的加密算法

        解决方案:需要研发提供加解密对应的Iib 包,完成数据解密

3.提供远程解析服务

        场景:既不是通用加密算法,研发也无法提供lib 包

        解决方案:需要加密方提供远程解析服务,这样既解决了加解密问题,研发方也无需担心加解密算法暴露的问题

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python接口自动化中,POST请求是常见的一种请求方式。POST请求通常用于向服务器提交数据,比如表单数据、JSON数据等。在Python中,我们可以使用requests库来发送POST请求。具体步骤如下: 1. 导入requests库 ``` import requests ``` 2. 构造请求参数 POST请求通常需要传递一些参数,比如表单数据、JSON数据等。我们可以使用字典来构造请求参数。 ``` data = { 'username': 'admin', 'password': '123456' } ``` 3. 发送POST请求 使用requests库的post方法来发送POST请求,传递请求的URL和请求参数即可。 ``` url = 'http://www.example.com/login' response = requests.post(url, data=data) ``` 4. 处理响应结果 发送POST请求后,服务器会返回响应结果。我们可以通过response对象来获取响应结果。 ``` print(response.status_code) # 获取响应状态码 print(response.text) # 获取响应内容 ``` 以上就是Python接口自动化中发送POST请求的基本步骤。 ### 回答2: Python接口自动化中,Post请求是常用的一种请求方式,通常用于向服务器提交数据。Post请求与Get请求不同,它将请求参数放在请求体中,而不是放在URL的参数中。 在Python中,可以使用requests库来发送Post请求,其基本用法示例如下: ``` import requests # 构造请求参数 url = "http://www.example.com/api" data = { "username": "xxx", "password": "xxx" } # 发送Post请求 response = requests.post(url, data=data) # 解析响应数据 result = response.json() ``` 以上示例中,首先构造了请求参数,包括请求URL和请求数据。然后使用requests库发送Post请求,其中url参数传入请求URL,data参数传入请求数据。发送请求后,可以通过response.json()方法将响应数据解析为JSON格式的数据,方便后续操作。 在实际使用中,请求参数的构造可能更加复杂,包括请求头、cookies等,可以通过requests库提供的各种方法进行设置。另外,在接口自动化中,需要进行接口测试的时候,通常需要用到断言,可以使用Python自带的assert语句或其他第三方断言库来进行断言操作。 总之,在Python接口自动化中,Post请求是常见的请求方式,使用requests库可以轻松实现Post请求的发送和响应解析,同时也可以进行断言操作,方便进行接口测试。 ### 回答3: Python接口自动化中,使用POST请求是非常常见的操作。POST请求是HTTP协议中的一种请求方式,主要用于向服务器提交数据。相较于GET请求,POST请求通常用于提交表单数据、上传文件和请求创建新资源等场景。 下面我们来介绍Python中如何实现POST请求的操作。 首先需要导入requests库: ```python import requests ``` 接下来,我们可以定义一个POST请求的函数,传入URL、参数和请求头部(可选): ```python def post_request(url, data, headers=None): """ POST请求 """ response = requests.post(url=url, data=data, headers=headers) # 返回响应结果 return response ``` 以上代码中,我们使用requests.post()方法发送POST请求,传入URL、参数和请求头部。其中,URL表示请求的URL地址,data表示请求的数据,headers表示请求头部,可选。 接着,我们可以通过调用上面定义的函数,发送POST请求并获取响应结果: ```python url = "http://example.com/api/login" data = { "username": "testuser", "password": "testpass" } headers = { "User-Agent": "Mozilla/5.0" } # 发送POST请求 response = post_request(url=url, data=data, headers=headers) # 输出响应结果 print(response.text) ``` 以上代码中,我们定义了一个POST请求的URL地址和请求数据,以及一个请求头部(User-Agent)。然后,我们调用post_request()函数,传入URL、数据和请求头,发送POST请求并获取响应结果。最后,我们输出响应结果的文本内容。 除了以上的方式,我们还可以通过requests库的其他方法实现POST请求,如下所示: ```python # 使用JSON格式数据发送POST请求 response = requests.post(url=url, json=data, headers=headers) # 使用文件上传方式发送POST请求 files = {'file': open('file.png', 'rb')} response = requests.post(url=url, files=files, headers=headers) ``` 以上代码分别演示了通过JSON格式数据和文件上传方式发送POST请求的方法。 总的来说,Python实现接口自动化中的POST请求操作,其实就是通过requests库提供的post()方法或其他方法,传入请求的URL、数据和请求头部,即可实现。同时,需要注意请求参数的格式和请求头部的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值