JMeter学习篇(一):测试实例讲解
1.JMeter的下载与安装
Jmeter官方下载地址:http://jmeter.apache.org/download_jmeter.cgi,下载jmeter是一个zip压缩包,解压后,直接运行apache-jmeter-2.9\bin目录下的jmeter.bat文件。
2.测试实例
Get请求:
URL : https://zh.wikipedia.org/w/index.php?title=Special:搜索&profile=default&fulltext=Search&search=general&searchToken=2iim1utydlw71vdjezf4mj5t4
(1)添加线程组:
在线程组中可以定义两种性能测试方式:
1.线程数+每个线程的执行次数(通常用于执行性能测试)
2.线程数+启动时间和结束时间(通常用于执行稳定性测试)
Number of Threads(users): 一个用户占一个线程,20个线程就是模拟20个用户。
Ramp-Up Period(in seconds):设置线程需要多长时间全部启动。如果线程数为20 ,准备时长为1 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。
Loop Count:每个线程发送请求的次数。如果线程数为20,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。
调度器中可以设置测试的执行时间,指定结束时间后,循环次数条件会失效,每个线程都会循环运行,知道满足结束时间为止。
(2)添加HTTP请求:
添加完成线程组后,在线程组上右键菜单(添加--->Sampler--->HTTP请求)选择HTTP请求。对于jmeter来说,取样器(Sampler)是与服务器进行交互的单元。
将请求url:https://zh.wikipedia.org/w/index.php?title=Special:搜索&profile=default&fulltext=Search&search=general&searchToken=2iim1utydlw71vdjezf4mj5t4做分隔处理
Host:zh.wikipedia.org
请求路径:w/index.php
请求参数:title=Special:搜索,profile=default,fulltext=Search,search=general,searchToken=2iim1utydlw71vdjezf4mj5t4
依次将上述参数填入指定选项框中,如下图所示:
(3)添加监听器:
Jmeter中使用监听器元件手机取样器记录的数据并以可视化的方式呈现,Jmeter有各种不同的监听器类型,因为上HTTP请求,我们可添加聚合报告和查看结果树两种监听类型,更为直观的查看测试结果。
启动请求结果展示:
通过查看结果树元件可以查看具体每一条的请求url,响应数据结果等信息。
聚合报告结果:
至此,一个简单的性能测试就完成了,但是考虑到这种方式,每个请求的发送都要通过建立网络连接、vpn连接等过程,最终的结果会有一定的误差,所以,如果能把它放在服务器上运行,会得到更准确的结果。
保存测试计划,会以一个.jmx文件存储,该文件里面保存了所有上述的元件以及参数配置,将此.jmx文件放在bin目录下,并将Jmeter整个工程拷入服务器中(拷入一个与测试机相通的服务器,如果直接拷入测试机,在测试过程中会给测试机本身带来压力,影响测试结果)。
cd 到Jmeter的bin目录下,通过如下命令运行jmeter,并生成.jtl文件
./jmeter.sh -n -t TpsLimit.jmx -l test.jtl
原文出处:http://qa.blog.163.com/blog/static/190147002201682614648545/
JMeter学习篇(一):测试实例讲解的更多相关文章
- JMeter学习-022-JMeter 分布式测试(性能测试大并发、远程启动解决方案)
在使用 JMeter 进行性能测试时,难免遇到要求并发请求数比较的场景,此时单台测试机的配置(CPU.内存.带宽等)可能无法支持此性能测试场景.因而,此时 JMeter 提供的分布式测试功能就有了用武 ...
- JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置
众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...
- JMeter学习-014-JMeter 配置元件实例之 - 用户定义的变量 参数化配置
前文讲述了通过 CSV Data Set Config 实现参数化配置(详情敬请参阅:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置), ...
- Jmeter-接口测试实例讲解
一.测试需求描述 1. 本次测试的接口为http服务端接口 2. 接口的主要分成两类,一类提供给查询功能接口,一类提供保存数据功能接口,这里我们举例2个保存数据的接口,因为这两个接口有关联性,比较有代 ...
- JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录
前文我们讲过了若何获取登录后的 Cookie 信息,不知如何获取登录 Cookie 的朋友,敬请参阅我之前写的博文:Fiddler-005-获取 Cookie 信息.参阅上篇文章,获取到 Cookie ...
- JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇
前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获 ...
- JMeter学习-026-JMeter 分布式(远程)参数化测试实例
以前文所述对文章详情的HTTP请求进行性能测试为例.日常实际场景中,不可能所有的人都在同时访问一篇文章,而是多人访问不同的文章,因而需要对文章编号进行参数化,以更好的模拟日常的性能测试场景.同时,因文 ...
- JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取
前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). ...
- JMeter学习-007-JMeter 断言实例之一 - 响应断言
之前的文章中已经对如何录制 web 的请求进行了详细的描述,敬请参阅:JMeter学习-004-WEB脚本入门实战 同时,我们的手机应用(例如:京东.天猫.唯品会.携程.易迅 等等 App)所发出的请 ...
随机推荐
- 【DRP】採用dom4j完毕XML文件导入数据库
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/lantingxv_jing/article/details/37762523 xml文件在如 ...
- Raspberry Pi 开机启动QT程序
https://blog.csdn.net/coekjin/article/details/52498212 https://blog.csdn.net/dubuzherui/article/deta ...
- java漏洞历史
内容来自以前收集的思维导图,作者不明. 1.JDK漏洞 1.1.CVE-2012-4681 https://www.freebuf.com/vuls/5485.html msf: exploit/mu ...
- netstat 指令
netstat 指令将所有的网络端口监听情况进行罗列 语法 netstat -tuln 几个常见的服务端口 例 通过grep 查看端口来获得上面的服务是否开启,并给予提示 1 #!/bin/bas ...
- 添加ali yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #yum clean a ...
- thymeleaf onclick方法向js方法传递参数
如下图 这个错误并不影响 请放心使用
- js 实时计算文本框字数限制
$.fn.myTarea = function(){ return this.each(function(){ $(this).bind('input propertychange', functio ...
- git——修改已经提交并push后的commit注释
把代码push到远程后,发现commit的注释居然多了几个错别字,不行,必须改了! 搜索了一些答案之后自己做了一个总结如下: ①修改倒数第次的commit 指令:$ git rebase -i HEA ...
- 4-基于DoG的特征检测子(SIFT:稳定性好,实时性差)
opencv实现 详细原理:https://blog.csdn.net/u010440456/article/details/81483145
- Vue2.0源码思维导图-------------Vue 初始化
上一节看完<Vue源码思维导图-------------Vue 构造函数.原型.静态属性和方法>,这节将会以new Vue()为入口,大体看下 this._init()要做的事情. fun ...