如何使用 JMeter 进行负载测试 ASP.net Web 应用程序实现视图状态

2024-01-07

我是一名 .net 开发人员,之前没有 JMeter/压力测试经验。我正在尝试对我使用 JMeter 开发的 ASP.net 网站进行负载测试。使用 JMeter 的原因是它是一个具有很高知名度和可信度的开源工具。
我提到这个链接 http://blog.technicallyworks.com/2009/06/load-testing-aspnet-sites-with-jmeter.html为了照顾视图状态,这是 ASP.net 的一个典型特征。然而我的要求并不像那里所说的那么简单。我正在尝试通过将用户名和密码发送到登录页面来加载测试我的网站,然后通过仅在登录成功时才允许浏览的其他页面进行测试。

下面列出了我为实现这一目标而采取的步骤。

  1. 通过选择 WorkBench > 添加 > 非测试元素来创建 Http 代理服务器。
  2. 将 Firefox 中的网络设置更改为 Http 代理服务器中定义的端口。
  3. 创建一个Thread Group通过选择测试计划 > 添加 > 线程(用户) > 线程组。
  4. 创造HTTP Request Defaults通过选择“线程组”>“添加”>“配置元素”>“HTTP 请求默认值”。
  5. (a) 输入我的远程服务器的 IPServer Name or IP:
    (b) 输入我的登录页面的路径/MyWebApplication/login.aspx
  6. Create User Defined Variables通过选择“线程组”>“添加”>“配置元素”>“用户定义的变量”。
  7. 我的login.aspx页面非常简单,它从两个文本框中获取用户名和密码,并在数据库中匹配它们,如果成功,则将它们重定向到LoginSuccess.aspx页面。
    我的login.aspx只有三个服务器控件,两个asp:TextBox用于接收登录名和密码以及一个asp:Button用于在数据库中检查它们。
    他们的id是txtLogin, txtPassword, btnLogin分别。

    在用户定义的变量(在步骤 6 中创建)中,我添加了 admin 和 123admin,它们是在 login.aspx 页面中检查的数据库中的真实登录名,成功后重定向到 LoginSuccess.aspx 页面。

    用户定义的变量:

    Name:          Value    Description
    login          admin    
    password       123admin 
    
  8. 我通过选择“线程组”>“添加”>“后处理器”>“正则表达式提取器”来添加两个正则表达式提取器。

  9. 我已将第一个正则表达式提取器重命名为View State Extractor并向其中添加以下数据:

    Reference Name: viewstate
    Regular Expression: name="__VIEWSTATE" id="__VIEWSTATE" value="(.+?)"
    Template:$1$
    Match No.(0 for Random): 1
    Default Value: ERROR
    
  10. 同样,我将第二个正则表达式提取器重命名为Event Validation Extractor并向其中添加以下数据:

    Reference Name: eventValidation
    Regular Expression: name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="(.+?)"
    Template:$1$
    Match No.(0 for Random): 1
    Default Value: ERROR
    
  11. 在第5步中我添加了以下数据

    Send Parameters With the Request:
        Name:             - Value
        txtLogin          - $(login)
        txtPassword       - $(password)
        __VIEWSTATE       - $(viewState)
        __EVENTVALIDATION - $(eventValidation)
    
  12. 现在,我通过选择“线程组”>“添加”>“配置元素”>“HTTP Cookie 管理器”来添加 HTTP Cookie 管理器。

  13. 现在,我通过选择“线程组”>“添加”>“逻辑控制器”>“录制控制器”来添加录制控制器。

  14. 我启动了 HTTP 代理服务器,然后使用 Firefox 输入完整的 URL 到我的 login.aspx 页面,在两个文本框中输入 admin 和 123admin,然后按下登录按钮,并在 LoginSuccess.aspx 上成功重定向。我停止了 HTTP 代理服务器并关闭了 Firefox 浏览器。

现在我已经保存了测试计划(包含记录的步骤,这里只有 2 个步骤,1 个用于 login.aspx,另一个用于 LoginSuccess.aspx)并运行测试并在“查看结果树”中查看测试结果,该结果返回 500 错误服务器。

我无法确定我在这里缺少什么成分,因为我无法成功使用 JMeter。我只更改了此处提到的那些值,对于我此处未写的所有内容,这些值都是默认类型,例如No of thread:.


  1. 请至少添加更好的脚本架构。
  2. 那么,在上面的步骤 11 中,您已经txtLogin = $(login), txtPassword = $(password), ...
    将变量值引用为$(VAR_NAME)是不正确的,${VAR_NAME}应该使用。
    您能否确保您的问题中只有拼写错误 - 或者您的脚本中有相同的拼写错误?
  3. 使用例如调试采样器 http://jmeter.apache.org/usermanual/component_reference.html#Debug_Sampler / 调试后处理器 http://jmeter.apache.org/usermanual/component_reference.html#Debug_PostProcessor(在应用两个正则表达式提取器之后插入)以检查两个值viewstate and eventValidation是从您的请求中提取的,并且您的正则表达式查询工作正常。
  4. 查看“查看结果树”结果中的第二个 HTTP 请求采样器的“请求”面板,以确保所有定义的参数(txtLogin, txtPassword, __VIEWSTATE, __EVENTVALIDATION)与请求一起发送正确的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JMeter 进行负载测试 ASP.net Web 应用程序实现视图状态 的相关文章

  • Visual Studio 2010 - 在调试期间查看列表导致超时

    我正在尝试调试一个项目 突然遇到一个问题 如果我尝试查看它 枚举任何对象集合都会导致超时 如果我正常运行该程序 就没有问题 如果我尝试查看任何集合 例如列表 我会收到超时错误 整个事情就会崩溃 我认为我的一个更复杂的集合可能出了问题 所以我
  • 我可以在没有 http 处理程序的情况下隐藏 ASP.NET 页面上的图像路径吗?

    我的网站结构中的目录下有许多静态图像 并且我不关心图像的热链接或复制保护 由于多种原因 我需要做的不是在网站上显示图像路径 或显示假路径 有什么方法可以在不求助于 http 处理程序或辅助 asp net 页面的情况下执行此操作吗 你可以使
  • ASP.NET Core:会话 ID 始终变化

    今天启动了一个全新的 ASP NET Core 网站 按照说明添加会话 我们在索引页上打印出会话 ID 它始终是唯一的 我认为这可能是 cookie 合规性 所以我在 Chrome 的高级设置和调试器中删除了所有 cookie 但横幅不会再
  • 构建 C# Web API - REST

    我即将开始一个 C 项目 我从未使用过 C 我希望在犯下愚蠢的错误并走上错误的道路之前能得到一些实施建议 我想要实现的目标基本上是在服务器上拥有一个可以通过 Web API 访问的 C 应用程序 该应用程序将接受一些字符串变量 然后返回一个
  • ASP.NET 会话状态服务器与 InProc 会话

    运行会话状态服务器而不是 InProc 的开销性能损失是多少 重要吗 我知道您可以使用状态服务器重新启动 w3wp 并保留所有会话状态 这是相对于 InProc 的唯一优势吗 这取决于您的部署计划 在单个服务器上 损失很小 但好处同样有限
  • PreRequestHandlerExecute 中的会话为空

    在我的 ASP NET 4 0 应用程序中 我在 global asax cs 中有一个 PreRequestHandlerExecute 的事件处理程序 我想访问会话中的数据 大多数时候 会话是被定义的 但有时它是空的 有人可以解释一下什
  • 使用 jquery ajax 和 asp.net 处理程序上传文件

    我正在努力让它工作 但我在上传文件时遇到错误 ASPX
  • 如何在asp.net背后的代码中获取css样式

    我需要从 asp net c 中的代码后面获取 css 样式 在网上没有找到解决方案 是否可以直接从 styles css 文件获取它 还是需要解决方法 我在我的网络应用程序中使用主题 但我还需要进行一些服务器处理 并且我需要 ccs 文件
  • Razor C# - 从数据库获取数据

    我正在使用 WebMatrix 我创建了一个数据库并放置了一个包含几行数据的表 我可以连接到它并获取数据WebGrid 但它只提供了一种使用表格输出数据的方法 这是我的 shows cshtml 代码 var db Database Ope
  • C# 静态类型不能用作参数

    public static void SendEmail String from String To String Subject String HTML String AttachmentPath null String Attachme
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • JWT - 配置授权服务器并将颁发者设置为其本身

    我正在尝试按照本指南设置授权服务器 http bitoftech net 2014 10 27 json web token asp net web api 2 jwt owin authorization server http bito
  • ASP.NET Core 日志记录在 2 个不同的文件中

    当使用默认的 ASP NET core 日志记录与 Serilog 结合使用时 是否可以将错误写入errors log并将信息写入informations log using Microsoft Extensions Logging usi
  • IIS Express 安装目录在哪里?

    我最近开始了一个 ASP NET 教程 我想测试我用 WebMatrix 制作的页面 然而 有一个错误 Web 服务器配置为不列出该目录的内容 因此 它建议启用目录浏览并转到 IIS Express 安装目录并运行命令 那么它到底位于哪里呢
  • ASP .net 从 page_load 函数后面的代码中获取隐藏值

    我在 javascript 代码中设置了一个隐藏字段
  • 设计 ASP.NET 图表控件的样式

    使用 which 是一个子集 http blogs msdn com alexgor archive 2008 11 07 microsoft chart control vs dundas chart control aspx of th
  • MVC3 OutputCache VaryByHeader=未设置 Cookie

    我有以下操作方法 HttpGet Authorize OutputCache Duration 60 VaryByHeader Cookie Location OutputCacheLocation Any public ActionRes
  • ASMX相当于Page_Init?

    我有一些代码想要在调用 ASMX 函数的生命周期的早期执行 对于我们的 ASPX 页面 此代码位于基类的 Page Init 函数中 我们所有的 ASPX 页面都继承自该基类 ASMX 是否有相当于 ASPX 的 Page Init 函数
  • 无法在 Web 服务器上启动调试。远程服务器返回错误:(404) 未找到。在 Visual Studio 中启动调试时出错

    我已经将项目设置为在 IIS 上运行一段时间了 当我按 F5 时 它确实连接没有问题 但最近它停止工作 当我按 F5 press 时确实收到此错误Debug gt Start debugging 无法在 Web 服务器上启动调试 远程服务器
  • WCF 服务支持文件 jsdebug 无法加载

    我有一个从客户端 JavaScript 调用的 WCF 服务 调用失败并出现 Service is null JavaScript 错误 WebDevelopment 帮助程序跟踪显示加载 jsdebug 支持文件的调用会导致 404 文件

随机推荐