我想使用 Visual Studio 进行负载测试,但我不知道如何设置使用经过身份验证的用户进行负载测试。
想象一下我的场景。这应该是一个很常见的问题:
- 需要使用用户名和密码进行身份验证的网站。
执行仅允许经过身份验证的用户执行的操作
到目前为止我做了什么:
- 我已经使用 Selenium 编写了UI 测试
(这工作得很好)
更新:我的 Selenium 测试类:我想将此代码与负载测试一起使用。
这是一个数据驱动的单元测试项目,就像您一样可以在方法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 测试。
当选择(例如)25 个用户的“恒定负载”时,将从负载测试的“测试组合”中选择的 25 个测试用例开始。每当其中一个测试用例完成时,就会选择并启动另一个测试,以便始终执行 25 个测试用例。这将持续到测试运行结束,这通常是测试持续时间或迭代次数。 (这里的“迭代”是指执行的测试用例的数量。)
假设正在使用“Web 性能测试”,那么这些测试负责提供用户身份验证。一种常见的方法是数据驱动测试并在该数据中提供用户名和相应的密码。请参阅here for more detail .
您的问题是25个用户的“恒定负载”是否意味着25个线程。这意味着将同时运行 25 个测试用例,但它不使用 Windows 线程。
回应评论:
我认为您误用或误解了 Microsoft 测试环境的术语。您也许可以在负载测试的测试组合中进行 Selenium 测试,尽管我从未这样做过。用户数和数据源是独立的项目。用户计数是指有多少模拟用户同时运行测试。数据源由测试用例使用。如果您有 25 个用户和一个数据驱动测试,则该测试应启动 25 次,并且这 25 次执行应使用数据源的前 25 行(假设 Sequential
或 Unique
访问方法)。
关于visual-studio - 负载测试经过身份验证的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48984329/