您好,欢迎访问三七文档
LOGO四川理工学院何海涛Jmeter网站压力测试CompanyLogoJmeter简介ApacheJMeter是Apache组织开发的基于Java的压力测试工具,100%的纯Java桌面应用用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java对象、数据库,FTP服务器,等等。JMeter可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。CompanyLogoJMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。Apachejmeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。JMeter的特性:a)能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。b)完全的可移植性和100%纯Java。c)完全Swing和轻量组件支持(预编译的JAR使用javax.swing.*)包。d)完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。e)精心的GUI设计允许快速操作和更精确的计时。f)缓存和离线分析/回放测试结果。g)高可扩展性:h)可链接的取样器允许无限制的测试能力。i)各种负载统计表和可链接的计时器可供选择。j)数据分析和可视化插件提供了很好的可扩展性以及以及个性化。k)具有提供动态输入到测试的功能(包括Javascrīpt)。l)支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)CompanyLogoCompanyLogo安装启动JMeter下载然后将下载的.zip文件解压缩到C:/JMeter使用%JMeter%/bin下面的jmeter.bat批处理文件来启动JMeter的可视化界面CompanyLogo界面脚本录制CompanyLogo利用BadBoy进行脚本录制利用JMeter的代理服务器功能进行脚本录制利用BadBoy录制JMeter脚本(1)通过Badboy的官方网站()下载Badboy的最新版本;安装Badboy。安装过程同一般的Windows应用程序没有什么区别,安装完成后你可以在桌面和Windows开始菜单中看到相应的快捷方式——如果找不到,可以找一下Badboy安装目录下的Badboy.exe文件,直接双击启动Badboy;启动Badboy,你可以看到下面的界面。CompanyLogo利用BadBoy录制JMeter脚本(2)CompanyLogo在地址栏(图中红色方框标注的部分)中输入你需要录制的Web应用的URL——这里我们以为例。点击开始录制按钮(图中蓝色圆圈标注的部分)开始录制开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中(图中黄色方框标注的部分)在baidu的搜索引擎中输入JMeter进行搜索录制下来的脚本并不是一行行的代码,而是一个个Web对象录制完成后,点击工具栏中的“停止录制”按钮(图中紫色方框标注的部分),完成脚本的录制;利用BadBoy录制JMeter脚本(3)CompanyLogo选择“File-ExporttoJMeter”菜单,填写文件名“baidu.jmx”,将录制好脚本导出为JMeter脚本格式。也可以选择“File-Save”菜单保存为Badboy脚本;启动JMeter并打开刚刚生成的测试脚本,就可以用JMeter进行测试了。利用JMeter的代理服务器功能进行脚本录制(1)CompanyLogo在测试计划中添加线程组,在线程组中添加逻辑控制器-录制控制器。在工作台中添加非测试元件-HTTP代理服务器。端口:即代理服务器的监听端口,我们设为8080。目标控制器选择:测试计划线程组;分组选择:每个组放入一个新的控制器。利用JMeter的代理服务器功能进行脚本录制(2)CompanyLogo在HTTP代理服务器中添加定时器-高斯随机定时器(用于告知Jmeter来在其生成的HTTP请求中自动的增加一个定时器)。定时器将会使相应的的取样器被延迟。延时的规则是,在上一个访问请求被响应并延时了指定的时间后,下一个被定时器影响的取样访问请求才会被发送出去。如果在代理服务器元件里使用了高斯随机定时器,就应该在其中的固定延迟偏移(ConstantDelayOffset)设置项里添上${T}(用于自动引用纪录的延迟时间)。利用JMeter的代理服务器功能进行脚本录制(3)CompanyLogo代理服务器配置好以后,点击启动,代理服务器就会开始记录所接受的HTTP访问请求。打开浏览器,打开Internet选项,将局域网(LAN)设置中的代理服务器设为:localhost,端口为在代理服务器中设的端口:8080。利用JMeter的代理服务器功能进行脚本录制(4)CompanyLogo在浏览器地址栏中输入地址并进行相关的操作进行录制,录制完成后,停止HTTP代理服务器;在录制控制器元件上单击右键将记录的元件保存为一个文件用于以后重用,另外,不要忘了恢复浏览器的代理服务器设置。CompanyLogo建立测试计划(TestPlan)测试计划描述了执行测试过程中JMeter的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(ThreadGroups)、逻辑控制(LogicController)、实例产生控制器(SampleGeneratingControllers)、侦听器(Listener)、定时器(Timer)、比较(Assertions)、配置元素(ConfigElements)。打开JMeter时,它已经建立一个默认的测试计划,一个JMeter应用的实例只能建立或者打开一个测试计划。CompanyLogo测试计划向一个jsp文件和一个servlet发出请求,我们需要JMeter模拟五个请求者(也就是五个线程),每个请求者连续请求两次CompanyLogo增加负载信息设置1.选中可视化界面中左边树的(测试计划)TestPlan节点,单击右键,选择Add‘ThreadGroup(增加线程组),界面右边将会出现他的设置信息框。CompanyLogo线程组三个和负载信息相关的参数:线程数:设置发送请求的用户数目Ramp-upperiod:每个请求发生的总时间间隔,单位是秒。比如你的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是10/5,也就是2秒循环次数:请求发生的重复次数,如果选择后面的forever,那么请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数,如果输入0,那么请求将执行一次。CompanyLogo增加默认Http属性(可选)实际的测试工作往往是针对同一个服务器上Web应用展开的,所以Jmeter提供了这样一种设置,在默认Http属性设置需要被测试服务器的相关属性,以后的http请求设置中就可以忽略这些相同参数的设置,减少设置参数录入的时间。CompanyLogoCompanyLogohttp属性的主要参数protocal:发送测试请求时使用的协议servernameorip:被测试服务器的ip地址或者名字path:默认的起始位置。比如将path设置为/jmeter,那么所有的http请求的url中都将增加/jmeter路径。portnumber:服务器提供服务的端口号CompanyLogohttp设置实例对本机的Web服务器上的Web(Tomcat)应用进行测试protocal应该是httpip使用localhost假设web应用发布的context路径是/jmeter,那么path设置为/jmeterTomcat服务器,portnumber是8080CompanyLogo增加Http请求测试的内容主体部分,可以通过下面的步骤来增加http请求选中可视化界面中左边树的线程组节点,单击右键,选择Add‘sampler-httprequest,界面右边将会出现他的设置信息框若设置了默认的http属性,则和默认http属性中相同的属性不再重复设置发送http时方法的选择,可以选择为get或者postPath中填入要访问的页面,如:/jmeter/sayhello.jsp可以带参数,用“增加”按钮CompanyLogo增加Listener增加listener是为了记录测试信息并且可以使用Jmeter提供的可视化界面查看测试结果根据自己习惯的分析方式选择不同的结果显示方式,如用表格的形式来查看和分析测试结果:选中可视化界面中左边树的测试计划节点,单击右键,选择“监听器”-图形结果可以设置界面上面的filename属性设置将测试结果保存到某个文件中接下来可以启动运行测试计划CompanyLogo运行的表格结果表格的第一列sampleno显示请求执行的顺序和编号,url显示请求发送的目标,sample-ms列显示这个请求完成耗费的时间,最后的success列显示改请求是否成功执行界面的最下面还可以看到一些统计信息,其中的Average,就是响应的平均时间CompanyLogoJmeter其他测试部件逻辑控制器定义Jmeter发送请求的行为逻辑,设定请求的顺序,可以与Sampler结合使用模拟复杂的请求序列断言:设定实际期望的返回结果,通过它可以知道请求是否成功前置处理器和后置处理器:发送请求前和后完成工作。前置处理器常常用来修改请求的设置或更新变量,后置则常常用来处理响应的数据和从它里面获取数值定时器:负责定义请求之间的延迟间隔CompanyLogoJmeter实例大学学籍管理系统—压力测试多用户同时登录使用Badboy录制,导出Jmeter格式根据需要修改脚本添加线程,断言,结果树等CompanyLogo修改脚本设置线程数虚拟用户50Ramp-up:0,同时根据需要,在不同的位置设置响应断言,查看结果树和图形结果关注用户登录在login.go处增加响应断言选择响应文本:schadmin增加图形结果,聚合报告等CompanyLogo运行绿色表示正在运行请求失败,断言失败等显示为红色聚合报告等查看结果参数化从文件中读数据函数助手菜单-选项使用CSVdatasetconfig工具添加配置元件CompanyLogoJmeter数据库压力测试安装MySql安装驱动拷贝mysql-connector-java-XXX-bin.jar到jmeter/lib下注意:拷贝完成后重新启动jmeter添加线程组添加配置元件JDBCConnectionConfiguration配置JDBC数据库地址:jdbc:mysql://localhost:3306/schadminSchadmin:是指要测试的数据库填写user和password:数据库连接的用户名和密码线程组添加JDBCRequest(Sampler中)Sql语句:select*fromstudentwherestuidlike‘2011%’;CompanyLogoCompanyLogo添加监听器图像结果,聚会报告,结果树等结果树可以看见查询的结
本文标题:Jmeter实践.
链接地址:https://www.777doc.com/doc-2882019 .html