「数据库」没经过这些测试,你的微服务架构也敢进入生产环境?( 三 )


到目前为止 , 我们已经测试了用户密码是否经过正确的哈希处理 , 以及密码及邮件是否被保存在数据库内 。
现在 , 我们需要通过请求测试验证流程 。 我们的控制器内包含一条验证管道 , 通过测试传入的有效负载检查对象是否与 CreateUserDto 相匹配 。
「数据库」没经过这些测试,你的微服务架构也敢进入生产环境?
本文插图

下面来看测试过程:
「数据库」没经过这些测试,你的微服务架构也敢进入生产环境?
本文插图

在这里 , 我们希望通过测试观察系统在创建用户之后 , 是否会发送完整对象或者以错误格式发送属性 。
这就是我们在某些极端情况下 , 使用三种基础软件测试方法得出的示例结果 。
手动测试与自动测试 说到这里 , 我们的测试过程一直以手动方式编写——因为示例规模不大 , 所以过程非常顺利 。 但如果代码量庞大 , 那么测试的复杂度与工作量会急剧增加 。
例如 , 如果需要测试身份验证系统 , 大家就必须复制真实用户的完整行为 。 另外 , 在测试环境的构建阶段还需要模拟请求与响应部分 , 包括 cookie 及其他内容 。 很明显 , 测试套件越复杂 , 运行需要的时间就越长 。
幸运的是 , 自动化工具已经成为当前测试工作中的有力武器 。 这类工具包含多种内置功能 , 允许用户模拟整个测试环境 , 轻松搞定手动方式几乎无法实现的测试流程 。
大家还可以走得更远 , 在应用程序中用上 API 自动测试工具 。 这些工具带有多种附加选项 , 能够高效生成负载测试、回归测试与实际运行状况等数据报告 。
另外 , 它们还拥有良好的 UI 设计 , 进一步降低测试编写难度 。
总结 要让软件真正为生产环境做好准备 , 测试绝对是不可或缺的一环 。 而随着应用程序复杂性的持续提升 , 测试工作很可能成为开发团队的最大瓶颈 。
在这种情况下 , 请确保按照具体类型将测试套件区分开来 , 正如我们在示例中的做法 。 想要测试哪类功能 , 就使用与之对应的套件 , 保证事半功倍 。
如果手动套件不足以满足用例要求 , 或者您发现测试太难且编写耗时太长 , 那么不妨选择自动化工具及平台 。 目前这类方案已经相当成熟 , 绝对能够成为各位日常工作中的好帮手 。
关注我并转发此篇文章 , 私信我“领取资料” , 即可免费获得InfoQ价值4999元迷你书!


推荐阅读