如何使用JMeter的执行视图状态负载测试ASP.net Web应用程序(How to use JM

2019-08-17 08:20发布

我有在JMeter的/压力测试没有现成的经验.NET开发。 我试图加载测试,我已经用JMeter来开发的ASP.net网站。 之所以使用JMeter是具有大量的名声和信誉的一个开源工具。
我提到这个链接 ,以便采取视图状态是ASP.net的典型特征的照顾。 但我的要求是不是说有这么简单。 我试图加载通过发送用户名和密码来登录页面,然后通过只允许如果登录成功后要浏览其他页面测试测试我的网站。

我要带去实现这一目标的步骤如下。

  1. 通过选择工作台创建HTTP代理服务器>添加>非测试元素。
  2. 在Firefox中改变网络设置在HTTP代理服务器定义的端口。
  3. 创建一个Thread Group通过选择测试计划>添加>线程(用户)>线程组。
  4. 创建HTTP Request Defaults选择线程组>添加>配置元素> HTTP请求默认值。
  5. (一)我在远程服务器IP输入Server Name or IP:
    (二)进入的路径,我的登录页面/MyWebApplication/login.aspx
  6. 创建User Defined Variables选择线程组>添加>配置元素>用户定义的变量。
  7. 我的login.aspx页面非常简单,它有两个文本框需要用户名和密码,并在数据库匹配他们,如果成功,它们重定向到LoginSuccess.aspx页。
    我login.aspx的只有三个服务器控件,二asp:TextBox用于接收登录ID和密码,一个asp:Button用于在数据库检查它们。
    他们的ID是txtLogintxtPasswordbtnLogin分别。

    在用户定义的变量(6步中创建),我已经添加了管理员和123admin,这是在DB实际登录在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. 同样地,我已经改名为第2个正则表达式提取作为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浏览器。

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

我无法确定我缺少什么成分,因为在这里,而我不能成功地使用JMeter的。 我只是改变了这里提到的那些价值观和我没有写在这里一切都值是默认类型一样No of thread:

Answer 1:

  1. 请至少添加脚本的更好的模式。
  2. 那么,在步骤11以上你有txtLogin = $(login)txtPassword = $(password) ,...
    参考变量值$(VAR_NAME)不正确, ${VAR_NAME}应该被使用。
    你能保证,如果在你的问题,只有拼写错误 - 或者你必须在脚本中的一样吗?
  3. 使用如调试采样 / 调试PostProcessor中 (包括正则表达式提取器之后插入应用)来检查两个值viewstateeventValidation从您的要求提取您正则表达式查询正常工作。
  4. 看看在查看结果树结果的第2个HTTP请求取样的要求面板,以确保所有定义的PARAMS( txtLogintxtPassword__VIEWSTATE__EVENTVALIDATION )用正确的值与请求一起发送。


Answer 2:

在步骤5中,变化如下

Name:             - Value
txtLogin          - ${login}
txtPassword       - ${password}
__VIEWSTATE       - ${viewState}
__EVENTVALIDATION - ${eventValidation}

也验证了,根据需要正则表达式提取工作。 我的意思是检查它是否获取正确的价值观。



Answer 3:

我用CSS / JQuery的提取和它为我工作。 随着视图状态的正则表达式提取{}视图状态变量被获得通过,并得到了视图状态损坏的错误消息。

参数在CSS中设置/ JQuery的提取是: -

参考名称:VIEWSTATE

CSS / jQuery表达式:输入[ID = __ VIEWSTATE]

属性:值

我跟着步骤如下: -

  1. 首先做的登录过程的记录。
  2. 拖动线程组所需要的网页。
  3. 在登录页面的GET请求添加两个CSS / JQuery的提取视图状态和每个事件验证。
  4. 在登录页面的POST请求补充身体参数如下,运行批处理。

    名称: - 价值

    txtLogin - $ {}登录

    txtPassword - $ {}密码

    __VIEWSTATE - $ {}的ViewState

    __EVENTVALIDATION - $ {} eventValidation



Answer 4:

HTTP 500是。 服务器错误代码,因此它是不是你的脚本是失败什么需要做的就是在.aspx为禁用安全标签我几个月前面临过这样的



文章来源: How to use JMeter for load testing ASP.net web applications implementing viewstate