聊一聊接口测试如何校验返回结果的正确性

聊一聊接口测试如何校验返回结果的正确性

接口测试如何验证返回结果的正确性,可能需要从基本的HTTP状态码开始,比如200表示成功,404找不到资源等等。但状态码正确不代表返回的数据没问题,所以下一步应该检查数据结构是否符合预期,比如JSON格式的字段是否正确,类型是否匹配。然后可能需要验证具体的字段值,比如创建用户后返回的ID是否非空,或者订单金额是否正确。

还要进一步考虑到数据一致性,比如数据库里的数据是否和接口返回的一致,这时候可能需要查库验证。还有业务逻辑的正确性,比如下单接口是否真的减少了库存,或者状态流转是否正确。异常情况的处理也很重要,比如参数错误时是否返回了合适的错误码和提示信息。

性能方面可能也需要考虑,比如响应时间是否在可接受范围内,虽然这可能属于性能测试的范畴,但有时候接口测试也会涉及。还有安全方面的校验,比如敏感信息是否加密,或者权限控制是否到位。另外,数据格式的校验,比如日期格式、邮箱格式是否正确,这些细节也不能忽视。

接口测试中的参数传入非法参数时接口的行为是否符合预期,这时候需要提醒不仅要测试正常情况,还要覆盖各种异常场景。还有性能和安全方面,虽然可能不是接口功能测试的核心,但也是确保接口正确性的重要部分。

一、基础校验

HTTP状态码

校验返回的HTTP状态码是否符合预期(如200表示成功,400表示请求错误,500表示服务端错误等)。

示例:assert response.status_code == 200

响应头部

检查Content-Type是否符合接口定义(如application/json)。

验证安全相关头部(如CORS策略、Cache-Control等)。

二、 数据结构校验

JSON Schema校验

使用JSON Schema验证响应数据的结构、字段类型、必填字段等。

jrhz.info

工具支持:jsonschema(Python)、Ajv(JavaScript)、Postman的Schema断言。

示例:

#python

schema = {

"type": "object",

"properties": {

"id": {"type": "number"},

"name": {"type": "string"},

"is_active": {"type": "boolean"}

},

"required": ["id", "name"]

}

assert validate(response.json(), schema)

字段存在性与类型

直接断言关键字段是否存在且类型正确。

示例:assert isinstance(response.json()["id"], int)

三、业务逻辑校验

字段值正确性

验证返回数据的具体值是否符合业务规则:

订单金额是否计算正确。

时间戳是否为合理范围。

关联ID是否匹配(如创建资源后返回的ID是否存在于数据库中)。

示例:assert response.json()["total_price"] == 100.0

数据一致性

数据库校验:调用接口后,检查数据库中的数据是否与接口返回一致。

python

# 假设接口创建了一个用户

db_user = database.query("SELECT * FROM users WHERE id = ?", response.json()["id"])

assert db_user.name == response.json()["name"]

跨接口校验:调用A接口后,通过B接口验证结果(如支付后查询订单状态)。

业务规则验证

校验业务状态流转(如订单状态从“待支付”变为“已支付”)。

校验关联数据变化(如扣减库存、积分增加等)。

四、异常场景校验

错误码与错误信息

验证非法请求时返回的错误码和提示信息是否明确。

示例:

assert response.json()["code"] == "INVALID_PARAMETER"

边界值与异常输入

测试空值、超长字符、负数、非法格式等场景。

示例:传递user_id=0或amount=-100时是否返回错误。

五、性能与安全校验

响应时间

校验接口响应时间是否在可接受范围内(如<500ms)。

示例:assert response.elapsed.total_seconds() < 0.5

敏感数据脱敏

验证返回的敏感字段(如手机号、身份证🪪)是否脱敏。

示例:assert response.json()["mobile"] == "185****2886"

安全头与权限

检查未授权访问时是否返回403。

验证Token失效场景。

特别声明:[聊一聊接口测试如何校验返回结果的正确性] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

『赵露思』现身西安赛格:粉丝太疯狂人山人海,上百保安维持现场秩序(『赵露思』西装)

从商场顶层俯瞰,乌泱泱的人潮把十层赛格挤成沙丁鱼罐头——这竟是工作日下午三点! 凌晨五点的赛格商场外已现魔幻场景:裹着外套🧥的年轻女孩们蹲坐在台阶上啃面包,手机屏保清一色是『赵露思』的笑颜。毕竟能让大学生们逃课、…

『赵露思』现身西安赛格:粉丝太疯狂人山人海,上百保安维持现场秩序(『赵露思』西装)

田亮猛料曝出!杨明娜不忠诚风波,『娱乐圈』️又掀大瓜(田亮是谁?)

杨明娜呢,也是个硬茬儿,立马回敬了一份律师函,这剧情,简直比那些狗血剧还刺激!想当初,田亮和杨明娜也是『娱乐圈』️的金童玉女啊。这一下子,网上可就炸开锅了,大家都在猜,这到底是怎么回事? 所以啊,爱情这东西虽然美…

田亮猛料曝出!杨明娜不忠诚风波,『娱乐圈』️又掀大瓜(田亮是谁?)

『张雨绮』的身材是真有料,穿黑色透视蕾丝裙风情万种,美到国外去了(『张雨绮』的身材和气质)

这款裙子👗的上半身以透视蕾丝为主,轻露肌肤又不过于挑衅;挂颈的剪裁则巧妙拉长颈线,视觉上更显瘦并增添潮流感,让造型不显单一。对于微胖或骨架偏大的中年人群,可以考虑短款黑色西装,叠穿连衣裙👗或搭配衬衫、T恤👕等,层…

『张雨绮』的身材是真有料,穿黑色透视蕾丝裙风情万种,美到国外去了(『张雨绮』的身材和气质)

王骁出手,为『成毅』出窝囊气!官媒表态,陈佩斯果然没说错(王骁去向)

结果新剧里侠客造型刚上线,就被扒出脚踩现代洞洞鞋,镜头扫过那瞬间,弹幕直接炸了:“这是穿越了还是剧组摆烂?”这话一出,网友瞬间乐了:“王骁这是不忍了,硬给『成毅』出了口窝囊气啊!” 这两天官媒也看不下去了,直接点…

王骁出手,为『成毅』出窝囊气!官媒表态,陈佩斯果然没说错(王骁去向)

高级财务人才的职业跃迁路径(高级财务人员的薪酬)

高级财务人才如何逆袭成CFO?揭秘职业跃迁的底层逻辑!高级财务人才, 职业跃迁, CFO, 财务转型, 财务管理为什么同样的起点,有人十年登顶CFO,有人十年还在做报表?高级财务人才的职业跃迁,早已不是拼加班和Excel技巧的时代。

高级财务人才的职业跃迁路径(高级财务人员的薪酬)