负载测试经过身份验证的用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载测试经过身份验证的用相关的知识,希望对你有一定的参考价值。

我想用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中设置负载测试时,我被问到有多少用户应该做些什么:

enter image description here

我没有得到这个数字意味着什么:

  • 它只表示同时线程数吗?
  • 如何在我的Selenium测试中获得用户(在负载测试中定义)和经过身份验证的用户之间的连接?

我想要实现的目标:

  • 在我的selenium UI测试中,负载测试中定义的每个用户都应该是经过认证的用户。

可能有人给我一个想法,如何做到这一点,或者我在想什么错......

答案

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

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

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

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

回应评论:

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

另一答案

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

enter image description here

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

enter image description here

以上是关于负载测试经过身份验证的用的主要内容,如果未能解决你的问题,请参考以下文章

教程4 - 验证和权限

XCTest 中未保留经过身份验证的 Vapor 会话

RESTful 身份验证 - 导致高负载时性能不佳?

使用 Mocha + supertest + passport 使用 JWT 测试经过身份验证的路由失败

如何使用 supertest 和 agent 在 mocha 测试中发出经过身份验证的请求?

php 创建经过身份验证的symfony测试客户端