您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > JMeter-入门小教程
JMeter入门小教程2016/03/21JMeter安装与配置•下载地址:•安装:①解压apache-jmeter-2.13.zip文件至F盘,本文解压至F:\apache-jmeter-2.13目录下②桌面上选择“我的电脑”(右键),高级,环境变量,在“系统变量”---“新建”,•在变量名中输入:JMETER_HOME,变量值中输入:F:\apache-jmeter-2.6•再修改CLASSPATH变量,变量值中添加•%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME•%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;•然后确定即可•③然后点击Jmeter目录下bin文件夹里的jmeter.bat就可以打开Jmeter。注意:1.安装Jmeter之前需要先配置Java环境,我们下载的是jmeter2.13,所以jdk版本最好是选用jdk1.6以后的版本。2.打开的时候会有两个窗口,Jmeter的命令窗口和Jmeter的图形操作界面,不可以关闭命令窗口2016/03/21JMeter接口测试-step1•打开JMeter会有一个默认的测试计划,在测试计划下添加一个线程组:2016/03/21JMeter接口测试-step22016/03/21在线程组上添加http请求:JMeter接口测试-step3•在HTTP请求填入相关的url及参数:JMeter接口测试-step4•添加查看结果树JMeter接口测试-step5•测试结果:JMeter接口测试-step6•聚合报告显示测试结果:•Label:每个JMeter的element(例如HTTPRequest)都有一个Name属性,这里显示的就是Name属性的值•#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100•Average:平均响应时间—默认情况下是单个Request的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间•Median:中位数,也就是50%用户的响应时间•90%Line:90%用户的响应时间•Min:最小响应时间•Max:最大响应时间•Error%:错误率,本次测试中出现错误的请求的数量/请求的总数•Throughput:吞吐量——默认情况下表示每秒完成的请求数(RequestperSecond)•KB/Sec:每秒从服务器端接收到的数据量JMeter主要组件•1、测试计划(TestPlan)是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器。•2、线程组(ThreadGroup)代表一定数量的并发用户,它可以用来模拟并发用户发送请求。•3、取样器(sampler)定义实际的请求内容,被线程组包含。我们主要用HTTP请求。•4、监听器(Listener)负责收集测试结果。•5、逻辑控制器(LogicController)可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。•6、断言(Assertions)可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行测试。这个限制对于有效的测试是非常有用的。•7、配置元件(ConfigElement)维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。我们主要在参数化中用到CSVDataSetConfig•8、前置处理器(PreProcessors)和后置处理器(PostProcessors)负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器。•9、定时器(Timer)负责定义请求之间的延迟间隔。JMeter--断言•断言(Assertions)可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行测试。这个限制对于有效的测试是非常有用的。参数化设置•在我们的测试计划中我们使用的都是HTTP请求,在HTTP请求中常常会提交一些参数,我们为了不想在每一次请求中都使用相同的参数值,就要想办法让每一次请求的参数的值都是不一样的,我们就需要进行参数化设置,这里我们介绍两种参数化设置的方法。•一种是利用函数助手中的_Random函数进行参数化设置;•一种是利用配置元件中的CSVDataSetConfig进行参数化设置。参数化设置-CSVDataSetConfig(1)•在线程组上点击右键选择添加-配置元件-CSVDataSetConfig,打开CSVDataSetConfig。•Filename文件名:即参数化要引用的文件名。这里是F:\jmeter\uesr.txt•Fileencoding文件编码:可以不填。•VariableNames(comma-delimited)变量名(用逗号分割):多个变量可以引用同一个文件,用逗号分割。这里是username,password•Delimiter(use‘\t’fortab):参数文件中多个变量值的分隔符,\t表示用tab键分割,默认是逗号。•RecycleonEOF?:结束后是否循环?默认是True.•user.txt文件内容见截图。参数化设置-CSVDataSetConfig(2)•在登录的请求中,我们在user_name的参数值中引用${username},在password的参数值中应用${password},见截图,这样测试运行时不同的线程将产生不同的username和password。注意:某些接口有json传递,可以用postBody来实现如:user_name=${username}&password=${password}动态数据关联•在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据,这些数据需要进行关联才能使得每一次请求都能成功得被服务器接受,在JMeter中采用正则表达式提取器来获取这些动态的数据。•正则表达式允许用户从服务器响应中获取数据,作为一个后置处理器,正则表达式提取器会在每一个请求执行后再执行,正则表达式提取请求的参数值,产生模板字符串,并将结果保存到给出的变量中。动态数据关联(1)-正则表达式提取器•在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据,这些数据需要进行关联才能使得每一次请求都能成功得被服务器接受,在JMeter中采用正则表达式提取器来获取这些动态的数据。比如我们想要获得从服务器相应的TOKEN,就可以使用下面的正则表达式提取器。如果有多个相同的返回结果,那模板$1$可以改为$2$代表取第2个token动态数据关联(2)•使用时就可以使用${token}来表示获取到的TOKEN值。如下图:EndingBY:吴静
本文标题:JMeter-入门小教程
链接地址:https://www.777doc.com/doc-5306296 .html