如何加载测试SOAP接口(SOAP函数调用原子)?

时间:2010-09-15 23:42:17

标签: .net visual-studio-2008 soap load-testing soap-client

服务器提供SOAP函数调用接口 数以百计,也许几千台PC称之为功能 我需要使用一台PC加载测试。

目前我只有一个for循环。这够好吗?如果不是,我怎样才能使测试更加真实?

我曾想过线程,但如果SOAP函数调用是原子的,那么就不会买任何东西。即使这样,我的测试器PC上仍然只能有一个活动线程(每个CPU)。

我希望这很清楚,如果没有,请询​​问进一步的信息。

测试这个的最佳方法是什么,在一个上模拟许多PC?


更新,我正在使用VB Express 2008.我无法相信.NET是如此构造的,它将在SOAP远程过程调用的持续时间内阻塞CPU ...或者它?

2 个答案:

答案 0 :(得分:0)

SOAP调用的原子性对线程的有用性几乎没有影响。

您应该在系统放慢测试机器速度之前创建尽可能多的线程。比CPU更多的线程仍会产生大量负载,因为SOAP调用可能不会立即返回。如果你有4个CPU,前4个线程可以同时进行SOAP调用,那么接下来的4个线程可以在原始4个完成之前再进行4次调用。虽然这并不能完全模拟多个机器调用者,但如果没有一组测试机器和一组脚本可以立即调用该服务,您将无法精确模拟该场景。

编辑:修正了上面的拼写错误,单词应该是“可能”而不是“喜欢”

答案 1 :(得分:0)

使用for循环,您可能只发出一个并发请求。运行循环的线程可能会被阻塞,等待响应。请注意,这会阻塞线程,但不会阻塞整个CPU,这可以由许多线程共享。因此,通过使用多个线程,您可以同时发出多个请求。

现在,服务器上的SOAP处理程序可能是单线程的 - 这意味着它只能同时处理1个请求。这种可能性要小得多 - 因为服务器框架专门设计为以这种方式工作。希望你不会发现这种情况。

您确定需要处理多少个同时请求?根据具体情况,即使是10,000个活动客户端的集合也可能只生成10个并发请求。这取决于呼叫的频率以及响应持续时间。请求率(请求/秒)将决定您是否能够从一台计算机可靠/准确地模拟所需的负载。