如何做好接口测试用例设计
接口测试主要分为系统作为服务端和系统作为客户端2种类型考虑进行用例设计。接口测试需要考虑业务组网和接口类型。通常来说系统在一个接口测试场景中会同时作为服务端和客户端。
系统做服务端考虑
1、功能。系统能够正确处理所有参数正常值、异常值,并按照要求响应客户端,包括结果码、成功或者失败处理消息等。
2、性能。系统能够处理客户指定的性能指标、最大压测TPS,确保消息不丢失。系统最可以考虑静态、动态负荷控制(流控)。
3、并发。系统能够正确处理并发,不造成客户损失。特别是支付类(涉及钱)接口。
4、安全。需要考虑协议安全、参数传输安全(密码加密传输)、访问权限控制、其他安全控制(如pin多次错误输入锁pin)。
5、组网考虑。业务处理结果能够正确返回对应的客户端。
系统做服务端用例设计
1、参数完全覆盖,用例是否覆盖所有必须参数、可选参数;
2、参数值范围设计,用例是否包含参数设计的范围内所有的值,如果是枚举,需要逐一覆盖;
3、参数状态设计,用例是否包含改参数所特有的状态(如密码参数,包含正常、过期、锁定、待修改等)
4、参数边界值设计,用例是否包含边界5点(上点、内点、离点);
5、参数属性设计(必选),用例是否包含参数不存在、参数值为空;
6、参数属性设计(可选),用例是否包含该参数不存在、参数存在但是值为空;
7、参数间关系设计。用例是否包含参数间约束、依赖关系。
8、参数安全性设计,考虑参数是否需要加密,用哪种安全算法加密,考虑正确加密密文、正确明文进行设计;
9、参数边界值设计,用例是否包含边界5点(上点、内点、离点);
10、接口消息传输协议考虑,是否需要使用安全协议,如HTTPS。
11、参数响应结果设计。用例是否对响应结果的结构检查、所有成功或者失败结果码和消息的覆盖。
12、组网考虑。用例是否包含返回给客户端的消息能否正确返回到发送的客户端。
13、访问权限设计。用例是否包含用户有权限、无权限访问场景。
系统做客户端考虑
1、功能(报文发送)。系统能够按照协议规范或者格式要求正确发送报文。
2、功能(响应结果处理)。系统能够正确处理服务端响应的结果,并按照响应结果在本系统进行正确处理。响应结果考虑成功,失败,超时。
3、组网。系统能够将报文正确发送到指定的服务端。
系统做客户端用例设计
1、参数完全覆盖,用例是否覆盖所有必须参数、可选参数。这里需要考虑2种情况。一种是用户直接与系统交互输入相应的信息,系统根据设计拼接对应参数发送到服务端。另一种是系统根据用户输入再加工后再发送报文到服务端。对于后者需要针对性设计。
2、参数默认值。用例是否包含不指定参数默认值和指定默认值参数的值。
3、组网考虑。是否是否包含考虑报文正确发送的指定功能的服务端。
4、响应结果处理。用例是否包含第三方返回成功结果码和成功结果码及相应消息的场景。
5、响应结果处理(超时)。用例是否包含对服务端超时响应的处理,重点关注业务对超时处理逻辑(消息重发、按照成功还是失败处理或者是挂起手工干预等)。
6、超时结果处理。用例是否包含超时结果处理。比如手工干预,设计用例手工干预成功或者手工干预失败,包括单个和批量干预情况。
7、超时时长。用例是否包含等待超时消息时长的设计。包括超时时长是否合理、超时时长是业务设置还是平台设置、是否有依赖关系、客户端超时时长是否大于服务端配置超时时长、服务端处理业务耗时时长考虑。
8、发送第三方请求消息检查,检查请求消息中所有参数类型、参数值是否符合接口设计规范。