软件测试 | 接口测试工具的不足
1.测试数据不可控
接口测试本质是对数据的测试,调用接口输入一些数据,再验证接口返回的一些数据的正确性。如果接口返回的数据不可控,那么就无法自动断言接口返回的数据。
例如,有一个用户查询接口,要输入用户名,返回用户的年龄、性别、邮箱、手机号等数据。在测试该接口时传参 username=Tom。那么,数据库里一定要有一条 Tom 的数据,否则接口返回空。要想断言接口返回数据,如 Tom 的年龄(assert age==22),那么一定预先知道接口会返回哪些数据,并且每次返回的数据必须是固定的。如果无法做到这一点,那么当断言失败时,就不能断定到底是接口程序引起的错误,还是测试数据变化引起的错误。我们要做的就是通过初始化测试数据排除后一种情况引起的测试失败。
然而,一般的接口测试工具都没有初始化测试数据的功能,无法真正地做到接口测试的“自动化”。
2.无法测试加密接口
这时一般接口测试工具的另一大缺点,但在实际项目中,多数接口并不是可以随便调用的,会使用用户认证、签名、加密等手段提高接口的安全性。一般接口测试工具无法模拟和生成这些加密算法。
3.扩展能力不足
当我们在享受工具所带来的便利的同时,往往也会受制于工具所带来的一些局限。例如,有时我们想生成不同格式的测试报告,并将测试报告发送到指定邮箱。又或者想将接口测试集成到 CI(持续集成)中,做定时任务。
然而,接口测试工具却无法实现功能扩展,或需要通过很复杂的方式才能实现。相比而言,编程语言就不存在这样的局限性。
备注:关于上面介绍的几点不足,Robot Framework 都可以满足,严格意义上来说,Robot Framework 并不属于“工具”,虽然将其划分到了测试工具一章,Robot Framework 有着与编程语言一样的扩展性,前提是你需要掌握 Python 语言,并且可以为 Robot Framework 开发系统关键字。然而,Robot Framework 的脚本可读性差是它的最大弱点。如果需要为它大量开发系统关键字,那么何不直接写 Python 程序,岂不是更自由。
搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核
评论