Visual Studio Load Test - Using Data Source with Multiple Agents

牧云@^-^@ 提交于 2019-12-11 06:38:26

问题


I'm using Visual Studio 2015 Load Test and running a Web Performance test that has a data source connected. The data source contains user login information for 250 users.

Running this in sequential order on a single agent works fine. However, I'm attempting to add in 10 test agents to share out the load. By design the Load Test copies the data source to each agent and it runs the test. What ends up happening is that all 10 agents start the test using the row 1 user from the data source. I'm hoping there's away to set up the Load Test to run sequentially across all agents (ex: Agent 1 uses row 1, Agent 2 uses row 2, Agent 3 uses row 3, etc...)

I suspect there's not an option to set this up, but wondered if anyone ran into this and had workarounds to offer. I did find this info via http://vsptqrg.codeplex.com

Multiple machines running as a rig

Sequential – This works that same as if you are on one machine. Each agent receives a full copy of the data and each starts with row 1 in the data source. Then each agent will run through each row in the data source and continue looping until the load test completes.

Random – This also works the same as if you run the test on one machine. Each agent will receive a full copy of the data source and randomly select rows.

Unique – This one works a little differently. Each row in the data source will be used once. So if you have 3 agents, the data will be spread across the 3 agents and no row will be used more than once. As with one machine, once every row is used, the web test will stop executing.


回答1:


You Can Split the Data set/CSV and distribute to each Agent, i.e in your case "25 data set"/agent and execute the test.

Each Agent can use their own Data set/CSV.

CSV Split: http://monchito.com/blog/autosplit-csv




回答2:


The nearest you can get to what you want is to use the unique setting. However each data source row will only be used once, then the test will stop. With a data source containing 250 line only 250 test executions will take place. I do not know the exact distribution of data source rows to agents when unique is specified.

If more than one execution per data source row is wanted then another approach is to have one data source column per agent. Use the agent_id to select the column. Use the sequential data source access. A variation is to just have one set of data in the data source but append the agent_id to some of the values in the data sources. This answer has some variations on these ideas and some code.


Another possibility is to use the MoveDataTableCursor method to set a specific row for each test execution. This could be called in a PreWebTest method of a WebTestPlugin. The code would use the context parameters $AgentId and $WebTestIteration. The call would be based the following:

MoveDataTableCursor(..., ..., $AgentId * NumberOfAgents + $WebTestIteration);

Notes:

  • The values of $AgentId and $WebTestIteration from the context are strings, they would need to be converted to numbers to do the multiply and add.
  • Would also need to check whether the two values are zero-based or one-based.
  • The documentation for MoveDataTableCursor is not very informative


来源:https://stackoverflow.com/questions/41987173/visual-studio-load-test-using-data-source-with-multiple-agents

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!