服务语义检查



有没有一种方法可以从语义上检查服务并知道它的行为是正确的?就像PACT是用于语法检查一样。有没有办法测试我得到的回应是否是我所期望的?

我假设,根据行为,您的意思是验证多个请求之间的不变量,例如"如果我(成功地(使用主体{ "qux": "quux" }PUT /foo/bar/baz,然后是GET /foo/bar/baz,则响应为{ "qux": "quux" }

我不知道是否有任何工具可以直接帮助实现这一点,但Akka的行为测试工具包中用于测试参与者(与潜在的有状态微服务同构(的通用方法是适用的。其基本思想是,服务的状态及其对请求的响应方式实际上是相同的(两种状态的不同之处在于,请求会从这些状态产生不同的响应(。

因此,基本方法是,对于每个单独的测试用例,启动服务的一个实例(可能去掉了依赖项(,并向其发出请求,收集响应。根据微服务中的实现选择,这可能很难实现,也可能不可能实现,尤其是在自动设置和拆除方面。

最新更新