如何测试一个SOAP接口(SOAP是函数调用原子)?(How to load test a SOAP

2019-09-25 20:44发布

服务器提供了一个SOAP函数调用接口。
数以百计,也许几千,电脑调用该函数。
我需要一台PC上加载测试这一点。

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

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

我希望这是明确的,请询问进一步的信息,如果没有。

什么是测试的最佳方式,在一个模拟多台电脑?


更新,我使用VB快递2008年。我不能相信,.NET就是如此,它会阻止SOAP的远程过程调用的持续时间的CPU ...或不是吗?

Answer 1:

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

现在,服务器上的SOAP处理程序可能是单线程的 - 这意味着它只能同时处理1名的请求。 这是不太可能-因为服务器架构是专为以这种方式工作。 希望你会不会发现这种情况。

你已经确定你需要多少同时请求来处理? 根据不同的情况下,即使是10000个的有效客户收集可能只产生10个并发请求。 这将取决于呼叫的频率和响应时间。 请求率(请求/秒)将确定是否将能够可靠地/准确地从一台计算机模拟所需的负载。



Answer 2:

SOAP调用的原子对线程的用处不大。

你应该创造尽可能多线程的系统将允许它减慢您的测试机前。 比CPU更螺纹仍将产生大量的负载,因为SOAP调用可能不会立即返回。 如果你有4个CPU,第4个线程可以simultanously进行SOAP调用,然后在接下来的4个线程可以再拍4调用原来的4完成之前。 虽然这并不准确地模拟多机来电,您将无法精确模拟那种情况下没有一组测试机器和一组脚本来一次调用服务。

编辑:上述固定错字,字应该是“有可能”,而不是“喜欢”



文章来源: How to load test a SOAP interface (are SOAP function calls atomic)?