JMeter学习笔记
- 格式:doc
- 大小:588.50 KB
- 文档页数:23
jmeter学习笔记(⼆⼗⼆)——监听器插件之jp@gc系列⼀、jp@gc - Actiive Threads Over Time 不同时间活动⽤户数量展⽰下⾯是⼀个阶梯加压测试的图标⼆、jp@gc - Transactions per Second ,即TPS:每秒事务数性能测试中,最重要的2个指标之⼀。
该插件的作⽤是在测试脚本执⾏过程中,监控查看服务器的TPS表现————⽐如整体趋势、实时平均值⾛向、稳定性等。
三、jp@gc - Response Times Over Time,即TRT:事务响应时间性能测试中,最重要的两个指标的另外⼀个。
该插件的主要作⽤是在测试脚本执⾏过程中,监控查看响应时间的实时平均值、整体响应时间⾛向等。
四、jp@gc - PerfMon Metrics Collector,即服务器性能监控数据采集器在性能测试过程中,除了监控TPS和TRT,还需要监控服务器的资源使⽤情况,⽐如CPU、memory、I/O等。
该插件可以在性能测试中实时监控服务器的各项资源使⽤。
1、服务器端(1)下载,把下载的ServerAgent-2.2.*.zip复制到服务器端,解压即可(2)windows的服务器,运⾏⽂件夹中的startAgent.bat即可,linux的服务器是运⾏startAgent.sh(需要jar环境⽀持,没有安装的⾃⾏安装)(3)服务器端使⽤⽅法运⾏startAgent.sh/bat启动ServerAgent,默认是使⽤4444的TCP/UDP端⼝,若需要指定端⼝,如1234则添加如下参数:./startAgent.sh --udp-port 0 --tcp-port 1234 0代表不开启该端⼝出现如下提⽰则表⽰已经正常开启ServerAgent正常启动2、客户端(Jmeter端)(1)随便添加⼀个HTTP请求的sampler,把线程组设为⽆限循环(2)添加“jp@gc - PerfMon Metrics Collector”监听器(3)添加要监控的项⽬,如CPU、内存等,⼀⾏选择⼀种添加监听项(4)最后运⾏jmx测试计划就⾏啦碰到的⼏个坑⽹上相关的教程其实很多了,写这篇主要还是记录⼀下⾃⼰碰到的坑吧,前⼏天⼀直连接不上,搜了⼏天都没找到解决办法。
学习笔记-jmeter简单性能测试及在Linux下运⾏jmeter是⼀个性能测试⼯具,这⾥简单介绍⼀点jmeter性能测试的内容。
性能测试,是衡量系统的各项性能指标的测试,最常⽤的两个指标是TPS和响应时间。
TPS:指的是服务端每秒钟处理的请求数,越⼤越好。
响应时间:顾名思义,就是服务器响应的时间,越短越好。
⽤jmeter的【聚合报告】可以查看这两个指标。
⼀、最简单的压测1、线程组的设置在线程组可以设置并发数,启动时间,循环次数等。
线程数:即并发数,可以理解为虚拟⽤户的数量;Ramp-Up Period(in seconds):设置的线程数需要多久全部启动,通过这个参数可以设置每个线程的启动间隔。
如果设置为0,则所有线程同时启动。
假设线程数是100,Ramp-Up Period(in seconds)是10,则每隔0.1秒启动⼀个线程。
即每秒启动10个线程。
循环次数:每个线程发送请求的次数。
如果勾选了永远,那么它将永远发送下去,直到停⽌脚本。
需要根据实际情况设置这些参数。
线程数设置太少,达不到性能测试的效果;设置太⼤可能会对电脑造成太⼤压⼒。
另外,设置合理的循环次数也很重要,除了给定的设置循环次数和永远,还可以通过勾选调度器,设置开始和结束时间来控制。
调度器可以设置启动时间,结束时间,持续时间,启动延迟。
⼀般压测的时间是10-15分钟。
监听器添加【聚合报告】Average是平均响应时间,单位默认是毫秒;Received KB/sec,指的是TPS实际测试中,会对TPS,响应时间,并发数有具体指标,按照需求配置,查看运⾏结果,对⽐需求即可。
⼆、添加压⼒机假如⼀台电脑能够⽀持的并发数是100个,⽽要求测试500个并发数,此时就需要添加压⼒机。
⾸先要确保主控机和负载机处于同⼀局域⽹中,步骤如下:(1)负载机上,在jmeter的bin⽬录下启动jmeter-server(windows: jmeter-server.bat)(mac、linux: jmeter-server.sh)注:负载机不需要启动jmeter,只需要启动jmeter-server即可。
Jmeter基础知识(⼆)6.Jmeter数据驱动Jmeter⾥参数化⼀般分为①从⽂件⾥读数据,②从数据库⾥读数据,③⽤后置处理器从响应⾥读数据(第五节中就是从后置处理器中进⾏数据读取)数据驱动的⽬标就是,我们在单独的⼀个Execl⾥来维护数据,⽽不是在请求⾥⾯硬编码(1)添加配置元素-CSV Data Set Config数据驱动csv⽂件:设置线程数2,运⾏后结果查看:CSV数据⽂件设置字段说明:①变量名称(Variable Names):需要输⼊⽂本⾥各列都叫什么名字②分隔符(Delimiter):⽤英⽂的逗号隔开③遇到⽂件结束符再次循环?(Recycle on EOF?):数据再循环,例如设置为True,我们的CSV中共有7条数据,但是我们有10个⽤户,那么第8个⽤户就会就会从第⼀条数据开始,再次循环取值④遇到⽂件结束符停⽌线程?(Stop thread on EOF?):例如是true,执⾏了⽂件,则停⽌运⾏,如果是False,执⾏了⽂件,不停⽌线程,当Recycle on EOF设置为True时,此项设置⽆效。
注意点:①⽂件⼀定要保存.csv格式②当csv⽂件在jmeter的bin⽬录或脚本⽬录时,只需给出⽂件名即可(2)⽤函数助⼿参数化-从csv⽂件取数据依然使⽤(1)中的csv⽂件点击⽣成后,就拷贝到粘贴板上,直接去粘贴就可以了(3)计数器在CSV⾥读数据,不管是⽤CSV Date Set Config还是⽤函数助⼿,那些数据都可能重复,我们都是⼿动的把它设置成不⼀样,如果我们不想⼀直去修改csv的数据,那么可以使⽤计数器,这样我们只需要修改计数器的起始点,最⼤值等,就能通过csv⾥的测试数据和计数器使得测试数据不重复来看下计数器的定义:允许⽤户在线程组中任何位置创建引⽤的计数器。
计数器配置允许⽤户配置起始点,最⼤值和增量。
计数器将从开始循环到最⼤,然后从开始重新开始,继续进⾏,直到测试结束。
Jmeter学习笔记一、jmeter的配置(已验证)根据jmeter特性,在配置安装前必须进行对JDK的安装配置,另外还得对JDK环境变量配置的有JAVA_HOME、CLASSPATH、PATH;配置步骤如下:验证配置是否成功:点击“菜单”-》运行-》输入cmd 回车-》在DOS 下输入Java或javac或jar。
二、jmeter的二种录制脚本的方法(已验证)第一种方法:B adboy监控internet explorer的活动,提供录制/回放功能.录制功能:badboy窗口的顶部显示当前是否处于录制状态,如果点击play按钮,badboy自动关闭录制功能,等到play结束后,可以点击recording按钮,继续录制脚本.Remark:必须等到上一步的request处理完毕后,才能点击发送下一个request,否则下一个request会作为第一个request的子frame.两种录制脚本模式(只验证过其中一种):Badboy提供两种录制模式:一 request 模式(默认模式) 二 navigation 模式.点击下图N,切换模式。
Request模式具有如下优点:如果测试的网页模版修改了,不影响脚本的回放.如果需要badboy导出脚本到jmeter进行性能测试,必须选择request 模式.同时request模式的缺点如下:request模式需要添加大量的断言来检查页面上的item.Navigation模式将会记录网站交互过程中browser中的元素的点击动作.当回放navigation模式脚本时候,不但回放http request,同时badboy会模拟brower中点击动作.navigation模式的缺点是 :无法使用navigation脚本进行性能测试,因为性能测试引擎运行时候不显示任何用户界面,所以无法执行navigation中模拟点击等动作.总结:选择navigation模式还是request模式,取决于测试的目的,如果仅仅要求测试功能而不关心界面,则request模式无疑为首选(此项是搜集资料中的总结,未对其验证)第二种方法:通过jmeter本身进行录制脚本,其步骤为:创建一个线程组(右键点击“测试计划”--->“添加”---->“线程组”)创建一个http代理服务器(右键点击“工作台”--->“添加”--->“非测试元件”--->“http代理服务器”)(备注:注意端口、IP设置及其参数表达式配置):针对IE浏览器器进行配置:三、jmeter测试时,各中测试的配置(核心)1.参数化:方法一、使用“函数助手”添加从文件中读取字符串的函数。
JMeter性能测试报告笔记1、场景设置线程组的具体信息如下:取样器错误后要执⾏的动作:这部分可以理解为当客户端向服务端发送请求后,以及发送请求的过程中出错后的异常处理⽅式继续:如果有⼀个请求错误,其他的请求会继续,不会因为有⼀个请求错误的导致其他请求终⽌。
启动下⼀个进程循环:如果请求出现问题,同⼀脚本中的其他请求就都不再执⾏,直接执⾏下⼀个进程的信息。
停⽌线程:停⽌线程指的是如果请求失败,就停⽌当前线程执⾏,不再继续执⾏。
停⽌测试:如果请求失败,那么停⽌所有线程执⾏,也就是说停⽌整个测试⽴即停⽌测试:如果请求失败,⽴即停⽌整个测试场景的执⾏。
线程属性线程数:模拟⽤户数Ramp-Up:该属性指的是所有线程从启动到开始运⾏的时间间隔,单位是秒计算公式:每秒执⾏线程数=线程数/Ramp-Up循环次数:请求的重复次数。
如果选择“永远”,那么请求将⼀直进⾏,不建议这样操作。
延迟创建线程直到需要:如50个线程数,Ramp-Up时间是10秒,执⾏后线程是全部就绪的,那么就是每隔1秒启动5个线程数调度器:思维调度器可以理解为设置何时开始运⾏。
持续时间:测试计划持续多⻓时间启动延迟:从当前时间延迟多⻓时间开始运⾏测试,也就是说点击执⾏后,仅仅是做初始化的场景,不会执⾏测试等待延迟:到达后开始运⾏测试,执⾏的时间为持续时间设置的时间。
2、JMeter监听器(1)聚合报告是以表格的形式来显⽰取样器的结果信息聚合报告的信息如下:(2)汇总报告汇总报告的信息如下:(3)响应时间图(4)后端监听器(5)build⽂件下来在ant的lib⽬录下,把 ant-jmeter-1.1.1.jar 复制到jmeter的extras⽬录下的,这样的⽬的JMeter就可以和Ant能够整合起来了。
把邮件的插件 activation.jar commons-email-1.2.jar mail.jar 放到JMeter下的lib的⽬录下。
接⼝测试学习笔记(⼀)第⼀课主要关于接⼝测试,涉及到postman和jmeter两个⼯具⼀、基础知识:1、接⼝就是把client(前端)和server(后端)端联系起来的(或者说各种花式操作数据库)。
服务器也是⼀台电脑,只是性能⽐较⾼的⼀台电脑。
2、接⼝返回的数据都是json,(json,是⼀种通⽤的数据类型,以键值对 key-value 的数据形式来保存的)。
3、接⼝测试其实就是功能测试,在接⼝测试之前,得要有接⼝⽂档。
(问开发要的)4、post请求和get请求没有很⼤的区别,get请求⼀般⽤于获取数据,post请求⼀般⽤于发送数据:如果是get请求:不借助任何的⼯具,⽤浏览器就可以发请求,如:http://118.00.0.00/api/user/stu_info?stu_name=⼩⿊5、cookie:就是放在你本地的⼀个键值对。
如:niuhanyang hahaha12345niuhanyang:sfjsksdf4234sdfw34session:就是放在服务端的⼀个键值对。
如:niuhanyang:sfjsksdf4234sdfw34⽐如登录,登录成功后,本地(浏览器)就会保存键值对浏览器发送请求的时候,就会⾃动把键值对发过去服务端进⾏对⽐若对不上服务端的键值对,就会让你重新登录session过期也会让你重新登录默认永久⽣效的。
不过⼀般都会设置过期时间限制。
token 其实就是Cookie⾥⾯保存的⼀个键。
6、http请求分为两个部分:请求头和请求体请求头⾥⾯呢是⼀些额外的信息,⽐如说⽤的什么浏览器,cookie请求体⾥⾯传的是具体的数据。
请求头 header :额外的信息浏览器cookie需要什么样的数据请求体 body :username=xxxfile=aa.py7、get请求只有请求头,是没有请求体的。
它的数据直接放在url⾥⾯的,post请求数据是放在body⾥⾯的,get请求有长度限制,post请求没有。
jmeter知识概括-回复JMeter知识概括一、什么是JMeter?JMeter是一款开源的负载和性能测试工具,由Apache软件基金会开发。
它可以用于测试静态和动态资源,例如静态文件、Java对象、WEB服务、数据库、FTP服务器等等。
二、JMeter的安装和配置1. 下载和安装JMeter:可以从Apache官方网站下载JMeter的最新稳定版本,并根据官方的安装说明进行安装。
2. 配置JDK:JMeter需要Java Development Kit(JDK)来运行。
确保您已经安装了JDK,并且JAVA_HOME环境变量已经正确配置。
3. 启动JMeter:可以通过运行bin目录下的jmeter.bat(Windows)或jmeter.sh(Linux)来启动JMeter。
三、JMeter的基本概念1. 线程组(Thread Group):线程组是测试计划中的基本元素,它定义了测试的并发用户数、循环次数、启动延迟等。
2. 取样器(Sampler):取样器用于模拟用户的行为,例如发送HTTP请求、FTP请求、数据库查询等等。
3. 监听器(Listener):监听器用于收集测试结果,并以图表、表格等形式展示。
四、JMeter的基本操作1. 添加线程组:在测试计划中右键点击,选择"Add" -> "Threads (Users)" -> "Thread Group",然后可以设置线程组的属性。
2. 添加取样器:在线程组下右键点击,选择"Add" -> "Sampler",根据需要选择相应的取样器。
例如,选择"HTTP Request"可以模拟发送HTTP 请求。
3. 添加监听器:在线程组下右键点击,选择"Add" -> "Listener",根据需要选择相应的监听器。
《JMeter从入门到精通》之一——开始你的第一个JMeter脚本JMeter是一款在国外非常流行和受欢迎的开源性能测试工具,像LoadRunner 一样,它也提供了一个利用本地Proxy Server(代理服务器)来录制生成测试脚本的功能,但是这个功能并不好用。
所以在本文中介绍一个更为常用的方法——使用Badboy录制生成 JMeter 脚本。
简单的介绍一下Badboy。
Badboy是一款不错的Web自动化测试工具,如果你将它用于非商业用途,或者用于商业用途但是安装Badboy 的机器数量不超过5台,你是不需要为它支付任何费用的。
也许是一种推广策略,Badboy提供了将Web测试脚本直接导出生成JMeter 脚本的功能,并且这个功能非常好用,也非常简单。
你可以跟着下面的试验步骤来迈出你在开源世界的第一步。
1.通过Badboy的官方网站下载Badboy的最新版本;2.安装Badboy。
安装过程同一般的Windows 应用程序没有什么区别,安装完成后你可以在桌面和Windows开始菜单中看到相应的快捷方式——如果找不到,可以找一下Badboy安装目录下的Badboy.exe 文件,直接双击启动Badboy;3.启动Badboy,你可以看到下面的界面。
在地址栏(图中红色方框标注的部分)中输入你需要录制的Web应用的URL——这里我们以 为例,并点击GO 按钮开始录制。
如果你用过LoadRunner之类的商业工具,对于这个操作一定不会陌生吧 ^_^4.开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中——在这个试验中,我们在Yahoo的搜索引擎中输入 JMeter 进行搜索。
不过你将看到,录制下来的脚本并不是一行行的代码,而是一个个Web对象——这就有点像LoadRunner的VuGen中的Tree View视图;5.录制完成后,点击工具栏中的“停止录制”按钮,完成脚本的录制;JMeter”菜单,填写文件名“login_mantis.jmx”,将录制好6.选择“File -> Export to脚本导出为JMeter脚本格式。
JMeter学习笔记(⼗⼋)——返回的响应数据出现中⽂乱码_解
决⽅案
⼀、问题描述
使⽤jmeter过程中遇到了请求返回的响应数据出现中⽂乱码
⼆、原因分析
当没有对响应数据or响应页⾯设置⽀持解析中⽂的编码时,JMeter则会以默认的ISO-8859-1格式解析,⽽其对中⽂显⽰并不⽀持,解析出现乱码;此时需要配合其他⽀持中⽂解析的编码格式,如:UTF-8
三、解决⽅法
1、针对单个请求返回的数据有效
(1)在对应的http请求下⾯新增后置处理器BellShell PostProcessor
(2)在脚本输⼊区域输⼊:prev.setDataEncoding("UTF-8");
(3)保存之后再请求⼀次,返回的数据就正常了
2、修改jmeter的配置,永久有效
(1)在JMeter的安装⽬录...\apache-jmeter-4.0\bin下找到名为jmeter.properties的⽂件,⽤⽂本编辑器打开后,在下图位置加上这⼀⾏:sampleresult.default.encoding=utf-8
(2)保存,然后重启jmeter之后配置⽂件⽣效。
再执⾏请求返回结果就不乱吗了。
JMeter学习笔记1. 安装JMeter1.安装JDK 1.4以上版本。
2. 设置环境变量:i. 在用户变量中,新建变量名“JAVA_HOME”,变量值为:安装JDK的目录,如我的为:“C:\Program Files\Java\jdk1.5.0;”ii. 再新建变量名为“CLASSPATH”,变量值为:“%JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar; %JAVA_HOME%\bin;” 。
iii. 在系统变量的“Path”变量值后加上:“%JAVA_HOME%\bin;”。
3. 安装Jmeter,解压“jakarta-jmeter-2.3.2.zip”到E盘根目录下:“E:\jakarta-jmeter-2.3.2”。
4. 设置环境变量:i. 在用户变量中,新建变量名“JMETER_HOME”,变量值为:“E:\jakarta-jmeter-2.3.2;”。
ii. 修改“CLASSPATH”,添加:“%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;”。
5. 运行jmeter: 直接打开 E:\jakarta-jmeter-2.3.2\bin\jmeter.bat 即可。
2. JMeter 的主要测试组件总结如下:1. 测试计划是使用JMeter 进行测试的起点,它是其它JMeter 测试元件的容器。
2. 线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
实际的请求容在Sampler中定义,它被线程组包含。
3. 监听器负责收集测试结果,同时也被告知了结果显示的方式。
4. 逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
5. 断言可以用来判断请求响应的结果是否如用户所期望的。
它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。
这个限制对于有效的测试是非常有用的。
6. 配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的容。
7. 前置处理器和后置处理器负责在生成请求之前和之后完成工作。
前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
8. 定时器负责定义请求之间的延迟间隔。
3. 常用测试本文以这三种节点为例,介绍如何使用JMeter 来完成针对于它们的压力测试。
3.1 Web 服务器对于大多数的项目来说,并不会自行开发一个Web服务器,因此Web服务器压力测试的对象实际就是--发布到Web服务器中的软件。
最简单的Web测试计划只需要三个JMeter 的测试元件,如下图:其中:•在线程组中定义线程数、产生线程发生的时间和测试循环次数。
•在http请求中定义服务器、端口、协议和方法、请求路径等。
•表格监听器负责收集和显示结果。
这种设置对于包含了安全机制的web 应用是不够的,典型的web 应用一般都会:1. 有一个登录页,它是整个应用的入口。
当用户登录之后,应用会将用户相关的安全信息放到session 中。
2. 有一个filter,它拦截请求,检查每个请求相关的session 中是否包含有用户安全信息。
如果没有,那么请求被重定向到登录页,要求用户提供安全信息。
在这种配置下应用上面的测试计划,那么除了登录页之外的其它请求都将因为缺少用户安全信息,而使请际定位到登录页。
如果不加断言,那么在监听器看来所有的请求都是成功。
而实际上,这些请求最终都没有到达它们应该去的地方。
显然,这种测试结果不是我们所期望的。
为了成功的测试,至少有2种方法:•方法一,去掉程序的安全设置,如filter,使得不需要用户安全信息也能访问受限容;•方法二,不修改程序,使用JMeter提供的"Http URL重写修饰符"或"Http Cookie管理器"。
对于第一种方法,有其局限性:•需要修改程序配置,如去掉web.xml中关于安全filter的设置。
需要维护多个版本的web.xml,如压力测试和功能测试分别各自的web.xml,增加了维护成本,而且有可能会在测试之后忘记将web.xml修改回来。
•对于一些需要用户安全信息的页面无能为力,如某些业务审计操作需要用户安全信息来记录。
因为缺少这样的信息,注定了测试的失败。
如果解决为了这个问题进一步的修改程序,那么因为存在多个版本的程序,那么其维护难度将大大增加。
虽然,第二种方法配置难度增加了,但是它不用修改程序。
而且还可将测试计划保存成文件,以便重复使用。
因此,选用第二种方法是较为理想的做法。
下面以一个简化的例子说明使用方法二的配置步骤。
1. 例子由以下几个文件组成:•AuthorizenFilter.java,过滤器负责检验session中是否存在用户信息。
如果没有,那么就转向到login.jsp。
它的主要方法doFilter 容如下:public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest)request;HttpServletResponse res = (HttpServletResponse)response;HttpSession session= req.getSession();User user = (User)session.getAttribute("user");if(null == user){String uri= req.getRequestURI();//如果请求页是登录页,不转向if( uri.equalsIgnoreCase("/gWeb/login.jsp")){chain.doFilter(request, response);} else{res.sendRedirect("/gWeb/login.jsp");}}else{chain.doFilter(request, response);}}•User.java,用户类负责记录用户的信息。
为了简化,这里的登录操作只允许指定用户名和密码。
主要容如下:•Login.jsp 和welcome.jsp。
其中login.jsp 负责生成User 对象,并调用User 的login。
当login 返回为true 时转向到welcome.jsp。
其验证部分的代码:•2. 创建如下结构的Web测试计划:其中主要测试元件说明如下:•http请求默认值负责记录请求的默认值,如服务器、协议、端口等。
•第一个http请求,请求login.jsp,并附加验证所需要的参数(user=foxgem,pwd=12345678,Submit=Submit);其包含的响应断言验证url中包含"welcome.jsp",这一点可以从程序中反应。
•第二个http请求,请welcome.jsp;其包含的响应断言验证响应文本中包含"foxgem",它是welcome.jsp页面逻辑的一部分。
•http cookie管理器负责管理整个测试过程中使用的cookie,它不需要设置任何属性。
•循环控制器设置发送第二个请求的循环次数,表格监听器负责收集和显示第二个请求的测试结果。
启动测试计划之后,执行的顺序是:首先,第一个请求登录页进行登录;成功登录之后,使用循环控制器执行第二个请求。
请求welcome.jsp时,响应断言用来验证是否确实是welocme.jsp来处理请求,而不是因为其它页。
在这个测试计划中需要注意的是http cookie 管理器。
正是由于它的作用,使得第二个请求能顺利的发送到welcome.jsp进行处理,而不是因为缺少用户安全信息转发到login.jsp。
在这个例子中,我们并没有在程序中使用cookie(使用的是session),那么http cookie管理器怎么会起作用呢?这是因为在servlet/jsp规中对于session的状态跟踪有2种方式:•使用cookie,保留和传递sessionid。
它不要求程序对于url有什么特殊的处理,但是要求浏览器允许cookie。
在这个例子中,就是这种情形。
•使用url重写,每次显式的在浏览器和服务器之间传递sessionid。
它要求程序对url 进行编码,对浏览器没有要求。
对于第二种情形,可以使用JMeter前置管理器中的http url重写修饰符来完成。
对于Tomcat,Session参数是jsessionid,路径扩展使用";"。
使用url编码时需要注意,必须将浏览器的cookie 功能关闭。
因为url编码函数,如encodeURL,会判断是否需要将sessionid编码到url中。
当浏览器允许cookie时,就不会进行编码。
如果cookie而不是session来保存用户安全信息,那么直接使用http cookie管理器就行了。
此时,需要将使用的cookie参数和值直接写到管理器中,由它负责管理。
对于其它的cookie 使用,也是如此操作。
登录问题解决之后,对于Web 服务器的测试就没什么难点了。
剩下的就是根据实际需要,灵活运用相关的测试组件搭建编写的测试计划。
(当然,对于安全问题还有其它的使用情景。
在使用时需要明确:JMeter 是否支持,如果支持使用哪种测试组件解决。
)3.2 数据库服务器数据库服务器在大多数企业项目中是不可缺少的,对于它进行压力测试是为了找出:数据库对象是否可以有效地承受来自多个用户的访问。
这些对象主要是:索引、触发器、存储过程和锁。
通过对于SQL语句和存储过程的测试,JMeter 可以间接的反应数据库对象是否需要优化。
JMeter 使用JDBC 发送请求,完成对于数据库的测试。
一个数据库测试计划,建立如下结构即可:其中:•JDBC连接配置,负责配置数据库连接相关的信息。
如:数据库url、数据库驱动类名、用户名和密码等等。
在这些配置中,"绑定到池的变量名"(Variable Name Bound toPool)是一个非常重要的属性,这个属性会在JDBC请求中被引用。
通过它,JDBC请求和JDBC连接配置建立关联。
(测试前,请将所需要的数据库驱动放到JMeter的classpath中)。