负载测试认证用户
Load testing authenticated users
我想用 Visual Studio 进行负载测试,但我不知道如何设置 对经过身份验证的用户进行负载测试。
想象一下我的场景。这应该是一个很常见的问题:
- 您需要使用用户名和密码进行身份验证的网站。
执行仅允许经过身份验证的用户执行的操作
到目前为止我做了什么:
- 我已经用 Selenium 编写了 UI 测试:
(这工作得很好)
更新: 我的 Selenium 测试 class:我想在负载测试中使用此代码。
这是一个数据驱动的单元测试项目,您可以在方法 TestCase4529
中看到
[TestClass]
public class Scenario2
{
private IWebDriver driver;
public TestContext TestContext { get; set; }
[TestInitialize]
public void SetupTest()
{
this.driver = new ChromeDriver();
this.driver.Manage().Timeouts().ImplicitWait = new TimeSpan(0, 0, 30);
}
[TestCleanup]
public void TeardownTest()
{
this.driver.Quit();
}
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\4529.csv", "4529#csv", DataAccessMethod.Sequential), DeploymentItem("4529.csv"), TestMethod]
public void TestCase4529()
{
var userName = TestContext.DataRow["UserName"].ToString();
var password = TestContext.DataRow["Password"].ToString();
// UI Test logic
var loginPage = new LoginPage(this.driver);
loginPage.FillForm(userName, password);
loginPage.LoginButton.Click();
// Some assertions
}
}
现在,当我在 Visual Studio 中设置负载测试时,我被问到应该有多少用户做某事:
我不明白这个数字是什么意思:
- 是否仅表示并发线程数?
- 如何在我的 Selenium 测试中建立用户(在负载测试中定义)和经过身份验证的用户之间的连接?
我想达到的目标:
- 负载测试中定义的每个用户都应该是我的 selenium UI 测试中经过身份验证的用户。
有人可以告诉我该怎么做或者我的想法是错误的吗...
Visual Studio 负载测试提供了一种 运行 重复并同时进行其他测试的方法。它最适合用于 Web 性能测试,但它可以 运行 单元测试和编码 UI 测试。
When a "constant load" of (say) 25 users is selected then 25 test cases chosen from the "test mix" of the load test will be started.每当这些测试用例中的一个完成时,将选择并启动另一个测试,以便始终执行 25 个测试用例。这将一直持续到测试结束 运行,这通常是测试持续时间或迭代次数。 (这里"iterations"表示执行的测试用例数。)
假设正在使用 "Web Performance Tests",那么这些测试负责提供用户身份验证。这样做的一种常见方法是数据驱动测试并在该数据中提供用户名和相应的密码。参见 here for more detail。
你问的"constant load" of 25 users 是不是代表25个线程。这意味着 25 个测试用例将同时 运行ning,但它不使用 Windows 线程。
回复评论:
我认为您误用或误解了 Microsoft 测试环境的术语。尽管我从未做过,但您可以在负载测试的测试组合中进行 Selenium 测试。用户数和数据源是独立的项目。用户数是关于有多少模拟用户同时进行 运行ning 测试。数据源由测试用例使用。如果您有 25 个用户和一个数据驱动测试,那么该测试应该启动 25 次并且这 25 次执行应该使用数据源的前 25 行(假设 Sequential
或 Unique
访问方法)。
要提供用户名和密码,您必须在记录的网络测试中检查 QueryString 参数并通过数据源传递数据,请参阅下图了解更多详细信息:
然后将录制好的webtest传入负载测试如下:
我想用 Visual Studio 进行负载测试,但我不知道如何设置 对经过身份验证的用户进行负载测试。
想象一下我的场景。这应该是一个很常见的问题:
- 您需要使用用户名和密码进行身份验证的网站。
执行仅允许经过身份验证的用户执行的操作
到目前为止我做了什么:
- 我已经用 Selenium 编写了 UI 测试:
(这工作得很好)
更新: 我的 Selenium 测试 class:我想在负载测试中使用此代码。
这是一个数据驱动的单元测试项目,您可以在方法 TestCase4529
[TestClass]
public class Scenario2
{
private IWebDriver driver;
public TestContext TestContext { get; set; }
[TestInitialize]
public void SetupTest()
{
this.driver = new ChromeDriver();
this.driver.Manage().Timeouts().ImplicitWait = new TimeSpan(0, 0, 30);
}
[TestCleanup]
public void TeardownTest()
{
this.driver.Quit();
}
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\4529.csv", "4529#csv", DataAccessMethod.Sequential), DeploymentItem("4529.csv"), TestMethod]
public void TestCase4529()
{
var userName = TestContext.DataRow["UserName"].ToString();
var password = TestContext.DataRow["Password"].ToString();
// UI Test logic
var loginPage = new LoginPage(this.driver);
loginPage.FillForm(userName, password);
loginPage.LoginButton.Click();
// Some assertions
}
}
现在,当我在 Visual Studio 中设置负载测试时,我被问到应该有多少用户做某事:
我不明白这个数字是什么意思:
- 是否仅表示并发线程数?
- 如何在我的 Selenium 测试中建立用户(在负载测试中定义)和经过身份验证的用户之间的连接?
我想达到的目标:
- 负载测试中定义的每个用户都应该是我的 selenium UI 测试中经过身份验证的用户。
有人可以告诉我该怎么做或者我的想法是错误的吗...
Visual Studio 负载测试提供了一种 运行 重复并同时进行其他测试的方法。它最适合用于 Web 性能测试,但它可以 运行 单元测试和编码 UI 测试。
When a "constant load" of (say) 25 users is selected then 25 test cases chosen from the "test mix" of the load test will be started.每当这些测试用例中的一个完成时,将选择并启动另一个测试,以便始终执行 25 个测试用例。这将一直持续到测试结束 运行,这通常是测试持续时间或迭代次数。 (这里"iterations"表示执行的测试用例数。)
假设正在使用 "Web Performance Tests",那么这些测试负责提供用户身份验证。这样做的一种常见方法是数据驱动测试并在该数据中提供用户名和相应的密码。参见 here for more detail。
你问的"constant load" of 25 users 是不是代表25个线程。这意味着 25 个测试用例将同时 运行ning,但它不使用 Windows 线程。
回复评论:
我认为您误用或误解了 Microsoft 测试环境的术语。尽管我从未做过,但您可以在负载测试的测试组合中进行 Selenium 测试。用户数和数据源是独立的项目。用户数是关于有多少模拟用户同时进行 运行ning 测试。数据源由测试用例使用。如果您有 25 个用户和一个数据驱动测试,那么该测试应该启动 25 次并且这 25 次执行应该使用数据源的前 25 行(假设 Sequential
或 Unique
访问方法)。
要提供用户名和密码,您必须在记录的网络测试中检查 QueryString 参数并通过数据源传递数据,请参阅下图了解更多详细信息:
然后将录制好的webtest传入负载测试如下: