【问题标题】:Load testing authenticated users负载测试经过身份验证的用户
【发布时间】:2018-02-26 08:36:15
【问题描述】:

我想使用 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 测试中经过身份验证的用户。

谁能给我一个想法,或者我想错了什么......

【问题讨论】:

  • 在一个站点上同时运行 25 个浏览器,您很可能正在对站点进行负载测试。您应该通过仅发送请求来对服务器进行负载测试。

标签: visual-studio selenium visual-studio-2017 azure-devops load-testing


【解决方案1】:

Visual Studio 负载测试提供了一种重复同时运行其他测试的方法。它最适用于 Web 性能测试,但它可以运行单元测试和编码 UI 测试。

选择(例如)25用户的“恒定负载”,则将启动从负载测试的“测试混合”中选择的25个测试用例。每当其中一个测试用例完成时,将选择并启动另一个测试,以便始终执行 25 个测试用例。这将一直持续到测试运行结束,这通常是测试持续时间或迭代次数。 (这里的“迭代”是指执行的测试用例数。)

假设正在使用“Web 性能测试”,那么这些测试负责提供用户身份验证。一种常见的方法是数据驱动测试并在该数据中提供用户名和相应的密码。见here for more detail

您的问题是 25 个用户的“恒定负载”是否意味着 25 个线程。这意味着将同时运行 25 个测试用例,但它不使用 Windows 线程。

回应cmets:

我认为您误用或误解了 Microsoft 测试环境的术语。尽管我从未做过,但您也许可以在负载测试的测试组合中进行 Selenium 测试。用户数和数据源是独立的项目。用户数是关于有多少模拟用户同时运行测试。数据源由测试用例使用。如果您有 25 个用户和一个数据驱动测试,那么该测试应该启动 25 次,并且这 25 次执行应该使用数据源的前 25 行(假设使用 SequentialUnique 访问方法)。

【讨论】:

  • 我想我明白你的意思了。我已经用我的硒测试示例更新了我的问题,它是一个单元测试项目,而不是“网络性能和负载测试项目”。你有什么想法吗?
  • 这意味着如果我不使用“网络性能和负载测试项目”,则“用户数”(来自屏幕截图)和数据源之间不可能建立联系?
【解决方案2】:

要提供用户名和密码,您必须在记录的 webtest 中检查 QueryString 参数并通过数据源传递数据,请参阅以下图片了解更多详细信息:

然后将记录的webtest传递给负载测试,如下所示:

【讨论】:

  • 我想使用单元测试项目(更新问题)。这可能吗?我不想使用“Web 性能和负载测试项目”模板,因此我更难以维护测试
  • 是的,在添加测试窗口中您可以添加您的单元测试文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 2016-01-17
  • 1970-01-01
  • 2021-11-23
相关资源
最近更新 更多