0

我有一些用于负载测试的数据源。 Web服务调用应完全完成一次调用,然后可再次使用相同的数据源记录。但我的问题是我怎么知道这个数据记录正在使用。我如何在我的VS负载测试中控制这个?如何在VS负载测试中同时避免重复的Web服务调用

+0

你能否提供更多上下文的问题?什么是测试细节以及为什么/如何重复使用记录?如果数据源条目的数据源行数多于虚拟用户数,我通常建议避免重复的并发使用。至少有两倍多,最好多得多。 – AdrianHHH

+0

在我的测试中,我无法再生成更多的数据源。我必须使用有限的用户。我的数据包含用户和密码等数据,每个Web服务呼叫都使用用户和密码。如果有两个相同的Web服务调用发生,服务器将发回错误消息。但我不希望发生这种情况。我希望有一些插件,我可以检查一下现在是否有线程正在使用这个用户和密码,如果是的话,我会等待它结束,如果没有,请发送Web服务呼叫。有没有任何例子可以帮助监控我可以使用的线程?谢谢 – Geri

回答

0

没有内置支持来同步虚拟用户之间数据源值的使用。

一种可能性是将登录请求置于循环中继续尝试,直到成功。

loop "Context parameter exists", Check for existence == false 
    Issue the login request 
     Extraction rule: "Extract text" 
      Search for text such as "Login successful" 
      With Required == false 
endloop 

环路被设置为不断循环,而上下文参数(CP)不存在:登录请求和环路可以如下来构成。在服务器不工作的情况下,设置循环的最大迭代次数(可能为10)可能是明智的。这将确保最终停止测试。

登录请求已发送,并且提取规则会查找一些表示登录成功的文本。如果找到该文本,则将某些内容写入CP。如果登录未成功,则由于Required == false未创建CP。因此循环再次出现。

登录请求可能应该有一个非零的思考时间,以使其他虚拟用户有时间完成数据的使用。如果登录成功,您甚至可以使用PostRequest插件将思考时间设置为零。 (注意,我认为PostRequest插件可以修改思考时间,但您必须检查它是否有效。)

了解测试的性能会稍微复杂一点,因为整体测试时间将包括失败登录尝试。