jmeter中怎么把两个线程加入一个jmeter session已超时

jmeter的关联及cookie操作
我的图书馆
jmeter的关联及cookie操作
使用JMeter做web应用的压力测试 和HttpUnit不同,JMeter是做压力测试的,而且JMeter不仅可以对web应用做测试,也可以对FTP服务器、LDAP服务器等进行测试。本文讲述如何使用JMeter来给web应用做测试
首先是新建一个TestPlan和一个ThreadGroup,然后在里面加上各种各样的组件,也就是说,搞明白了JMeter的这些组件,测试就能做了,所以首先给出我本次测试EasyCluster的TestPlan文件:
首先我们新建一个ThreadGroup,Number of Threads表示模拟多少个用户来进行测试;Ramp-up Period表示多长时间把所有的Thread启完,也就是说,隔Ramp-up Period/Number of Threads就启动一个Thread;Loop Count表示一个Thread发出多少次测试请求,对于我们的web应用来说,就是发出多少次Http Request。
然后添加一个 Http Request Defaults,有了这个,就不需要每次都在Http Request里面填server ip和port了,方便一些;然后添加一个Cookie Manager,对于某些使用cookie来实现session的应用来说,这是必须的;然后我们添加一个Once Only Controller,这是一种逻辑控制器,表示在该控制器下的Http Request,每个Thread只做一次,不会循环loop,所以,我们把主页和登录Action放在了这个下面;最后新建一个Interleave Controller(交替控制器),这也是一种逻辑控制器,表示在该控制器下的Http Request,Thread会依次执行,而不是乱序执行。还有一种情况就是,如果Thread反复执行同一个Http Request的话,web server会有cache,所以这种测试不理想,使用这种交替控制器,每次给web server的请求就不一样,所以效果会好一些,特别对于“搜索信息”这种功能来说很实用;最后加一个表格查看工具,这属于listener组件,在这个组件中可以定义输出文件的路径和名称,没有这个组件,JMeter是没有输出的,呵呵。在这个组件里可以以表格的方式看测试request和是否 success。
最后还要配置一个最重要的部件,就是URL rewriting modifier,因为tomcat的session实现不是通过cookie的,而是通过session id的,就是说,用户登录有了session之后,tomcat就会维护一个session id,然后每次request的时候,要求每个http request的URL都要带上这个session id,就OK了!所以,我们新建一个HTTP URL Re-writing Modifier,然后在他的属性里面需要填写一个“Session Argument name”,因为tomcat中,使用URL Re-writing mode,URL是这样的:
,所以,这里我们需要在这一项中填写“jsessionid”,JMeter就会到URL里面按照这个参数去把上面那个session id抓下来,然后每次request都带上这个东东;需要注意,这里还要将“Path Extension(use ";" as separator)”勾上,因为如上,tomcat的URL Re-writing中session id是以分号的方式加在URL上的,所以需要勾上这个选项,有些web server这个session和普通的URL parameter一样,是以?和&这种方式加上去的,这种情况下这个checkbox就不用勾了!
一切就绪了,选择run就开始测试了!此外,如果在Test Plan中选中“Function Test Mode”这个checkbox的话,JMeter就会记录每次请求获得的HTML代码,这会非常影响性能,但对于第一次测试,要测试我们的配置是否正确了,这也是有用的。
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢1866人阅读
Jmeter(7)
关联是Jmeter工具中非常重要的一个技术。因为在测试过程过有些数据是经常发生变化的,要获取并使用这些数据,就要使用关联。
比如: 用户登录后,session信息都不同,有些操作要使用session,就需要将这个动态的信息保存下来。
还有经常遇到的场景,第二个请求提交的参数要从第一个请求的返回数据中获取。
今天要测试是获取某一个城市的天气信息:
但这里面有一个城市代码()不是固定的,要根据测试数据获取不同城市的代码编号,再查询该城市的天气状况。
分析后得出的结论是先要请求一个可以获取城市代码的接口,将获取的代码传递给这个获取天气信息的地址,请求形式为{citycode}就是前一个请求传过来的值。
添加一个用户变量city。
为TestPlan添加一个线程组。添加第一个HTTP Sampler, 命名为GetCityCode。
添加HTTP信息头管理器,再填写请求信息。
添加一个后置处理器,利用正则提取器将获取到的城市代码取出。
为该请求添加一个BeanShell断言,验证获取的信息是否正确。
关于BeanShell会另有篇幅介绍。
在这其中的FailureMessage就是指,如果断言失败,就是提示该信息。
添加断言监听器和结果树。
发送请求后,查看断言和结果树。
会发现断言失败,使用获取的城市代码和期望的不一致,刚才在FailureMessage中指定的信息就会出现。
因为断言失败了,所以结果树显示为红色。
这里是故意将期望的城市代码写错的。现在在BeanShell断言中修改过来。
现在断言成功啦。
添加第二个HTTP Sampler,命名为GetWeatherInfo。请求信息如下。
在路径中要使用第一个请求返回来的城市代码来提起具体的值。/data/cityinfo/${citycode}.html,要与Step2中正则提取器中的引用名称一致。
再添加一个BeanShell断言,来验证结果。
查看结果树,显示请求返回的响应数据正确。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:132445次
积分:2391
积分:2391
排名:第16381名
原创:108篇
转载:29篇
(2)(7)(4)(1)(1)(1)(3)(1)(18)(27)(2)(6)(1)(5)(5)(4)(2)(4)(8)(1)(14)(1)(8)(11)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix' 是一个工具,同loadrunner类似,他功能较多,我们常用的功能是用jmeter模拟多浏览器对网站做压力测试。
  下载jmeter地址 :http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi
  我们一般的网站,在进入业务功能前先需登录,然后才能访问业务功能。下面介绍如何用jmeter登录系统再对主业务做压力测试。
  1. 运行jmeter
  2. 左边树将出现测试计划、台两根节点。
  3. 选择测试计划,按右键-》添加-》threads(users)线程组
  线程组能设置以多少个线程并发做压力测试。
  在”循环次数”设置不选择永远,循环次数设置1。
  4. 现在先介绍如何设置登录http请求,选择线程组,右键――添加――》sampler-―》http 请求。
  http请求即模仿浏览器的访问。
  在“服务器名称或ip”设置127.0.0.1,端口号设置:8080,“方法”设置post,路径设置网站登录的地址,如“/exam/operatorAction”。
  登录需传入用户、密码。在“同请求一起发送参数”列表中添加参数。参数值根据应用设置。如login_user=0001;login_password=1;actFlag=login
  5. 登录成功后,网站一般将跳入主页面。在jmap中可做判断,判断是否登录后按预想进入主页面(此步骤也可不设)。选择4中的“http请求“,右键――》添加――》断言――》响应断言。“Apply to”设置Main smaple only;“要测试的响应字段”设置“url样本”;“模式匹配规则”设置“包括”,“要测试的模式”增加页面跳转到的主页面,如:“studentMain.jsp”
  6. 一般网站登录后,在tomcat中生成了session,之后访问其他页面将无需再次登录,前提是浏览器需支持cookie。在jmap中也同样,如要继续访问其他页面,还需做下面关键的设置。
  选择“线程组”――》右键――》添加――》配置元件――》Http cookie管理器。加了此步骤后,http请求将具备cookie功能,即登录成功后访问其他页面将不会跳转到登录页面重新登录。
  7. 对目标页面反复压力测试。
  7.1 如何使被测页面反复访问达到测压效果。选“线程组”―》右键――》逻辑控制器――》循环控制器。循环次数中选择“永远”。
  7.2 选择刚加的“循环控制器”,右键――》添加――》sampler-―》http 请求,按4步骤设置ip、端口,http请求方法为“get”,路径为被压力测试的url,如:“exam/business/studentExam.action.StudentExamAction?action=goIntoMockExam”。
  按上面的设置后,已完成配置,可做压力测试。只需点菜单“运行”――》启动,即运行压力测试。
  8. jmeter提供了许多压力结果查看工具。是压力测试时非常好的分析工具。下面几种查看工具可有选择的添加。
  8.1 察看结果树。他记录每次请求发送数据、响应返回数据。选择“线程组”――》右键――》添加――》察看结果树。
  8.2 用表格查看结果。可查看每次请求的响应时间等。选择“线程组”――》右键――》添加――》用表格查看结果。
  8.3 Summary Report。可查看平均响应时间、最长响应时间等。
浏览: 251873 次
来自: 上海
很实用,一直关注
你好,最近在解决redis数据同步的问题,找到了tedis,但 ...
楼主接下来要考虑页面静态化与细节上面的东西了
jovinlee 写道jmeter并发用户数逐渐增加有如下两种方式:
第一种方式:Ultimate Thread Group
操作步骤:
  1、测试计划—右键Threads—jp@gc Ultimate Thread Group;如下图所示:
  2、参数说明(如下图所示) 
    三条记录:
    第一条,10个线程,10秒内启动,持续运行600秒,然后停止10秒。
    第二条,10个线程,等待620秒之后,10秒内启动,运行600秒,停止10秒。
    第三条,10个线程,等待1240秒之后,10秒内启动,运行600秒,然后停止。
    Start Thread Count:开始线程数量
    Initial Ddlay,Sec:线程延迟多长时间开始运行
    Startup Time,Sec:线程加载多长时间
    Hold Load For,Sec:线程持续运行多长时间
    Shutdown Time:线程停止时长,在多长时间内停止下来。
第二种方式:Stepping Thread Group 
  例如:100个线程按阶梯状递增运行,每5秒加载20个线程,直到100个后运行50秒。
参数说明(如下图所示)
  This group will start:加载的总线程数
  First,wait for:等待多长时间开始加载线程(第一个线程延迟多少秒开始加载)
  Then start:初次加载多少线程
  Next,add:下一次加载多少个线程
  Threads every:当前运行多长时间后再次加载线程
  Using ramp-up:加载线程时间;图中是5秒,也就是20个线程在5秒内加载完成
  Then hold load for:线程全部加载完成后运行多长时间,图中是50秒
  Finally,stop/threads every:多长时间停止多少线程,图中1秒停5个。
阅读(...) 评论()2009年11月 Java大版内专家分月排行榜第三
2013年10月 Web 开发大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 jmeter 保存session 的文章

 

随机推荐