接口测试测什么?一个简单问题把我难住了

那么设计测试用例时我们主要考虑如下几个方面:

01、功能测试

接口的功能是否正确实现了

接口是否按照设计文档中来实现

(比如username参数写为了user,那么这就不符合,因为接口文档在整个开发中都需要使用,所以接口实际的设计要与接口设计文档中保持一致)

  • 兼容性测试:

    比如说今天接口进行了调整,但是前端没有进行变更,这时候需要验证新的接口是否满足旧的调用方式

  • 错误码测试:

    通用的错误码与业务错误码是否能够清晰的说明调用问题,错误码是否能够尽可能的全的覆盖所有的情况

  • 返回值测试:

    返回值除了内容需要是正确的,还需要类型也是正确的,保证调用方拿到这些参数能够正确的解析

参数边界值、等价类测试

  • json格式测试:

    通常我们的接口一般设计的都是传递json串,那么就需要去测试 如果传递非json的情况,这时候程序会不会正确的处理,返回相应的 error code

  • 默认值测试:

    很多情况一些非必填的参数会有默认值,比如说一个查询的接口,参数count为返回查询的结果数量, 默认为10,那么就应该有一条case来测试,当然前置条件是数据库里面必须要存在这样的数据超过10条。

02、逻辑业务

是否有依赖业务,比如查看订单,是需要用户首先登录的,所以肯定要保证登录了或有相应的cookie

业务逻辑测试:传递正确的参数,接口对数据库进行查询的操作,需要去验证数据库查询是否正确,接口对数据库进行 增删改的操作,也需要看数据库是否同步进行了这些操作

03、异常测试

异常分为两类,参数异常数据异常

1、参数异常:

  • 关键字参数:

    将参数写为开发语言中的关键字

  • 参数为空:

    比如去掉了username参数

  • 多或少参数:

    多或者少参数的验证,现在还不确定如果一个接口多了参数如果没有报错是否是合理的,或者是否需要优化,因为就目前开发给予的答案是,一般不对接口多了参数的处理

  • 错误参数:

    比如将username参数写为了user等看是否能返回相应的error code

2、数据异常:

  • 关键字数据:

    将参数的值填为开发语言中的关键字

  • 数据为空:

    将参数的额值填为空

  • 长度不一致:

    因为数据库中每个字段都设置有字段长度,填写不符合的长度进行验证

  • 错误数据:

    就是将参数的值任意填写,或填写不存在的数值

  • 异常类型测试:

    比如count参数,这个参数的类型一定是可以转换为int类型的,这时候我们需要测试如果传的一些不可以 转换为int类型值来测试代码是否加入判断

04、性能测试
  • 响应时间

  • 吞吐量

  • 并发用户数

  • 占用内存,CPU等

05、安全性测试

敏感信息是否加密

必要参数是否后端也进行校验

(现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证)

接口是否防恶意请求(SQL注入)

  • cookie

    将header中的cookie修改或删除后看是否能返回相应的error code

  • header

    删除或修改header中部分参数的值,看是否能返回相应的error code

  • 唯一识别码

    删除修改唯一识别码测试

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

<think>好的,用户之前问过VectorCAST的使用教程,现在接着问“手动补充试逻辑?不会”,看起来他们在生成试框架后,对如何手动添加试逻辑有困难。需要详细解释这部分,可能用户是新手,不太清楚具体步骤。 首先,用户可能已经按照教程生成了试用例模板,但不知道怎么填参数和断言。需要分步骤说明,比如如何设置输入参数,如何定义预期结果,使用哪些宏。最好用实际例子,比如一个加法函数,这样更直观。 还要注意用户可能对TEST_PARAM、TEST_ASSERT这些宏不熟悉,需要解释每个的作用。同时,他们可能不知道如何模拟外部依赖,比如打桩函数,这部分也需要举例说明,比如用VCAST_STUB替代实际函数。 另外,常见错误和调试方法也是用户关心的,比如参数不匹配或断言条件错误,可以给出检查建议。最后,提醒用户参考官方文档或示例代码,帮助他们进一步学习。保持语言简单,步骤清晰,避免使用太专业的术语,让用户容易理解。</think>明白!很多用户在使用 VectorCAST 自动生成试框架后,对如何 **手动补充试逻辑** 感到困惑。以下用 **最直白的步骤+示例** 说明如何操作: --- ### **1. 自动生成的试框架长什么样?** 假设你有一个试的C函数: ```c // 示例函数:计算两个整数之和 int add(int a, int b) { return a + b; } ``` VectorCAST 生成的试用例模板类似这样: ```c #include "add.h" // 被试函数的头文件 VCAST_TEST_CASE_BEGIN(Test_add_001) { // 这里是需要你手动补充逻辑的位置! } VCAST_TEST_CASE_END ``` --- ### **2. 手动补充逻辑的3个关键步骤** #### **步骤1:设置输入参数** 用 `TEST_PARAM` 宏定义输入值(对应函数的参数): ```c VCAST_TEST_CASE_BEGIN(Test_add_001) { // 设置输入参数 a=2, b=3 TEST_PARAM("a", 2); TEST_PARAM("b", 3); } VCAST_TEST_CASE_END ``` #### **步骤2:调用被函数并获取结果** 用 `TEST_CALL` 执行函数,并用变量接收返回值: ```c VCAST_TEST_CASE_BEGIN(Test_add_001) { TEST_PARAM("a", 2); TEST_PARAM("b", 3); // 调用函数并保存结果 int result = TEST_CALL(add); } VCAST_TEST_CASE_END ``` #### **步骤3:验证预期结果** 用 `TEST_ASSERT` 断言判断结果是否符合预期: ```c VCAST_TEST_CASE_BEGIN(Test_add_001) { TEST_PARAM("a", 2); TEST_PARAM("b", 3); int result = TEST_CALL(add); // 验证结果是否等于 5 TEST_ASSERT("结果应为5", result == 5); } VCAST_TEST_CASE_END ``` --- ### **3. 进阶技巧:处理复杂场景** #### **场景1:函数依赖外部硬件/其他模块** 假设被函数调用了外部接口 `read_sensor()`,试时需要 **模拟(Stub)** 该函数: ```c // 原始代码(难以在试中直接调用) int read_sensor() { // 实际硬件操作... } // 在试用例中模拟返回值 VCAST_STUB(int, read_sensor, (void)) { return 100; // 强制返回固定值 } ``` #### **场景2:试异常分支** 若函数有错误处理逻辑(如参数非法),需构造边界条件: ```c VCAST_TEST_CASE_BEGIN(Test_add_InvalidInput) { TEST_PARAM("a", -1); // 输入负数 TEST_PARAM("b", 0); int result = TEST_CALL(add); TEST_ASSERT("负数输入应返回错误码", result == ERROR_CODE); } VCAST_TEST_CASE_END ``` --- ### **4. 常见错误与调试** - **问题1**:`TEST_PARAM` 参数与实际函数参数顺序不一致 → 检查函数声明,确保参数名称和顺序完全匹配。 - **问题2**:`TEST_ASSERT` 条件写反(如 `result == 5` 写成 `5 == result`) → 错误提示会更难理解,建议统一用 `实际值 == 期望值` 格式。 - **问题3**:未处理全局变量或静态变量状态 → 在试用例开头用 `TEST_INIT` 重置环境。 --- ### **5. 快速验证** 完成补充后,点击 **Build & Run**,观察试结果: - ✅ 绿色:断言通过 - ❌ 红色:断言失败(检查输入/预期值逻辑) --- 如果还是卡住,可以尝试: 1. 在 VectorCAST 安装目录中查找 `Sample` 文件夹,参考官方示例代码 2. 右键点击试用例 → 选择 `Auto-Generate Test Data`(部分简单场景可自动生成断言)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值