Jmeter进行http接口性能测试
Jmeter多接口测试性能测试
一、接口业务流程1、获取token接口http://192.168.1.4:9900/rest/getToken/2、获取图片链接口http://192.168.1.4:9900/regist/getImagePath/?token=89bd9d88f4f3421c9e639dfab0c a423c&type=fql返回数据:{"msg": "\u6210\u529f", "code": 0, "detail": {"image_path":"/images/regist/20160822/img1471837595.25.jpg"}}3、获取图片验证码接口http://192.168.1.4:9900/images/regist/20160822/img1471850521.18.jpg4、获取注册结果接口http://192.168.1.4:9900/regist/imageView/?imagecode=zds4&phone=182********&t oken=89bd9d88f4f3421c9e639dfab0ca423c&type=fql二、JMETER的使用1、基本操作1.1、新增测试计划新增线程组,接着在该线程组下方新增4个“HTTP请求”(添加-Sampler-HTTP请求),再在该线程组下方添加“察看结果树”(添加-监听器察看结果树)。
也可以在每个HTTP请求下方添加“察看结果树”,方便找到需要正则或参数化的数据。
一个完整的测试计划诞生了,如下图2.1所示图2.11.2、配置HTTP请求以上图中的“HTTP请求01”为例进行说明。
在HTTP请求窗口中的Basic标签页面上输入服务器名称或IP、端口号和路径(路径URL地址端口号后面的),其他默认,如下图2.2-1所示。
jmeter性能测试实验报告
jmeter性能测试实验报告JMeter 性能测试实验报告一、实验背景随着业务的不断发展,系统的性能成为了关键的关注点。
为了确保系统在高并发、大数据量等情况下能够稳定运行,满足用户的需求,我们使用 JMeter 工具对系统进行了性能测试。
二、实验目的本次性能测试的主要目的是评估系统的性能表现,包括但不限于以下方面:1、确定系统能够承受的最大并发用户数。
2、评估系统在不同并发用户数下的响应时间和吞吐量。
3、检测系统在高负载下是否存在性能瓶颈,如内存泄漏、CPU 利用率过高等。
4、为系统的优化和改进提供依据。
三、实验环境1、硬件环境服务器:_____客户端:_____2、软件环境操作系统:_____应用服务器:_____数据库:_____JMeter 版本:_____四、实验设计1、测试场景设计登录场景:模拟用户登录系统的操作。
搜索场景:模拟用户进行搜索的操作。
数据提交场景:模拟用户提交数据的操作。
2、并发用户数设置逐步增加并发用户数,从 100 开始,每次增加 100,直到系统出现性能瓶颈或达到预期的最大并发用户数。
3、测试数据准备准备足够的测试数据,包括用户账号、搜索关键词、提交的数据等,以确保测试的真实性和有效性。
4、性能指标监控监控服务器的 CPU 利用率、内存利用率、磁盘 I/O 等性能指标。
监控系统的响应时间、吞吐量、错误率等性能指标。
五、实验步骤1、启动 JMeter 工具,创建测试计划。
2、添加线程组,设置并发用户数和循环次数。
3、添加 HTTP 请求,配置请求的方法、路径、参数等。
4、添加监听器,用于收集性能指标数据,如聚合报告、查看结果树等。
5、配置服务器监控插件,监控服务器的性能指标。
6、运行测试计划,观察性能指标的变化。
7、根据测试结果,分析系统的性能表现,找出性能瓶颈。
六、实验结果及分析1、登录场景并发用户数为 100 时,平均响应时间为 2 秒,吞吐量为 50 次/秒,错误率为 0%。
使用jMeter构造大量并发HTTP请求进行微服务性能测试
使用jMeter构造大量并发HTTP请求进行微服务性
能测试
比如我开发好了一个微服务,想测试其在大并发请求下的性能表现如何。
比较方便的一个做法是使用工具jMeter来构造这些请求。
创建一个新的工程:
创建一个新的Thread Group,下图意思是这个工程会使用3个线程同时发请求,每个请求执行一次。
在这个Thread Group里创建一个新的HTTP请求,维护如下属性。
Protocol: https
Server name:
Http request method: GET
Http path: /sap/c4c/odata/v1/c4codata/AccountCollection/
Use KeepAlive: 不选择
在参数标签页,维护参数名称$search, 值为'Wang'。
这个请求的意思是使用Odata请求查询账号名称为'Wang'的实例。
创建一个新的HTTP Header Manager,维护执行这个请求的Authorization信息。
这里我使用Basic认证方式,即HTTP header名称为Authorization,值为用户名:密码经过base64编码之后的值。
维护完毕之后点执行按钮,
会观察到3个线程同时发出HTTP请求,并能看到每个请求的响应时间。
也可以用命令行jmeter -n -t 的方式执行测试,看到的结果和在jMeter GUI上执行的一致。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"。
Jmeter接口层性能与自动化测试全程实战(小强测试)课件PPT模板
03 1-3自动化测试认 04 1-4jmeter 介绍与
知浅谈
安装
05 1-5jmeter 插件安 06 1-6接口定义和
装与管理
http请求响应
第1章接口测试和jmeter基础知识
1-7接口测试文档 1-8jmeter常用组件和概念介绍
02 第2章常见接口测试实 战
第2章常见接 口测试实战
01 2-1关于实战使用 02 2-2http 接口测试
的接口说明
实战
03 2-3请求头信息头 04 2-4响应断言和
管理器
jsonassertion
05 2-5断言持续时间 06 2-6参数化
和sizeassertion
第2章常见接口测试实战
2-7关联和请求依赖之 boundaryextractor
jmeter接口层性能与自动化测 试全程实战(小强测试)
演讲人
2 0 2 x - 11 - 11
目录
01. 第1章接口测试和jmeter基础知识 02. 第2章常见接口测试实战
01 第1章接口测试和 jmeter基础知识
1 jmeter
第 章 接 基口 础测 知试 识和
01 1-1课程介绍-必看 02 1-2性能测试认知
2-9jmeter对 cookies的自动管
理
211xpathassertiosonextractor
C 2-10webservice 接口测试实战
E 212xpathextracto r
B
D
F
感谢聆听
Jmeter接口测试实例讲解
1. 负载测试 场景运行测试时间:10分钟 总体测试结果
并发用户数
20 50 75 100
90%用户响应 时间(秒) 0.121 0.243 0.699 3.458
错误率
吞吐量(事务 数/秒)
0.00% 303.2
0.00% 317.6
0.00% 122.4
0.00% 20.5
1. 稳定性测试 场景运行时间:1小时
"clientNo":"${add}434343556", "accountName": "测试", "billDate": "08", "billMonth": "20150${__Random(1,9,)}", "cardNo": "${add}25622356788251", "currentPayment": "欠款459.80", "paymentDate": "2015-0${__Random(1,9,)}-25 09:00:00", } 5、设置线程组循环测试,点击运行
4、引用计数器和随机函数 信用卡账户接口传入参数
args={ "clientNo":"${add}434343556", "alias": "**信用卡2", "cardName": "长城*****卡2", "cardNo": "${add}25622356788251", }
账单接口传入参数 args={
jmeter使用文档-接口测试
Protocol:HTTP, HTTPS or FILE. Default: HTTP。
Method:HTTP请求方法,常见的是GET 和POST。 Content encoding:请求内容编码(用于设置POST,PUT, FILE 方法等发送的内容使用编码),响应读取时使用的内容 编码设置是在jmeter.properties 中的 sampleresult.default.encoding项,默认为ISO-8859-1。 Path:url 路径(不包括服务器、端口)。特例:如果路径 以”http://”或“https://”开头,即视为完整的URL,这 时设置的服务器、端口和协议字段被忽略; 并且此时如果选择 的是GET和DELETE 方法时,parameters设置也会被忽略。
Browser-compatible headers:当使用multipart/form-data,请求头Content-Type、Content-Transfer-Encoding被忽略;
Parameters:设置url请求参数
Encode?:是否urlencode,参数有“=”、“&”、“?”等特殊符号时一定要选择。 Include Equals?:自动添加参数名和值之间的等号。
Jmeter(五)Jmeter接口测试和压力测试
Jmeter(五)Jmeter接⼝测试和压⼒测试 jmeter是apache公司基于java开发的⼀款开源压⼒测试⼯具,体积⼩,功能全,使⽤⽅便,是⼀个⽐较轻量级的测试⼯具,使⽤起来⾮常简单。
因为jmeter是java开发的,所以运⾏的时候必须先要安装jdk才可以。
jmeter是免安装的,拿到安装包之后直接解压就可以使⽤,同时它在linux/windows/macos上都可以使⽤。
jmeter可以做接⼝测试和压⼒测试。
其中接⼝测试的简单操作包括做http脚本(发get/post请求、加cookie、加header、加权限认证、上传⽂件)、做webservice脚本、参数化、断⾔、关联(正则表达式提取器和处理json-json path extractor)和jmeter操作数据库等等。
接⼝测试Jmeter-http接⼝脚本⼀般分五个步骤:(1)添加线程组(2)添加http请求(3)在http请求中写⼊接⼊url、路径、请求⽅式和参数(4)添加查看结果树(5)调⽤接⼝、查看返回值jmeter 发get请求jmeter 发post请求jmeter 添加cookie需要在线程组⾥添加配置元件—HTTP Cookie 管理器jmeter 添加header需要在线程组⾥⾯添加配置元件—HTTP信息头管理器jmeter 上传⽂件jmeter 参数化⼊参经常变化的话,则可以设置成⼀个变量,⽅便统⼀修改管理;如果⼊参要求随机或可多种选择,则通过函数⽣成器或者读取⽂件形成⼀个变量。
所以参数化有三种⽅式:⽤户定义的变量、函数⽣成器、读取⽂件。
(1)⽤户定义的变量 需要添加配置元件-⽤户定义的变量。
(2)函数⽣成器 需要⽤到函数助⼿功能,可以调⽤函数⽣成⼀些有规则的数据。
常⽤的⼏个函数有_uuid、_random、_time。
_uuid会⽣成⼀个随机唯⼀的id,⽐如在避免java请求重发造成未处理数据太多的情况,接⼝请求可加⼀个唯⼀的请求id唯⼀的响应id进⾏⼀⼀对应;随机数_random,可以在你指定的⼀个范围⾥取随机值;取当前时间_time,⼀些时间类的⼊参可以使⽤,如{__time(,)} 是⽣成精确到毫秒的时间戳、{__time(/1000,)}是⽣成精确到秒的时间戳、${__time(yyyy-MM-dd HH:mm:ss,)} 是⽣成精确到秒的当前时间。
jmeter性能测试方法
Jmeter性能测试方法By 杨会会 2011-11-15目前进行性能测试的工具有很多,LoadRunner,就是常用的性能测试工作,它功能强大,有强大的分析工具,但是安装起来却费事又费力。
而jmeter是一个轻量级的代理LR 的性能测试工具。
区别1.Jmeter与LRApache Jmeter是一个100%的纯java桌面应用,用于压力测试和性能测试。
Jmeter最早是为了测试Tomcat的前身JServ的执行效率而诞生的,主要是针对web的压力和性能测试,但后来扩展到其他测试领域。
从下面的图中我们可以看到:Jmeter可以用于测试FTP、HTTP、RPC、JUNIT、JMS、LDAP、WebService(Soap) Request以及Mail和JDBC(数据库压力测试)。
同时, JMeter可以帮助你对你的应用程序进行回归测试. 通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值. 为了更高的适应性, JMeter允许你使用常规表达式来创建这些assertions.3.性能测试的流程性能测试的流程都差不多,搭建环境,设计场景,找到适合的工具,录制编写脚本,进行测试,最后对结果进行分析。
下面就针对整个流程进行讲述。
3.1.搭性能测试环境。
性能测试的环境要在合适的机器上搭建,首先机器不能配置太差,比如虚拟机之类的就最好不要是用了。
其次机器不要运行的程序太多,空机器就最好了。
如果是为了测试线上机器的使用,最好在线下配置与线上的环境有相近的CPU核数,内存大小等。
3.2.确定测试场景根据项目的特定,跟PM与RD,最好叫上O P确定需要测试的场景。
需要多少人并发,并发多长时间。
以及可以接受的数据,比如50人并发,登录按钮反应时间在3s内可接受等,这些数据是我们进行性能测试的参考。
根据这些数据,可以确定压力的极限,并推测机器的负载。
3.3.录制脚本搭建好环境,确定场景之后,就是录制脚本的阶段了。
学习总结——JMeter做http接口功能测试
学习总结——JMeter做http接⼝功能测试JMeter对各种类型接⼝的测试打开JMeter,添加⼀个线程组和该线程组的查看结果树。
以下的⼏种接⼝请求我们都在这个线程组中添加和运⾏。
如果你的JMeter返回数据是乱码,解决办法是,在JMeter安装路径的bin⽬录下,打开⽂件jmeter.properties,把Sampleresult.default.encoding的值改为 utf-8 即可。
1. 普通的以key-value传参的get请求e.g. 获取⽤户信息添加http请求;填写服务器域名或IP;⽅法选GET;填写路径;添加参数;运⾏并查看结果。
2. 以Json串传参的post请求e.g. 获取⽤户余额添加http请求;填写服务器域名或IP;⽅法选POST;填写路径;在参数区域选Body Data标签;写⼊Json串参数,注意Json格式;运⾏并查看结果。
*注意:Json传参时,往往参数相对复杂,规模较⼤,很多时候是Json串再嵌套Json串,在写⼊body的时候如果哪⾥格式不对会影响传参,⽽JMeter本⾝是不能对Json进⾏格式校验的(Postman可以进⾏简单的Json校验),我们可以借助这个⽹站来校验你的Json串的格式,再把确保格式正确的Json串填⼊body。
3. 请求时需要http权限验证e.g. 修改⽤户余额添加http请求;填写服务器域名或IP;⽅法选POST;填写路径;填写参数;添加授权管理器,右击线程组->添加->配置元件->HTTP授权管理器;打开HTTP授权管理器,在基础URL添加路径;填写⽤户名、密码(接⼝⽂档会给出);添加域即请求的服务器域名或IP;其他默认;运⾏请求并查看结果。
(该接⼝暂时有问题请求返回500,只要掌握需要权限验证的接⼝如何做就好)4. 请求时需要添加请求标头e.g. 获取⽤户信息2添加http请求;填写服务器域名或IP;⽅法选POST;填写路径;填写参数;添加HTTP信息头管理器,右击线程组->添加->配置元件->HTTP信息头管理器;打开HTTP信息头管理器,参照接⼝⽂档填写好header信息;运⾏请求并查看结果。
使用JMeter测试HTTP接口的方法
使⽤JMeter测试HTTP接⼝的⽅法 JMeter是Apache出的⼀款⽤JAVA开发的性能测试⼯具,可以⽅便的对各种接⼝进⾏测试。
下⾯就来看⼀下,使⽤JMeter对HTTP接⼝进⾏测试的⽅法。
1、添加线程组,⽤来控制执⾏过程。
右键“测试计划”→“添加”→“Threads(Users)”→“线程组”。
线程组有三个属性:线程数:启动的线程数量。
Ramp-Up Period:指定时间启动所有线程。
会⽤相等间隔启动所有线程。
循环次数:线程循环执⾏的次数。
举个栗⼦:设置线程数=2、Ramp-Up Reriod=10、循环次数=3,那么流程就是,启动1个线程,隔5秒再启动第2个线程,每个线程启动后执⾏3次。
2、添加HTTP请求,⽤来设置具体HTTP请求的内容。
右键“线程组”→“添加”→“Sampler”→“HTTP请求”。
最简单的参数设置⽅法,是直接将请求地址填在路径⾥,如下:也可以将参数分开填写到对应位置(分开填写的好处是后期可以动态配置),如下:3、添加查看结果页⾯,⽤来查看HTTP请求的结果。
右键“线程组”→“添加”→“监听器”→“察看结果树”。
请求过后,可以在取样器结果、请求、响应数据三个页⾯中看到请求的所有信息,包括请求地址、参数、返回值、耗时等等。
如下:4、请求参数的设置。
刚的HTTP请求,并没有传参,但通常的接⼝请求都会带有参数,那么在哪⾥添加呢?就是在第2步的HTTP请求页⾯中的Parameters、BodyData。
接⼝参数接收⽅式通常有2种,对应传参⽅式如下:(1)键值对的⽅式。
1public Map<String, Object> getUserInfo(@RequestParam String userId) {2return getUserInfo(userId);3 }对应JMeter的传参⽅式Parameters。
如下:(2)Json的⽅式。
1public Map<String, Object> getUserInfo(@RequestBody UserInfo userInfo) {2return getUserInfo(userId);3 }45 @Data6public class UserInfo {7private String userId;8 }对应JMeter传参⽅式Body Data。
jmeter教程
jmeter教程使用Jmeter进行http接口测试前言:本文主要针对http接口进行测试,使用Jmeter工具实现。
Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http 接口的测试。
一、开发接口测试案例的整体方案:?? 第一步:我们要分析出测试需求,并拿到开发提供的接口说明文档;第二步:从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点。
??? 第三步:和开发一起对接口测试案例进行评审。
第四步:结合开发库,准备接口测试案例中的入参数据和出参数据,并整理成csv格式的文件。
第五步:结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发。
二、接口自动化适用场景:目前设计的自动化接口测试案例有两个运行场景:1. 测试前置、开发自测:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。
【开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。
】2. 回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行。
三、接口测试环境准备? Jdk1.6或以上:?? Jmeter,下载址址:插件的下载安装地址:四、创建工程:1、打开Jmeter:下载好Jmeter后,双击bin目录下的jmeter.bat文件:2、添加线程组:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。
jmeter之接口测试(http接口测试)
jmeter之接⼝测试(http接⼝测试)基础知识储备⼀、了解jmeter接⼝测试请求接⼝的原理客户端--发送⼀个请求动作--服务器响应--返回客户端客户端--发送⼀个请求动作--jmeter代理服务器---服务器--jmeter代理服务器--服务器⼆、了解基础接⼝知识:1、什么是接⼝:前端与后台之间的桥梁、数据传输的通道,就是⼀个函数2、什么阶段做接⼝测试:单元测试阶段、3、没有接⼝⽂档,怎么做接⼝测试:通过⼯具抓包、开发要。
4、那些⼯具可以完成接⼝测试:fiddler,jmeter,soapui,postman...5、http请求包含哪些内容:请求头(链接)拓展,请求参数,响应头,响应内容,状态码(链接)拓展6、获取接⼝⼯具:fiddler,charls..接⼝测试开始:⼀、http接⼝请求:今天研究下接⼝测试⼯具jmeter,历经⼀下午,⼀点⼩收获记录⼀下:⼀、安装jmter-->百度有教程,⼀步步跟着来就⾏⼆、操作步骤请往下看:1、给⾃⼰的计划起个名字--测试计划2、新建⼀个http请求3、新建查看结果树/查看结果的表格,内容⼀样,就是效果显⽰有点不同4、查看结果:5、简单的接⼝测试已经可以了,路径和参数,使⽤抓包⼯具都可以抓取到,域名和路径不要弄混了哦。
问题:如果参数⽐较多,要每⼀种结果都建⼀个请求吗?可以对传递的参数进⾏参数化。
第⼀步:新建⼀个Csv DataSet Coinfig(读取本地测试⽂件的⼯具,个⼈理解,有点难lou)第⼆步:在本地新建⼀个⽂档,存储数据,可以是excl,csv,txt,⽂件格式第三步:配置数据的读取路径,和⽂件传输的格式。
第四步:设置循环,需要执⾏⼏条设置⼏次循环结束:⼀个简单的http接⼝测试完成了。
使用JMeter进行性能测试
1.使用JMeter进行性能测试文档选项级别:初级(), 软件工程师2004 年 2 月 13 日JMeter 是 Apache 组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1。
本文中作者将向大家介绍如何使用JMeter 进行测试。
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1,大家可以到下载源代码和查看相关文档。
JMeter作用领域JMeter 可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。
JMeter 用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。
你可以用 JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。
使用JMeter测试Web应用接下来的章节里,作者将详细的演示如何使用JMeter来测试Web应用的完整过程。
测试环境作者使用了Tomcat作为Web服务器进行测试,被测试的内容是一个jsp文件和一个servlet,jsp文件调用JavaBean、打印相关信息,servlet接受用户参数、调用javabean、输出相关信息。
详细的内容请参考作者提供的的内容。
安装启动JMeter大家可以到通过 1.9.1下载JMeter的release版本,然后将下载的.zip文件解压缩到C:/JMeter(后面的文章中将使用%JMeter%来引用这个目录)目录下。
现在,请使用%JMeter%/bin下面的批处理文件来启动JMeter的可视化界面,下面的工作都将在这个可视化界面界面上进行操作。
下面的图片是JMeter的可视化界面的屏幕截图。
图一: JMeter打开时的屏幕截图建立测试计划(Test Plan)测试计划描述了执行测试过程中JMeter的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制(Logic Controller)、实例产生控制器(Sample Generating Controllers)、侦听器(Listener)、定时器(Timer)、比较(Assertions)、配置元素(Config Elements)。
通过Jmeter进行http性能测试方案
Jmeter-Http测试方案和测试报告示例第一部分测试报告示例第二部分Jmeter使用说明第一部分测试报告示例性能测试报告:测试目标:测试xxx平台用户登录并发的承载能力测试服务器:xxx云平台测试原理:远程并发Http请求,通过POST方式。
测试模型一:1.并发登录线程数:5002.Ramp-Up Period:0ms3.执行时间:执行一次4.测试结果测试模型二1.并发登录线程数:10002.Ramp-Up Period:0ms3.测试结果测试模型三1.并发登录线程数:40002.Ramp-Up Period:0ms3.执行时间:执行一次4.测试结果测试模型三1.并发登录线程数:60002.Ramp-Up Period:0ms3.执行时间:执行一次4.测试结果测试模型四1.并发登录线程数:80002.Ramp-Up Period:0ms3.执行时间:执行一次4.测试结果测试模型五1.并发登录线程数:1002.Ramp-Up Period:0ms3.执行时间:30分钟(7月23日23:21-23:51)4.测试结果性能测试结果比较:数据含义:样本数目是总共发送到服务器的请求数。
最新样本是代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量是服务器每分钟处理的请求数。
平均值是总运行时间除以发送到服务器的请求数。
中间值是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
压力测试结果:第二部分Jmeter使用说明Meter能进行HTTP测试,当然也能测试TCP,可携带不同请求对TCP服务器进行测试。
1,TCP服务器,可以使用HTTP的服务器作为TCP服务器使用。
2,TCP服务器的配置也可以参考HTTP的配置进行。
测试步骤:1.添加一个线程组。
右键测试计划->添加->Threads->线程组同时根据需要修改线程组的属性,具体含义可以参考之前的经验。
全网最全最细的jmeter接口测试教程以及接口测试流程详解
全⽹最全最细的jmeter接⼝测试教程以及接⼝测试流程详解⽬录:导读⼀、Jmeter简介⼆、Jmeter安装三、设置Jmeter语⾔为中⽂环境四、Jmeter主要元件五、Jmeter元件的作⽤域和执⾏顺序六、Jmeter进⾏接⼝测试流程七、Jmeter进⾏接⼝测试流程步骤详解⼋、Jmeter接⼝测试必定⽤到的扩展阅读九、总结⼀、Jmeter简介Jmeter是由Apache公司开发的⼀个纯Java的开源项⽬,即可以⽤于做接⼝测试也可以⽤于做性能测试。
Jmeter具备⾼移植性,可以实现跨平台运⾏。
Jmeter可以实现分布式负载。
Jmeter采⽤多线程,允许通过多个线程并发取样或通过独⽴的线程对不同的功能同时取样。
Jmeter具有较⾼扩展性。
⼆、Jmeter安装1、安装JDK,必须JDK1.7以上的版本,推荐1.8的版本3、配置Jmeter的环境变量。
(1) 新增变量:JMETER_HOME:D:\apache-jmeter-5.2.1(2) 在CLASSPATH变量的最前⾯加⼊如下变量: %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;(3)在PATH变量的最前⾯加⼊如下变量:%JMETER_HOME%\bin;4、进⼊D:\apache-jmeter-5.2.1\bin,双击jmeter.bat,或在dos窗⼝输⼊jmeter命令打开jmeter界⾯,安装成功。
对于真正的零基础来说:安装请按如下步骤完成:windows下安装jmeter? mac下安装jmeter? So Easy那多不是事!写给jmeter⼊门的朋友!三、设置Jmeter语⾔为中⽂环境1、临时设置Jmeter菜单栏选择OptionsàChoose LanguageàChinese (Simplified)这种⽅法,重启软件后⼜变为英⽂环境了。
jmeter压测请求参数
jmeter压测请求参数
JMeter是一个用于性能测试的开源工具,它可以用来模拟多种类型的压力测试场景。
在JMeter中,压测请求参数通常包括以下几个方面:
1. 线程组设置,在JMeter中,你可以创建线程组来模拟并发用户的行为。
在线程组中,你可以设置线程数、循环次数、启动延迟等参数来模拟不同的用户访问场景。
2. HTTP请求设置,当你要对某个网站或者Web服务进行压力测试时,你需要配置HTTP请求。
在HTTP请求中,你需要设置目标服务器的主机名、端口、路径等信息,还有请求的方法(GET、POST 等)以及请求参数。
3. 请求参数,在HTTP请求中,你可以添加需要的请求参数,比如表单数据、JSON数据、XML数据等。
这些参数可以通过JMeter 的参数化功能来实现多用户并发访问时的参数替换,以模拟真实用户的行为。
4. 断言设置,在压测过程中,你可能需要验证返回结果是否符
合预期。
JMeter提供了多种断言来验证服务器返回的数据,比如响
应代码、响应消息、响应时间等,以确保压测结果的准确性。
5. 监控和报告,在压测过程中,你可以通过JMeter的监听器
来监控压测的实时数据,比如吞吐量、响应时间、错误率等。
同时,JMeter还提供了丰富的报告功能,可以生成图表和报告来展示压测
结果,帮助你分析性能瓶颈和优化方向。
总之,在JMeter中,压测请求参数的设置是非常重要的,它直
接影响着压测的准确性和可靠性。
因此,你需要仔细分析目标系统
的特点和压测需求,合理设置压测请求参数,以获取准确、可靠的
压测结果。
http接口测试——Jmeter接口测试实例讲解
摘要最近做的项目需要测试很多接口,上网查一查,发现完整讲述接口测试的资料太少,所以最近自己做完这个项目,把测试的东西整理一下和大家分享一下,希望对看到的人有所帮助一、测试需求描述1、本次测试的接口为http服务端接口2、接口的主要分成两类,一类提供给查询功能接口,一类提供保存数据功能接口,这里我们举例2个保存数据的接口,因为这两个接口有关联性,比较有代表性;3、接口描述:保存信用卡账户信息接口:传入参数:args={"clientNo":"434343556","alias": "**信用卡2","cardName": "长城*****卡2","cardNo": "25622356788251",}传出参数:保存成功:{"returnCode":"0","returnMsg":"保存成功"}保存失败:{"returnCode":"1","returnMsg":"保存失败"}保存逻辑:数据传入进来,验证通过,保存到信用卡账户表中保存信用卡账单接口:传入参数:args={"clientNo":"434343556","accountName": "测试","billDate": "08","billMonth": "201509","cardNo": "25622356788251","currentPayment": "欠款459.80","paymentDate": "2015-09-25 09:00:00",}传出参数:保存成功:{"returnCode":"0","returnMsg":"保存成功"}保存失败:{"returnCode":"1","returnMsg":"保存失败"}保存逻辑:保存时先去信用卡信息表查看clientNo对应的表是否存在,如存在则数据校验通过,将数据保存进入信用卡账单表注:这个保存逻辑在接口开发设计文档中可能没有写或写的不详细,这时要与开发接口人员或产品人员多多沟通去熟悉接口逻辑二、测试分析1、逻辑分析1)、从保存逻辑上来看,这两个接口明显是有依赖关系的,所以我们先测试信用卡账户信息接口,再测试保存信用卡账单接口2)、接口传入的数据,最终是保存到数据库中,所以当接口返回保存成功的时候,我们也要去对应的数据库表中核对相应的数据(这里可以用jmeter 链接数据库进行操作代理手工)3)、当出现保存失败的情况时,我们需要查看系统的日志,所以我们也要准备好查看日志的权限和地址2、测试工具的准备1)、单个接口测试,我们使用火狐的插件poster2)、多个接口测试,我们使用Jmeter进行测试三、使用工具测试1、Poster工具的使用方法见/share/?id=a3efa149d165258 710ebf1bd04079f72&type=note2、使用Jmeter对接口测试首先我们说一下为什么用Poster测试后我们还要用Jmeter做接口测试,在用poster测试时候会发现的是一个接口一个接口的测试,我们每次测试成功后的数据,在工具中是无法保存的,再次测试的时候我们还要重新输入测试的数据,当我们测试一个接口的时候可能感觉不明显,但是当你测试几十个接口的时候,你就会发现使用Jmeter的好处,如果按测试阶段来说冒烟测试我们用poster,集成测试我们用Jmeter四、使用Jmeter接口测试1、首先邮件添加一个线程组,这里我们重命名InterfaceTest2、在线程组上添加一个Http默认请求,并配置服务器的IP地址和传输编码3、在线程组中添加一个HTTP请求,这里我们重命名“增加信用卡账户信息接口”4、配置接口请求信息,这配置示例如下:5,在保存信用卡账单接口请求,示例如下:注:由于Jmeter请求线程组内的请求时从第一个开始执行,所以我们将需要最先执行的请求放在前面6、在线程组上添加监听器,察看结果树和聚合报告7、点击启动,运行结束后查看,结果树和聚合报告8、去数据库中核对数据9、大批量数据制造思路:1)、可参数化的参数,保存信用卡账户信息接口(clientNo,cardNo),保存信用卡账单接口(clientNo,cardNo,billMonth,paymentDate)2)、两个接口的依赖关系,保存信用卡账单接口(clientNo,cardNo)要和信用卡账户信息接口(clientNo,cardNo)的两个相同,也就是说这两个要用一个参数,且还不能重复根据上面两个特点,(clientNo,cardNo)我们选取使用计数器,每循环一次计数器加1,那么我们将线程组设置循环执行1万次;billMonth,paymentDate,这两个日期我们是使用随机函数${__Random(1,9,)},将月份参数化;3)、在线程组上创建计数器,配置如下:4)、引用计数器和随机函数信用卡账户接口传入参数args={"clientNo":"${add}434343556","alias": "**信用卡2","cardName": "长城*****卡2","cardNo": "${add}25622356788251",}账单接口传入参数args={"clientNo":"${add}434343556","accountName": "测试","billDate": "08","billMonth": "20150${__Random(1,9,)}","cardNo": "${add}25622356788251","currentPayment": "欠款459.80","paymentDate": "2015-0${__Random(1,9,)}-25 09:00:00",}5)、设置线程组循环测试,点击运行,查看运行结果,再去数据库看看,大批量数据就这样产生了©著作权归作者所有。
jmeter性能测试指标
jmeter性能测试指标1.jp@gc - Actiive Threads Over Time:不同时间的活动⽤户数量展⽰(图表)当前的时间间隔是1毫秒,在setting中可以设置时间间隔以及其他的参数2.jp@gc - AutoStop Listener :⾃动停⽌监听器设置当发⽣某些预期之外的情况时⾃动停⽌测试average Response Time is greater than 10000ms for 10 seconds :连续10s平均响应时间⼤于10000ms就停⽌测试average Latency is greater than 5000ms for 10 seconds :连接10s平均等待时间⼤于5000ms就停⽌测试Error Rate is greater than 50% for 10 seconds :10s内错误率⼀直⾼于50%就停⽌测试3.jp@gc - Bytes Throughput Over Time:不同时间吞吐量(字节Bytes)展⽰(图表)聚合报告⾥,Throughput是按请求个数来展⽰的,⽐如说1.9/sec,就是每s发送1.9个请求;⽽这⾥的展⽰是按字节Bytes来展⽰的图表,表⽰每秒发送多少字节4.jp@gc - Composite Graph:混合图表在它的Graphs⾥⾯可以设置多少个图表⼀起展⽰,它可以同时展⽰多个图表这⾥可以将⼀些图表结合在⼀起查看性能趋势和⾛向,有利于对⽐和结合查看性能5.jp@gc - Flexible File Writer:这个插件允许你灵活记录测试结果Filename:结果记录的⽂件,将结果保存的⽂件 Overwirte existing file:是否覆盖这个⽂件,如果该⽂件有内容,勾选决定每次的结果是否覆盖⽂件的内容Write File Header:⽂件的头(即⽂件的第⼀⾏)Record each sample:记录不同的sample,sample如http请求的sample(记录哪些内容,什么顺序,如何隔开不同的值)Write File Footer:⽂件的结尾(即⽂件的最后⼀⾏)6.jp@gc - Hits per Second:每秒点击量,点击量在性能测试-常见的性能指标(⼀)的博⽂中已经详细介绍,指的是每秒web服务器接收到的请求数7.jp@gc - PerfMon Metrics Collector:服务器性能监测控件,包括CPU,Memory,Network,I/O等等(此功能⽤到在需监听的服务器上启动startAgent)根据需要选择CPU,Memory,Network I/O等监控的cpu的情况如下:8.jp@gc - Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间9.jp@gc - Reponse Times Distribution:显⽰测试的响应时间分布,X轴显⽰由时间间隔分组的响应时间,Y轴包含每个区间的样本数10.jp@gc - Respose Times Over Time:响应时间超时,显⽰每个采样以毫秒为单位的平均响应时间11.jp@gc - Response Times vs Threads:线程响应时间,显⽰响应时间的并⾏线程的数量如何变化12.jp@gc - Transactions per Second:每秒事务数,服务器每秒处理的事务数13.聚合报告lable:对应每⼀个http请求,显⽰的是http请求的Name,如百度http请求name为baidu#Samples:表⽰这⼀次的测试中⼀共发出了多少个请求,如上图所⽰,sougou和baidu的http请求每个都发出30个请求Average:平均响应时间,指的是所有的请求的平均响应时间,如上图的30个请求的总的响应时间除以30得出的平均响应时间,默认的情况下是单个请求的平均响应时间,但当使⽤了“事务控制器”时,则以事务为单位显⽰平均响应时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Jmeter进行http接口性能测试
Apache JMeter是Apache组织开发的基于Java的压力测试工具。
用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器,等等。
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。
为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
一、测试需求描述
本次需求是用JMeter模拟三个http接口,并对三个接口进行压力测试,接口的详细信息接口规范文档中已经明确说明。
第一个接口:获取进件号;第二个接口:发送用户通信详细内容;第三个接口:查询计算结果。
二、测试分析
1.逻辑分析
从接口规范文档分析,三个接口明显是有依赖关系的,第一个接口:获取到的进件号要传递到第二和第三个接口,第二个接口用户信息发送成功后,启动第三个接口查询计算的结果,查询计算结果时要循环查询,如果是计算没有完成即计算结果查询失败,一直循环查询直到查询成功。
2.测试工具的准备
多个接口测试,我们使用JMeter工具进行测试,下载最新的JMeter版本下载成功后解压安装,解压后找到bin目录,运行JMeter.bat,启动JMeter。
三、使用JMeter接口测试
1.首先添加一个线程组;
2.在线程组上添加一个Http请求,重命名“获取进件号”,根据接口文档,请求方式为
GET请求,填写相应的服务器地址和请求路径,端口号默认为80,编码格式为UTF-8;
这个Http请求的作用为获取进件号,并传递给第二和第三个接口。
为了实现获取的进件号传递,添加了后置处理器->正则表达式处理器。
这个Http请求的作用为获取进件号,并传递给第二和第三个接口。
为了实现获取的进件号传递,添加了后置处理器->正则表达式处理器。
3.添加第二个HTTP请求,这里我们重命名“发送用户通信详细内容”
这个Http请求的作用为发送用户通信详细内容,用户通信详细内容50个格式为txt 的文件,每次随机发送50个文件中的任意一个。
为了实现此功能,用CSV Data Set Config 对文件名称进行参数化,在用函数__FileToString() 进行文件读取。
4.添加第三个HTTP请求,这里我们重命名“查询计算结果”
这个Http请求的作用为查询计算结果,判断计算结果是否查询正确,如果查询无结果循环查询,直到查询有计算结果结束,为了实现此功能,添加了循环控制。
5.在线程组上添加监听器,察看结果树和聚合报告,线程组中配置线程数,循环次数,
得到压力测试的结果。