网站推广的意义和方法,二级域名申请入口,省级网站建设标准,天津网上办事大厅入口1. Jmeter简介
Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言#xff0c;JMeter小巧轻便且免费#xff0c;逐渐成为了主流的性能测试工具#xff0c;是每个测试人员都必须要掌握的工具之一。
本文为JMeter性能测试完整入门篇JMeter小巧轻便且免费逐渐成为了主流的性能测试工具是每个测试人员都必须要掌握的工具之一。
本文为JMeter性能测试完整入门篇从Jmeter下载安装到编写一个完整性能测试脚本、最终执行性能测试并分析性能测试结果。
运行环境为Windows 10系统JDK版本为1.8JMeter版本为3.3。
2. Jmeter安装
2.1 JDK安装
由于Jmeter是基于java开发首先需要下载安装JDK 目前JMeter只支持到Java 8尚不支持 Java 9
1. 官网下载地址Java Downloads | Oracle
2. 选择Java SE 8u151/ 8u152点击JDK下载 3. 安装下载的JDK
4. 配置系统环境变量
2.2 JMeter安装
1. 官网下载地址Apache JMeter - Download Apache JMeter
2. 下载最新JMeter 3.3版本apache-jmeter-3.3.zip 3. 下载完成后解压zip包
4. 启动JMeter
双击JMeter解压路径apache-jmeter-3.3\binbin下面的jmeter.bat即可 3. 测试实例
我们选取最常见的百度搜索接口
3.1 接口地址
http://www.baidu.com/s?ieutf-8wdjmeter性能测试
3.2 请求参数
ie编码方式默认为utf-8
wd: 搜索词
3.3 返回结果
搜索结果我们可以通过校验结果中是否含有搜索词wd来判断本次请求成功或失败。
4. JMeter脚本编写
4.1 添加线程组
右键点击“测试计划” - “添加” - “Threads(Users)” - “线程组” 这里可以配置线程组名称线程数准备时长Ramp-Up Period(in seconds)循环次数调度器等参数 线程组参数详解
1. 线程数虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
2. Ramp-Up Period(in seconds)准备时长设置的虚拟用户数需要多长时间全部启动。如果线程数为10准备时长为2那么需要2秒钟启动10个线程也就是每秒钟启动5个线程。
3. 循环次数每个线程发送请求的次数。如果线程数为10循环次数为100那么每个线程发送100次请求。总请求数为10*1001000 。如果勾选了“永远”那么所有线程会一直发送请求一到选择停止运行脚本。
4. Delay Thread creation until needed直到需要时延迟线程的创建。
5. 调度器设置线程组启动的开始时间和结束时间(配置调度器时需要勾选循环次数为永远)
持续时间秒测试持续时间会覆盖结束时间
启动延迟秒测试延迟启动时间会覆盖启动时间
启动时间测试启动时间启动延迟会覆盖它。当启动时间已过手动只需测试时当前时间也会覆盖它。
结束时间测试结束时间持续时间会覆盖它。 因为接口调试需要我们暂时均使用默认设置待后面真正执行性能测试时再回来配置。
4.2 添加HTTP请求
右键点击“线程组” - “添加” - “Sampler” - “HTTP请求” 对于我们的接口http://www.baidu.com/s?ieutf-8wdjmeter性能测试可以参考下图填写 Http请求主要参数详解
1. Web服务器
协议向目标服务器发送HTTP请求协议可以是HTTP或HTTPS默认为HTTP
服务器名称或IP HTTP请求发送的目标服务器名称或IP
端口号目标服务器的端口号默认值为80 2.Http请求
方法发送HTTP请求的方法可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
路径目标URL路径URL中去掉服务器地址、端口及参数后剩余部分
Content encoding 编码方式默认为ISO-8859-1编码这里配置为utf-8 3. 同请求一起发送参数
在请求中发送的URL参数用户可以将URL中所有参数设置在本表中表中每行为一个参数对应URL中的 namevalue注意参数传入中文时需要勾选“编码”
4.3 添加察看结果树
右键点击“线程组” - “添加” - “监听器” - “察看结果树” 这时我们运行Http请求修改响应数据格式为“HTML Source Formatted”可以看到本次搜索返回结果页面标题为”jmeter性能测试_百度搜索“。 4.4 添加用户自定义变量
我们可以添加用户自定义变量用以Http请求参数化右键点击“线程组” - “添加” - “配置元件” - “用户定义的变量” 新增一个参数wd存放搜索词 并在Http请求中使用该参数格式为${wd} 4.5 添加断言
右键点击“HTTP请求” - “添加”- “断言” - “响应断言” 我们校验返回的文本中是否包含搜索词添加参数${wd}到要测试的模式中 4.6 添加断言结果
右键点击“HTTP请求” - “添加”- “监听器” - “断言结果” 这时我们再运行一次就可以看到断言结果成功或失败了 4.7 添加聚合报告
右键点击“线程组” - “添加” - “监听器” - “聚合报告”用以存放性能测试报告 这样我们就完成了一个完整Http接口的JMeter性能测试脚本编写。
5. 执行性能测试
5.1 配置线程组
点击线程组配置本次性能测试相关参数线程数循环次数持续时间等这里我们配置并发用户数为10持续时间为60s 5.2 执行测试
点击绿色小箭头按钮即可启动测试测试之前需要点击小扫把按钮清除之前的调试结果。 6. 分析测试报告
待性能测试执行完成后打开聚合报告可以看到 聚合报告参数详解
1. Label每个 JMeter 的 element例如 HTTP Request都有一个 Name 属性这里显示的就是 Name 属性的值
2. #Samples请求数——表示这次测试中一共发出了多少个请求如果模拟10个用户每个用户迭代10次那么这里显示100
3. Average平均响应时间——默认情况下是单个 Request 的平均响应时间当使用了 Transaction Controller 时以Transaction 为单位显示平均响应时间
4. Median中位数也就是 50 用户的响应时间
5. 90% Line90 用户的响应时间
6. Min最小响应时间
7. Max最大响应时间
8. Error%错误率——错误请求数/请求总数
9. Throughput吞吐量——默认情况下表示每秒完成的请求数Request per Second当使用了 Transaction Controller 时也可以表示类似 LoadRunner 的 Transaction per Second 数
10. KB/Sec每秒从服务器端接收到的数据量相当于LoadRunner中的Throughput/Sec 一般而言性能测试中我们需要重点关注的数据有 #Samples 请求数Average 平均响应时间Min 最小响应时间Max 最大响应时间Error% 错误率及Throughput 吞吐量。 7. 源码下载
至此我们使用JMeter完成了一个完整的Http接口性能测试流程从脚本编写执行到最终结果分析。 【性能测试】终于有一套全面的性能测试教程啦真实企业性能测试全流程项目实战!