|
导语:登录接口是每个系统最基础的功能,看似简单,实则暗藏玄机。本文以一个真实的登录接口为例,系统讲解接口测试用例设计方法,附完整用例清单,建议收藏。 |
在接口测试中,登录接口往往被当作”入门练习”。很多测试工程师觉得:不就是发个请求、验证返回结果吗?能有多复杂?
然而,正是这种”简单”的认知,让很多Bug在上线后才被发现。我们团队在复盘一次生产事故后,重新审视了登录接口的测试覆盖,最终设计了47个测试用例。这篇文章,我来拆解这些用例是怎么设计出来的。
一、从需求出发:登录接口到底要测什么?
假设我们有一个典型的登录接口:
- 接口地址:
POST /api/login - 请求参数:
username(用户名)、password(密码) - 返回结果:
成功返回token,失败返回错误码和提示信息
看似简单,但我们需要从多个维度来思考测试覆盖:
- 功能正确性:
正常登录能否成功? - 参数校验:
各种异常输入如何处理? - 业务规则:
账号状态、密码错误次数限制等 - 安全性:
SQL注入、暴力破解防护 - 性能与并发:
高并发下是否正常?
二、用例设计方法:三种经典方法的综合运用
1. 等价类划分法
将输入数据划分为有效等价类和无效等价类,每个等价类选取一个代表值进行测试。
用户名等价类划分:
-
有效等价类:符合规则的正常用户名(如6-20位字母数字组合) -
无效等价类:空值、超长、特殊字符、SQL注入字符
2. 边界值分析法
在等价类边界上选取测试数据,这是发现Bug最有效的方法之一。
用户名长度边界:假设规则是6-20位
-
5位(刚好小于最小值) -
6位(最小值) -
7位(最小值+1) -
19位(最大值-1) -
20位(最大值) -
21位(刚好大于最大值)
3. 场景法/错误推测法
基于实际使用场景和经验,推测可能出错的情况。
-
账号被锁定后尝试登录 -
密码连续错误5次 -
同一账号多地同时登录
三、47个用例完整清单
说明:以下用例按测试维度分类,实际执行时可根据优先级调整顺序。P0为最高优先级,P2为低优先级。
【一】正常场景(3个)
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
【二】参数校验-用户名(10个)
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
【三】参数校验-密码(8个)
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
【四】账号状态相关(6个)
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
【五】安全相关(8个)
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
【六】并发与性能(4个)
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
【七】其他场景(8个)
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
四、用例设计的几个关键原则
注意:用例数量不是目的,覆盖率才是。47个用例的价值在于系统性,而非数字本身。
在实际工作中,我总结了几个原则:
1. 先广后深
先保证各个维度都有覆盖,再深入每个维度的细节。比如先覆盖”参数校验、账号状态、安全性”三大类,再细化每类中的具体场景。
2. 边界必测
边界值是用Bug的高发区。长度、次数、时间等有明确边界的场景,边界值测试一个都不能少。
3. 安全先行
登录接口是安全的第一道门,SQL注入、XSS、暴力破解等安全测试必须覆盖。这些Bug一旦漏到生产,后果严重。
4. 优先级分级
不是所有用例都同等重要。P0用例必须100%通过,P1用例尽量覆盖,P2用例视时间情况。这样在时间紧张时也能保证核心质量。
五、写在最后
一个看似简单的登录接口,认真分析下来竟然有47个测试场景。这说明什么?
测试的价值不在于发现Bug,而在于系统性地保障质量。当我们能够穷尽各种可能的情况,才能说”这个功能我测透了”。
当然,47这个数字不是标准答案。不同的业务场景、不同的安全要求,用例数量会有差异。重要的是掌握等价类、边界值、场景法这些设计方法,举一反三。
总结:接口测试用例设计,核心是”全面”和”系统”。从一个登录接口出发,希望你能建立起自己的用例设计思维框架。下次写用例之前,不妨先问自己:我写了几个?
