记录 | 接口自动化测试


前言

参考文章:allure的安装配置、使用

参考视频:一小时学完Python接口自动化测试教程,接口自动化测试实战教程

自己的感想
主流测试语言:Java 和 Python
Python对于新手友好。Java要一定基础。两者都会为最好。


一、小知识点

1.1 框架作用

对于测试用例:
原来是人工将测试用例录入到测试工具中,现在需要自动读取测试用例,并将测试用例写入到Jemeter或者Postman中。【利用框架】
对于测试请求:

对于测试响应:

1.2 测试用例存储方式

企业保存测试用例的方式:

  • excel
  • json
  • yaml
  • database

1.3 excel存放位置

在这里插入图片描述

1.4 快速构建框架

1.4.0 步骤

  • 获取测试用例
  • @pytest遍历执行每条测试用例【通过发送接口请求】
  • assert断言判断每个测试用例的响应值
  • 获取测试报告

1.4.1 学会使用工具—— xToolkit

在这里插入图片描述

简单的例子

from urllib import response
import xToolkit
import requests

# 自动读取测试用例
all_tests = xToolkit.xfile.read("自动化测试用例.xls").excel_to_dict(sheet=0)
print(all_tests)

# 2.接口请求
for test in all_tests:
    print("当前执行的测试用例:", test)
    # 发送Http请求
    response = requests.request(
        url=test["接口URL"],
        method=test["请求方式"],
        params=eval(test["URL参数"]),
    )
    print("接口响应:", response.text)

requests.request():

  • 根据用例中的字段动态发送 HTTP 请求。

  • 关键参数解析:

    • url=test[“接口URL”]:从用例字典获取接口地址。

    • method=test[“请求方式”]:获取请求方法(GET/POST等)。

    • params=eval(test[“URL参数”]):

    • test[“URL参数”] 是字符串(如 “{‘key’: ‘value’}”),需要用 eval() 转换为字典。

注意:eval() 有安全风险,确保 Excel 文件可信

进阶 pytest

使用pytest来执行多条用例

from urllib import response
import xToolkit
import requests
import pytest

# 自动读取测试用例
all_tests = xToolkit.xfile.read("自动化测试用例.xls").excel_to_dict(sheet=0)
print(all_tests)

# 2.接口请求
@pytest.mark.parametrize("test",all_tests)
def test_case_exec(test):
    print("当前执行的测试用例:", test)
    response = requests.request(
        url=test["接口URL"],
        method=test["请求方式"],
        params=eval(test["URL参数"]),
    )
    print("接口响应:", response.text)
解析

@pytest.mark.parametrize:

  • pytest的装饰器,用于参数化测试
  • 将 all_tests(Excel读取的字典列表)中的每条用例依次传入test参数。
    test_case_exec(test):
  • 每条测试用例执行时,test是一个字典,包含接口URL、请求方式、参数等。
注意:运行的特殊性

pytest的运行,需要你在@pytest的位置右击选择“Run”,这样才是运行pytest部分的代码。
在这里插入图片描述
pytest的可取地方是,能直观的看到测试用例中有多少是通过的。
在这里插入图片描述

思考

excel表格中存储所有的测试用例。
测试用例中包含了测试的请求内容和响应内容。
对于请求内容我们遍历发送Http请求
对于响应内容,我们如何遍历进行比对呢?

断言,用于判断结果是否相同

# 3.接口响应——断言判断
    assert test['预期状态码'] == response.status_code, '测试不通过,状态码不对'

测试报告——allure插件

allure安装前需要先安装JDK。我的当前环境是pycharm和IDEA都是2024版,所以可以直接用JDK17.
而JDK17的环境变量配置如下:
在这里插入图片描述

注意:allure的安装好后,也是配置环境变量。可以在网上找找。
运行前需安装 allure-pytest

pip install allure-pytest

之后点击运行,就能生成两个文件夹,一个是allure-result,另一个是测试报告。如下图:
在这里插入图片描述



更新时间

  • 2025-04-16:创建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值