我的项目最近已进入Web服务,但我们的QA团队要求能够设置克隆客户端并克隆Web服务,以便他们可以从克隆客户端向真实Web服务发出请求,并从克隆服务的真实客户端,以单独测试真实的部分。
克隆客户端到真正的Web服务部分很简单,我只是将生成的客户端包装在一个main()应用程序中,该应用程序选择要发送测试团队指定的数据。但服务部分让我很困惑。如何创建一个虚拟服务,只是回应它对日志的请求而不影响实际服务?我希望真正的客户端使用相同的生成客户端代码,只需将软编码的URL指向虚拟的URL。
如果我定义一个与真实服务具有相同名称和签名的新Web服务,真正的客户端是否可以通过URL更改来击中虚拟对象?还是更复杂?我吠叫错了树吗?
答案 0 :(得分:0)
回复:制作虚拟服务
这实际上会被称为制作“mock”服务或网络服务“stub”。你甚至在技术上都不需要编码 - 你可以使用工具。例如,SoapUI能够导入WSDL和create a mock service。还有一些其他discussion的模拟服务 - 它们既可以用于测试客户端应用程序(也可以在后端资源准备好或可用之前简单地开发它)。要使用基于WSDL的服务存根,只需将被测客户端的端点更改为存根实例即可。 SoapUI将向您显示存根的端点URL(并允许您配置)。
服务模拟和存根的时髦术语是“service virtualization”(不要像在虚拟机中那样与serv er 虚拟化混淆)。使用此术语进行的搜索将为您提供更强大(且更昂贵)的工具。
重新:只是网址更改
是的,大部分时间。只要XML命名空间相同且WSDL相同(减去端点URL),您应该没问题。由于WSDL充当接口contract,因此存根必须接受那些相同的输入并产生相同的输出。当然,它是如何做到的,取决于你。
PS - 免费额外建议 - 不要代码虚拟客户端。使用工具(我将再次使用SoapUI作为示例免费工具)使您的Web服务测试更加健壮和可重复。您可以使用示例SOAP请求创建测试套件,添加assertions服务应该如何表现,最重要的是 - 您可以在团队成员之间共享创建测试项目的时间投入,缩短测试设置的时间并确保测试是彻底和可重复的。如果您对客户进行编码,测试客户端的每个测试人员/用户都将拥有自己的测试方式,响应检查可能是手动的,您会注意到最好的QA测试人员何时去度假,因为回归滑入Web服务产品。可重复测试可以解决这个问题,基于工具的自动功能测试就是蜜蜂膝盖。通过单独测试各个部分,你已经走在了正确的道路上。