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