接口自动化测试用例设计方法
一、接口自动化测试用例设计方法
1.1 接口参数覆盖
接口测试通过输入使用参数组合,获得服务器返回值,并根据预先设定的规则判断是否符合预期值。在接口测试中,根据接口的功能不同,需要侧重检测的方面也不同。主要从以下几个方面考虑用例设计:
1) 参数类型(数值型、字符型、布尔型、枚举型、组合类型)
a.特定接口字段对入参的参数类型有要求
2)异常值:null、空字符
a.必要参数不允许为空
例:登录账号/密码
3)边界值
a.有限定取值范围的字段(取值范围内的最大、最小、最大+1、最小-1,范围内取值)
4) 默认值
a.非必选参数,未传值时采用默认值
5) 非法值
a.类型不匹配
b.超出类型范围
c. 超出操作系统限制
d.系统关键字
6) 参数组合
7)全对偶组合
保证每个参数和其他参数都有组合出现,即采用尽可能少的组合覆盖尽可能对的参数,覆盖性价比很
8)单点失效
单个参数使用非法或异常值,其他值保持正常取值。
9) 多点失效
多个参数使用非法或异常值,其他采用正常取值
1.2 场景覆盖
a. 从用户角度进行设计的测试覆盖。主要是模拟用户的业务操作,达到对用户行为的覆盖。
b. 场景测试优先覆盖正常路径,其次是分支路径以及异常路径。
c. 测试场景保持独立性和原子性,每个测试场景完成独立的功能,不受其他操作的影响。
二、测试断言设计
自动化测试中的测试通过条件,断言用于判断测试用例执行结果是否符合预期。
设计原则:
a. 尽量保持断言形式统一。
b. 选择具有明确的 message 参数的断言方法,使断言结果的可读性更强。
c.选择断言的对象需准确,有代表性。
d.不使用接口响应数据作为唯一断言,需结合数据库相应数据变化做断言。
三、自动化用例编写规范
a.一个脚本是一个完成的用例。
b.用例中正向逻辑用例为主,逆向逻辑用例为辅。
逆向逻辑的情况较多(例如手机号输错有很多种情况),逆向逻辑按等价类划分法选取具有代表性的用例编写。
c. 用例之间不要产生关联性,即编写的每一个用例都是独立的,不依赖或影响其他用例脚本。
d.整个脚本中只对验证点进行验证,不需对整个脚本每一步都做验证。
e. 测试用例的上下文有一定的顺序性,能够互相连接,并且前置条件清晰。
f. 尽量把重复任务放入一个方法中,这样它可以被多个测试用例调用。
g.测试用例只要不匹配预设的验证点,抛出合适的异常并提供详细的失败信息。
h.前置条件的准备尽量调取功能接口完成,非必要情况不使用直接修改数据库字段值的形式(必要情况下也要保证所修改字段不影响其它数据或系统功能) 。
i.统一命名方式,测试用例模块名、方法名以 test_api 名称命名。