Jmeter自学笔记10----性能测试基础实战

1、测试需求:测试20个用户访问某个网站在负载达到30QPS时的平均响应时间。

QPS:Query Per Second每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作用域名系统服务器的性能经常用每秒查询率来衡量。

2、测试步骤:

  线程组主要包含三个参数:线程树、准备时长(Ramp-up Period(in seconds))、循环次数。

  * 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。

  * 准备时长(单位为s):设置的虚拟用户数需要多长时间全部启动。如果线程数为20,准备时长为10,那么需要10秒启动20个线程。也就是每秒钟启动2个线程。

  * 循环次数:每个线程发送请求的次数。如果线程数为20,循环次数为5,那么每个线程发送5次请求。总请求数为20*5=100.如果勾选了“永远”,那么所有线程会一直发送请求,一直到选择停止运行脚本。

第二部:增添HTTP请求

一个HTTP请求有着许多的配置参数,下面将详细介绍:

* 名称:本属性用于标识一个取样器,建议使用一个有意义的名称。

* 注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。

* 服务器名称或IP:HTTP请求发送的目标服务器名称或IP地址。

* 端口号:目标服务器的端口号,默认值为80.

* Timeouts(milliseconds):设置请求和响应的超时时间。

* 协议:向目标服务器发送HTTP请求时的协议,可以是http或者https,默认值为http。

* 方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

* Content encoding:内容的编码方式,默认值为iso8859

* 路劲:目标url路径(不包括服务器地址和端口)

* 自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter自动重定向到新的页面。

* Use keep Alive:当该选项被选中时,jmeter和目标服务器之间使用Keep-Alive方式(又称持久连接、连接重用)进行HTTP通信,默认选中。

* Use multipart/from-data for HTTP POST:当发送HTTP POST请求时,使用Use multipart/from-data方法发送,默认不选中。

* 同请求一起发送参数:在请求中发送URL参数,对于带参数的URL,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应url中的名称1=值1)。

* 同请求一起发送文件:在请求中发送文件,通常HTTP文件上传行为可以通过这种方式模拟。

* 从HTML文件获取所有有内容的资源:当该选项被选中时,jmeter在发出HTTP请求并获得响应的HTML文件内容后,还对应HTML进行分析并获取HTML中包含的所有资源(图片、flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match文本框中填入需要下载的特定资源表达式,这样,只有能匹配制定正则表达式的URL制定资源会被下载。

* 用作监视器:此取样器被当成监视器,在Monitor Results Listener中可以直接看到基于该取样器的图形化统计信息。默认为不选中。

* Save response as MD5 hash?:选中该项,在执行时仅记录服务器响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。

tips 默认时间单位是毫秒  报告输出文件后缀 .jtl

第三部:设置QPS限制

  Jmeter提供了一个非常有用的定时器,称为Constant Throughput Timer(常数吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量。

Constant Throughput Timer的主要属性介绍:

Target throughout(in samples per minute):目标吞吐量。注意这里是每分钟发送请求数,实际填的数值为:60*QPS其次Calculate Throughput based on:有5个选项,分别是:

60*30=1800

. This thread only:控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的target Throughput乘以该线程的数量。

. All active threads:设置的target Throughput将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。

. All active threads(shared):与All active threads的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。

. All active threads in current thread group:设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。

. All active threads in current thread group(shared):与All active threads in current thread group基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。

第四部:添加监视器

  脚本的主要部分设置完成后,需要通过某种方式获得性能测试中的测试结果,在本例中,我们关心的是请求的响应时间。

  Jmeter中使用监听器元件收集取样器记录的数据并以可视化的方式来呈现。Jmeter有各种不同的监听器类型,因为上面HTTP请求,我们可在添加聚合报告,更为直观的查看测试结果。

  添加聚合报告,右键点击线程组,在弹的菜单(添加--->监听器---->聚合报告)中选择聚合报告。

  添加查看结果树(添加---->监听器---->查看结果树)

第五部:运行脚本

第六部:聚合报告分析

时间: 2024-10-04 17:39:08

Jmeter自学笔记10----性能测试基础实战的相关文章

jmeter性能测试基础实战

一.前言 “纸上得来终觉浅,绝知此事要躬行.”学习了理论知识,要实操起来.本文主要介绍jmeter性能测试基础实战. 二.Jmeter 性能测试基础实战 1.测试需求:测试20个用户访问https://www.cnblogs.com/huainanhai/ 在负载达到30 QPS时的平均响应时间. QPS: Query Per Second每秒查询率:是一台查询服务器每秒能够处理的查询次数.在因特网上,作为域名系统服务器的性能经常用每秒查询率来衡量. 2.测试步骤: 第一步:添加线程组 线程组主

【读书笔记】性能测试基础

读书笔记:<零成本实现Web性能测试>第1~3章随手记 第1章 性能测试基础 性能测试的基本流程: 1.明确性能测试需求 2.制定性能测试方案 性能测试方案应该详尽地描述如何进行性能测试,其中应该至少包括: 1)测试背景 2)测试目的 3)测试范围           4)测试进入条件           5)测试退出条件 6)测试指标要求 7)测试策略 8)测试时机 9)测试风险 10)测试资源      3.编写性能测试案例 4.执行性能测试案例 5.分析性能测试结果 6.生成性能测试报告

2015最全iOS开发自学视频资料(基础+实战)

最全的iOS自学视频,包括c,objective-c,UI等等,没有你找不到的,只有你学不会的,只要你想学,这里都有你所需要的. 推荐教程点这里:http://www.mobiletrain.org/?wxl 唯一教会你从零基础开始做 iOS 系统.LBS.底层应用及游 .底层应用及游戏的开发,最终出属于自己iOS iOS作品. 通过 C/C++/ObjectiveC/iOS开发强化训练,成为从零基础掌握具有开发中大型 iOS 项目能力的移动软件开发高级人才.掌握 MacOS MacOS .iP

大龄屌丝自学笔记--Java零基础到菜鸟--017

代码块,继承,this 和 super,方法的重写 1.代码块:使用 “{}” 括起来的代码,称为代码块. 构造代码块:在类中的成员位置,用 “{}” 括起来的代码. 静态代码块:构造代码块+静态修饰符. 局部代码快:局部位置,用于限定变量的生命周期. 1 class Test{ 2 static { 3 System.out.println("静态代码块"); 4 } 5 6 { 7 System.out.println("构造代码块"); 8 } 9 10 pu

Linux自学笔记——Linux网络基础、命令及属性配置

网络对于Linux来说不可或缺的一部分,本文主要对linux网络的基础知识,常用配置命令以及linux配置文件的属性等等作一个总结. 计算机网络: TCP/IP协议栈: TCP/IP分为4层,分别为应用层,传输层,网络互连层,主机到网络层,不同于OSI,他将OSI中的会话层.表示层规划到应用层,把数据链路层和物理层划分给主机到网络层. OSI,Open System Interconnection,开放式系统互联,国际化标准组织ISO制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描

Linux自学笔记——httpd2.2基础配置

http服务器程序: httpd(apache) nginx lighttpd 应用程序服务器: IIS: .net tomcat:.jsp 可访问网址:www.netcraft.com httpd的安装和使用: ASF:apache software foundation httpd:apache a patchy server =apache httpd的特性: 高度模块化:core + modules DSO:dynamic shared object MPM:Multipath proc

【Jmeter自学笔记7----Badboy与jmeter脚本录制】

下载地址:http://www.badboy.com.au Badboy时一个强大的工具,旨在帮助测试和开发复杂的动态应用.Badboy包括一个简单而全面的捕获/回放界面,强大的负载测试的支持,详细的报告图表等等,从而使Web测试和开发变得更加容易. 关于录制时的脚本错误提示 访问者所实用的浏览器不能完全支持页面里面的脚本,形成"脚本错误".遇到"脚本错误"时一般会弹出一个非常难看的脚本运行错误警告窗口,而事实上,脚本错误并不会影响网站浏览,因此这一警告可谓多此一举

HTML5自学笔记[ 10 ]简单的购物车拖拽

用html5拖拽功能实现了一个简单的购物车,样式简陋,得学学画画提高下审美了T^T: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>购物车拖拽</title> 6 7 <style> 8 *{ margin:0; padding:0;} 9 #proList{ overflow:hidden;} 10 #pro

大龄屌丝自学笔记--Java零基础到菜鸟--035

常用设计模式:简单工厂模式.工厂方法模式.单例模式,Runtime类 1.设计模式 创建型:创建对象. 结构型:对象的组成. 行为型:对象的功能. 2.简单工厂模式(创建型) 1 public abstract class Animal{ 2 public abstract void eat(); 3 } 4 5 public class Cat extends Animal{ 6 @Override 7 public void eat(){ 8 System.out.println("喵&qu