如何使用参数值列表?

Posted

技术标签:

【中文标题】如何使用参数值列表?【英文标题】:How to use a list of values for a parameter? 【发布时间】:2014-05-14 08:46:05 【问题描述】:

我正在使用VS 2012的测试插件(虽然刚刚安装了2013),需要知道:

在负载测试时是否可以让参数传递与选定列表不同的值?

我使用了位于此处的示例负载测试:http://www.visualstudio.com/get-started/load-test-your-app-vs,并创建了一个满足我需求的新 Web 测试,如下所示。

我记录了一个简单的旅程,它是一个电子邮件注册网页。旅程本质上是完成姓名和地址、电子邮件、conf 电子邮件、密码、conf 密码。提交表单后,会发送一封验证电子邮件。

我需要检查这个进程是否可以处理大约 3000 个用户。实际发送验证的电子邮件已被硬编码用于测试目的,但我需要一个独特的电子邮件来提交表单。我基本上想运行 3000 个测试用例,每次只需更改电子邮件地址。

最好的方法是什么?

【问题讨论】:

【参考方案1】:

简单的答案是对数据驱动(或数据驱动)Visual Studio Web 性能测试进行 Web 搜索。您应该会找到很多文章和教程。

更详细的:

数据驱动测试的概述

首先,Visual Studio 区分不同类型的测试。 负载测试是一种多次运行单个测试用例的方法,就像许多同时的用户一样,收集有关测试执行的数据并生成报告。负载测试可以执行的测试用例包括Web Performance TestsCoded UI Tests;这两者都可以是数据驱动的。

驱动网络性能测试的数据需要数据源。数据可以是 CSV、XML、电子表格、数据库和 TFS。我将使用 CSV 进行描述。

创建一个 CSV 文件,其中包含类似于以下内容的内容。请注意,字段名称的第一行是必需的,并且这些名称在测试中使用。

Name,Email,Telephone
Fred,fred@example.com,0123 456789
George,george@example.com,0123 456790
Harry,harry@example.com,0123 456791

另请参阅CodedUI test does not read data from CSV input file 了解有关创建 CSV 文件的一些说明。

在 Visual Studio 中打开测试项目并打开 .webtest 文件进行测试。使用测试顶部节点的上下文(右键单击)菜单,即测试名称(或使用相应的图标)并选择“添加数据源...”。按照提示将 CSV 文件添加到项目中。

Web 性能测试 中展开请求以显示表单参数或查询字符串或任何要使用数据的内容。查看相关字段的属性面板并选择适当的属性,在许多情况下是Value 属性。单击小三角形为属性选择一个值。弹出窗口应显示数据源,展开显示的项目并选择所需字段。选择字段后,属性将显示一个值,例如DataSource1.FileName#csv.Email。双花括号()表示使用了上下文参数。所有 used 数据源字段都可用作上下文参数。通过更改数据源文件的 Select Columns 属性,可以使所有数据源字段可用。通过使用诸如

之类的值,可以将数据源字段用作属性值的一部分
SomeTextDataSource1.FileName#csv.EmailAndMoreText

数据源访问方式

可以通过四种方式读取和使用来自数据源的数据。默认为顺序。使用解决方案资源管理器选择其他订单以访问文件的属性(例如FileName#csv)。 Access Method 属性可以设置为以下之一:

顺序数据通过文件顺序读取。读取文件的最后一行后,文件的第一行将是要读取的下一行。因此,每一行可能会被多次读取。

随机数据是随机读取的。

唯一数据通过文件顺序读取。读取文件末尾后,将不再执行测试。因此,每行只能读取一次。

不要自动移动光标用于更复杂的测试,其中光标是通过插件调用移动的。

网络测试可能使用多个数据源文件。这些文件可能有不同的访问方法。例如,可以按顺序访问一个包含登录名和密码的文件,而可以随机访问另一个包含其他数据的文件。这将允许每个登录尝试许多不同的其他数据集。

数据源和循环

Web 性能测试可能包含循环。循环的属性包括高级数据游标。例如,这允许数据源文件包含要查找并添加到购物篮的商品,这样每次循环迭代都会添加一个新商品。

【讨论】:

以上是关于如何使用参数值列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何将所有参数值的函数映射为列表?但在函数定义中有明确的参数名称

如何在多处理函数中传递参数以及如何使用多处理列表?

如何在共享点设计器中插入查询值作为参数?

当参数为空列表时,如何避免值限制错误?

如何检查 Oracle PL/SQL 中的参数列表值?

如何通过可变参数模板将多个构造函数参数转发到数组初始值设定项列表?