如何测试 SOAP Web 服务的 RPC?

Posted

技术标签:

【中文标题】如何测试 SOAP Web 服务的 RPC?【英文标题】:How to test RPC of SOAP web services? 【发布时间】:2016-09-01 14:54:31 【问题描述】:

我目前正在学习使用 django 和 spyne 构建 SOAP Web 服务。我已经使用单元测试成功地测试了我的模型。但是,当我尝试测试所有这些 @rpc 函数时,我一点运气都没有。

我在测试这些@rpc 函数时尝试过什么: 1.获取模型数据库中的虚拟数据 2.在localhost:8000启动一个服务器 3.创建一个可以与localhost:8000通信的suds.Client对象 4. 尝试从 suds.Client 对象调用@rpc 函数,并测试输出是否符合我的预期。

但是,当我运行测试时,我相信测试在 localhost:8000 处被正在运行的服务器阻止,因此在服务器运行时无法运行测试代码。

我试图让服务器在不同的线程上运行,但这让我的测试更加混乱。

我在网上搜索了尽可能多的内容,但没有找到可以回答这个问题的材料。

TL;DR:你如何使用单元测试来测试@rpc 函数?

【问题讨论】:

Testing Spyne application的可能重复 【参考方案1】:

我相信如果您在测试中使用服务,那么该测试不应该是单元测试。

你可能想考虑使用 factory_boymock,它们都是 python 模块来模拟或伪造一个对象,例如,伪造一个对象来给出一个响应您的 rpc 调用。

【讨论】:

以上是关于如何测试 SOAP Web 服务的 RPC?的主要内容,如果未能解决你的问题,请参考以下文章

JMeter-SOAP/XML-RPC协议的接口测试

jmeter3.2版本如何进行webservice接口功能测试

api接口,RPC,WebService分别解决啥问题

三种主流的WebService实现方案(REST/SOAP/XML-RPC)简述及比较

三种主流的WebService实现方案(REST/SOAP/XML-RPC)简述及比较

如何使用 JMeter 调用你的 Restful Web Service?进行简单的压力测试和自动化测试