代码之家  ›  专栏  ›  技术社区  ›  sastanin

测试公共Web服务的客户端

  •  0
  • sastanin  · 技术社区  · 14 年前

    测试公共Web服务的自定义客户端的方法有哪些?

    今天有许多提供API的在线服务。使用这些API的小应用程序激增。例如:用于社交网络和博客平台的桌面/移动客户端、文档存储和处理中心、云数据库、实时数据流、地理信息系统数据等。

    问题是,这些应用程序中最重要的部分通常是与在线服务通信(处理错误、编码/解码数据、处理配额、调整API更新等),但客户端的开发人员不控制服务。因此,我们不能直接看到测试的效果,也不能总是将服务的状态回滚回原始状态。

    • 你如何设计你的客户测试来重现?
    • 你测试什么行为?
    • 如何测试破坏性或重载行为?(反对) 公众的 服务)
    • 您是否自动运行这些测试(例如,作为预提交挂钩)?
    • 您如何测试异常情况(从服务下降到超过配额,到不一致状态,再到服务行为的突然变化)?
    1 回复  |  直到 14 年前
        1
  •  1
  •   djna    14 年前

    非常清楚你在测试什么。您是否在测试您的代码在接收到来自服务的响应时会做它应该做的事情?正常和异常?然后模拟服务,这样您就可以很容易地练习这些路径。

    是的,我将设计可重复编程的测试,并在一些框架下运行它们,这些框架允许我自动运行它们,理想情况下也是构建/提交的一部分。

    但是测试服务本身呢?一些测试只是从验证您的解决方案中产生的。例如,重载。好吧,尽管不反对社交很重要,而且让公共服务饱和是不合理的,但是如果有公开的服务水平协议,那么我认为测试它是合理的。所以,如果你的应用程序预计每秒发出n个请求,那么我们肯定至少应该测试一下。测试我们的整体解决方案,使其达到所需的吞吐量。

    去毁灭?也许太反社会了。但是,我确实认为,发送有效和无效的请求,并检查预期的响应是否发生,如果只是作为对您所使用的服务的健全性检查,那么可能是有效和有价值的。所以我至少要为公共服务提供一个回归套件,这样我就可以很容易地验证它的行为是否如文档所示。