Jmeter接口测试实例讲解

合集下载

Jmeter多接口测试性能测试

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和postman接口使用)

接口测试(jmeter和postman接口使用)

接⼝测试(jmeter和postman接⼝使⽤)接⼝测试基础知识接⼝测试主要⽤于检测外部系统与系统之间以及内部各个⼦系统之间的交互点。

把前端(client)和后端(server)联系起来,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

更早的进⼊介⼊测试能提⾼对应效率,当后端和前端定义好接⼝以后可以直接对系统的逻辑进⾏测试,⽽不⽤等待后端开发完后在进⾏测试。

接⼝请求⼀般⽤HTTP的请求,⽅法⼤多数为:GET, POST ,HEAD,OPTIONS,等其他⽅法。

POST请求:向指定资源提交数据进⾏处理请求,数据被包含在请求体中。

POST请求可能会导致新的资源的建⽴、已有资源的修改。

(通常⽤来发送数据)。

HEAD请求:类似于get请求只不过返回的响应中没有具体的内容,⽤于获取报头。

OPTIONS请求:允许客户端查看服务器的性能。

接⼝调⽤传参⽅式:key-value参数形式,Json串传参形式。

key-value参数:把参数拼接在url的后⾯由?相连,多个参数之间⽤&相连。

Json串传参:需要在请求的body写中,⼊Json格式参数。

Cookie和session区别:会话(Session)跟踪是Web程序中常⽤的技术,⽤来跟踪⽤户的整个会话。

常⽤的会话跟踪技术是Cookie与Session。

Cookie通过在客户端记录信息确定⽤户⾝份Session通过在服务器端记录信息确定⽤户⾝份1.存取⽅式不同:cookie数据存放在客户的浏览器上,session数据放在服务器上。

2.隐私安全:cookie不是很安全,别⼈可以分析存放在本地的cookie并进⾏cookle欺骗考虑到安全应当使⽤session。

3.有效时间:session会在⼀定时间内保存在服务器上。

当访问增多,会⽐较占⽤你服务器的性能考虑到减轻服务器性能⽅⾯,应当使⽤cookle。

4.服务器负担:单个cookie保存的数据不能超过4K,很多浏览器都限制⼀个站点最多保存20个cookie。

Jmeter接口测试(二)正则表达式

Jmeter接口测试(二)正则表达式

Jmeter接⼝测试(⼆)正则表达式
在做接⼝测试时,经常会遇到⼀个接⼝的⼊参是另⼀个接⼝响应报⽂⾥的某个字段,这种情况下就需要⽤正则表达式提取器把两个接⼝串联起来。

⼀般正则表达式配合debug sampler进⾏调试,debug sampler 数据显⽰在响应数据中。

⼀、⽤正则表达式提取器串联接⼝
1)添加正则表达式提取器
2)把要提取的内容以变量的形式存放在变量池⾥
备注:
3)变量引⽤。

对于⽤正则表达式提取器提取的token,⼀般⽤http信息头部管理器,以变量的形式来提取,供线程组⾥需要的http请求使⽤
⼆、正则表达式提取简介
1)正则表达式后没有结束符,只要后⾯没有空格,换⾏,都会被提取出来2)正则表达式后⾯的结束符不唯⼀时,会把所有匹配结束符的内容提取出来3)?表⽰0或者1个
4)正则表达式有?⾮贪婪模式的,后⾯没有结束符的,⼀般会默认没有5)正则表达式提取段落结尾的内容时,直接⽤(.*)
6)正则表达式提取有换⾏、空格的内容,表达式不唯⼀。

总结:
a、正则表达式⼀般有结束符;
b、没有的时候看要引⽤的位置,直接引⽤后⾯的内容作为结束符;
c、如果有多个相同的符号时就需要⽤⾮贪婪符号-----问号?(英⽂状态下输写)。

Jmeter接口层性能与自动化测试全程实战(小强测试)课件PPT模板

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接口压力测试

JMeter接口压力测试

JMeter接口压力测试Apache Jmeter简介Jmeter是Apache组织开发的基于Java的压力测试工具,是一个开源软件,它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能,可以使用它做性能的图形分析或大并发负载测试服务器/脚本/对象。

我们为什么使用Jmeter1、开源免费,基于Java编写,可集成到其他系统、可拓展各个功能插件2、支持接口测试,压力测试等多种功能,支持录制回放,入门简单3、相较于其他编写框架等其他开源工具,有较为完善的UI界面,便于接口调试4、多平台支持,可再Linux,Windows,Mac上运行一、接口测试什么是接口测试接口测试的原理是,通过测试程序或工具,模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理,然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。

用jmeter做接口测试过程一般分五个步骤:(1)添加线程组(2)添加http请求(3)在http请求中写入接入url、路径、请求方式和参数(4)添加查看结果树(5)调用接口、查看返回值(1)打开Jmeter 安装包,进入\bin 中,找到"jmeter.bat", 点击打开即可。

在下图打开的Jmeter 页面中,右键“测试计划”-> “添加”-> “Threads(Users)”-> “线程组”,建立线程组。

(2)右键“线程组”-> “添加”-> “Sample”-> “HTTP请求”(3)输入“服务器名称或IP”,对应的端口号,选择请求方式,输入对应的路径,添加参数及值。

(4)右键“线程组”-> “添加”-> “监听器”-> “察看结果树”, 添加“察看结果树”,以察看运行后的结果,如图所示。

(5)调用接口、查看返回值Jmeter 之get请求Jmeter 之post请求Jmeter之断言运行后有响应的数据返回,然后通过添加响应断言来判断我们的运行结果是否正确,在被测接口对应的“HTTP请求”上,添加“响应断言”Jmeter之参数化1、利用函数助手获取参数值选项->函数助手对话框__CSVRead,${__CSVRead(,)}第一个参数是文件名(包含路径),第二个参数是文件中的列(列数从0开始);__Random,_Random函数是从某数据段随机读取数据替换参数,当需要添加多条数据记录且某些字段需要唯一性时使用,比如注册接口,用户名唯一2、利用配置元件(CSV Data Set Config)选中线程组,点击右键,添加-配置元件-CSV Data Set ConfigFileName:csv文件的名称及路径File Encoding:文件编码----默认为空Varible Names:定义文本文件中的参数名,定义后可当变量的方式来引用Delimiter:分隔符---每个参数之间的分隔符号,一般默认使用逗号,Allow Quoated data:是否允许数据引用数据----默认为FalseRecycle on EOF:是否循环读取参数文件内容----设置为True后,允许循环取值Stop Thread on EOF:文件结束后是否停止线程------默认为false,如果设置为True则会影响文件结束循环Sharing Mode:设置线程是否共享---默认设置为All threads3、用户自定义变量“选择需要添加的脚本”->“右键”-> “配置文件”->“用户定义的变量”Jmeter之关联当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理,比如修改用户密码接口,就需要用到登录用户接口的token值,用Jmeter做关联如下:“选择需要添加的脚本”->“右键”-> “后置处理器”-> “正则表达式提取器”引用名称:变量名称,名称只能是一个,引用方法:${access_token}正则表达式:数据提取器,一般简单的通用语法就是:左边界(.+?)右边界,左右边界就是为了能准确定位到想匹配的内容,如上面图的“access_token ”:“(.+?)”, (.+?) 是替换了想要提取的内容模板:对应正则表达式提取器类型,样式为:$n$,若模板为:$1$,则对应正则表达式中的第一个(.+?)所匹配的内容 匹配数字:0代表随机取值,1代表所有值缺省值:如果匹配不到字符串,那默认给一个值让它取。

jmeter使用文档-接口测试

jmeter使用文档-接口测试
“Stop Test Now” 发生,则这后所有的Teardown Thread Groups 不会运行。 “Stop Test" 发生, 则Teardown Thread Groups 执行条件依赖于Test Plan 的配置"Run tearDown Thread Groups after shutdown of main threads"。如果Enable 此设置,则Teardown Thread Groups 会被执行。
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使用文档接口测试精品PPT课件

jmeter使用文档接口测试精品PPT课件
➢ Scheduler:调度器
➢ 测试开始时间(启动测试时检查是否到达开始时间) ➢ 结束时间(如果到达结束时间,测试终止) ➢ 测试持续时间(设置后,忽略结束时间,次序X秒后停止测试) ➢ 延迟开始(设置后,忽略开始时间,X秒后开始测试)
Tips-1
线程组分类 在JMeter 中有3 种Thread Group, 一个Test 中可以包含多个同类型的Thread Group
➢ An Example
➢ 此处需要演示Example.jmx ➢ 一个简单测试包含的基本元件:Test plan(测试计划)->Thread Group(线程组)->Sampler(取样器)->
Assertions (断言)和Listener(监听器) ➢ 初步印象:一个测试计划下,可以创建多个线程组(分组配置测试执行规则);线程组下的每个sampler+断
➢ 函数测试模式:在非GUI模式下运行时,-l标志创建的日志文件。 此选项勾选后,日志文件默认写入更多的数据字段如完整响应数 据,影响性能。
➢ 添加classpath:类路径设置,可以添加jar文件或目录到特定的 测试计划。【须重新启动JMeter】
➢ 可以直接把jar包放到jmeter的lib目录(默认的classpath )
言组成用例,测试时监听器统计输出测试结果。
Test Plan
➢ Name:测试计划名字
➢ Comments:关于该测试计划的注释
➢ User Defined Variables:可以定义整个测试中使用的重复值, 如服务器名称。如果相同的变量名重复赋值,该值被设置为在测 试计划(读从上到下)的最后一个定义。需要注意的是测试计划 不能引用它定义的变量。如果需要从测试计划变量构建其他变量, 使用配置元件。其他地方引用变量用${var_name}

Jmeter(五)Jmeter接口测试和压力测试

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简单的一个压力测试案例,报告导出--使用命令11

jmeter简单的一个压力测试案例,报告导出--使用命令11

jmeter简单的⼀个压⼒测试案例,报告导出--使⽤命令11测试计划的设置:
线程组和请求设置逻辑:
关键逻辑:
① ⼀个线程组内的多个氢⽓是顺序执⾏的;
② 不同线程组内的请求是并发执⾏的;
实际⼯作中如何设置线程组和请求的关系?
(1) 如果多个接⼝之间没有强依赖关系,每个接⼝单独设置⼀个线程组;
(2) 如果多个接⼝之间有依赖关系(数据关联),把有关联关联的接⼝按照顺序放在同⼀个线程组内。

⽅式⼀:使⽤命令执⾏脚本和导出报告.html
使⽤命令⾏进⾏压测:
jmeter -n -t pinter12.jmx -l result.jtl
导⼊报告:
因为在压测的时候压测了60s:
执⾏命令⾏⽣成报告:jmeter -g result.jtl -o report
Jmeter特殊元件:
Setup线程组:执⾏全局初始化操作的线程组,类似LR脚本中的init函数。

Teardown线程组:执⾏全局结束操作的线程组,类似LR脚本中的end函数。

⽅式⼆: jmeter⼯具中执⾏,导出报告
各种报告的设置:
运⾏结束后:
⽂件导出在对应的⽬下下
导出⽂件成HTML:
1.jmeter⼯具中点击tools---generste html report
2. 点击--generate report
3. 打开⽂件,查看。

JMeter接口自动化测试实例—JMeter引用javaScript

JMeter接口自动化测试实例—JMeter引用javaScript

JMeter接⼝⾃动化测试实例—JMeter引⽤javaScript Jmeter提供了JSR223 PreProcessor前置处理器,通过该⼯具融合了Java 8 Nashorn 脚本引擎,可以执⾏js脚本以便对脚本进⾏前置处理。

其中⽐较典型的应⽤就是通过执⾏js脚本对前端数据进⾏rsa加密,如登录密码加密。

但在这⾥我就简单的应⽤javaScript⽣成当前时间来做为例⼦,看如何在JMeter中使⽤JavaScript脚本的。

整个实例就是为了演⽰在JSR223 PreProcessor中⽣成HTTP请求的⼀个⼊参,然后得到响应后,可以通过JSON Extractor取出指定想到的信息,再通过BeanShell Assertion进⾏简单的校验断⾔,如果⼀直没有问题,再发起⼀个HTTP请求,其中的⼀个参数就是上⼀个HTTP请求响应解析⼊来的值。

先来看JSR223 PreProcessor,内容如下: 其实就是通过JavaScript代码获得当前系统时间,转换成指定格式,设置到变量⾥。

然后在接下来的HTTP请求中应⽤这个变量。

然后是JSON Extractor从响应体中提取信息(特别说明:响应体是JSON格式的) 接下来就是断⾔,在这⾥⽤BeanShell Assertion来做,如下所⽰: 接下来的HTTP请求,有⽤来前⾯设置的变量和响应解析出来的变量。

运⾏结果如下: 第⼀个请求的时间是当前时间,第⼆个请求的时间也是第⼀个请求前设置的时间,且radomCode就是第⼀个请求响应体通过JSON Extractor解析提取出来的变量值,且对第⼀个请求的BeanShell Assertion是通过的(不通过会结果树会显⽰红⾊且显⽰出错信息)。

jmeterwebsocket接口测试

jmeterwebsocket接口测试

jmeterwebsocket接⼝测试Jmeter安装插件
以下插件都放到 \apache-jmeter-5.4.1\lib\ext
简单⽰例
持续接收数据
遇到的问题:
如何取上⼀个接⼝返回的数据作为当前接⼝的参数? - 解决⽅案:正则表达式提取器
当前接⼝调⽤:
"user_id":${user_id},
如何持续获取接⼝返回的数据?
2.1 仅接收数据不发送数据 - 取样器:websocket single read sampler
2.2 发送数据 - use existing connectionn
接收数据报错 WebSocket I/O error: end of stream
...根据这篇⽂章地下的回答,是服务器⽆法处理所以主动断开了连接
因此加了⼀个固定定时器:5000ms接收⼀次数据,报错的概率⼩了很多
如何主动的(持续的)接收数据?
按理说应该加⼀个判断,服务端返回数据为空,就停⽌接收,这⾥简单加了⼀个循环控制器。

参考:
在这⾥还是推荐下官⽅⽂档,还有issue ,相对来说是⽐较友好的。

jmeter性能测试及性能调优 PPT

jmeter性能测试及性能调优 PPT

目 录
Contents
二.性能测试脚本介绍 1.事务 2.参数化 3.断言 4.关联 5.集合点 6.思考时间
1.事务:用户自定义的一个标识,用来衡量不同的操作所花费的时间,事务时间反映的是一个 操作过程的响应时间。
2.参数化:参数化作为测试脚本中最基本的使用技巧,需要每个从事性能测试的小伙伴都能熟练掌握。
3 .断言: jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似; 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。 使用断言的目的:在request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。
2.性能测试资源的监控: 2 .1安装工具nmon: (我这边有下载的工具及安装步骤)
2.2 用nmon 监控工具收集后台资源 收集命令: ./nmon_x86_64_centos6 -f -s 6 -c 30
说明:-f 以文件的形式输出,默认输出是机器名+日期.nmon的格式,也可以用-F指定输出的文件名,例如: -s是采样频率,隔多长时间收集一次,这里我指定的是6秒一次;
说的有些太严肃了,简单举个例子,比如我们要测试用户注册的功能,注册的用户名是不允许重复的。我们录制完 的 脚本都是hard code,直接进行并发测试的话,无疑所有模拟用户的线程在注册的时候输入的都是相同的用户名和密 码,这样肯定是会有很多错误请求无法达到服务端,也就不能产生我们预期的负载压力。这时候,针对用户名就需要我 们使用参数化的技巧来实现,每个注册的用户每次注册都使用不同的用户名来填写注册信息。
• 内存使用率:无性能压力:0%~50%、有一定性能压力:50%~70%、达到性能阀 值:70%~80%、严重性能问题:80%~100%

JMeter接口压测——ServerAgent监控服务端性能指标

JMeter接口压测——ServerAgent监控服务端性能指标

JMeter接⼝压测——ServerAgent监控服务端性能指标ServerAgent作为⼀个服务端性能监控插件,结合JMeter⾃⾝插件PerfMon可以实现JMeter压测的图形化实时监控,具有良好的实⽤性。

下⾯讲解⼀个应⽤实例
思路:
1. 插件准备
2.打开代理
3.编写脚本
4.观察监控指标
⼀、插件准备
下载JMeter Plugins Manager.jar包,扔到/lib/ext
启动JMeter,选项》Plugins Manager 下载PerfMon 》 apply
⼆、打开代理
下载
解压到服务端和本地windows系统的⽂件夹下
服务端启动./startAgent.sh
windows端启动./startAgent.bat
本地打开telnet进⾏测试,telent serverIP port
三、编写脚本
编写脚本、添加监控组件,见图
四、观察监控指标
见下图
由此可见:等监控指标趋于稳定后,此接⼝的tps吞吐量为3100/sec左右。

jmeter接口性能测试【CSV文件读取+接口关联+设置集合点】

jmeter接口性能测试【CSV文件读取+接口关联+设置集合点】

jmeter接⼝性能测试【CSV⽂件读取+接⼝关联+设置集合点】⼀、前⾔周计划上安排了个接⼝性能测试的任务,便开始了职业⽣涯的第⼀个接⼝性能测试。

接⼝进⾏压测之前,⾸先需要调通脚本。

有两种⽅式,⼀种是通过抓包⼯具(如fiddler)抓取业务接⼝;另⼀种是通过jmeter进⾏脚本录制。

两者分别有各种的优缺点:(1)Fiddler⼿⼯抓包:【优点】直接抓取业务接⼝;【缺点】对于性能测试⼩⽩可能⽐较困难(⽐如笔者⾃⾝,很难找到业务接⼝间的关联关系);(2)Jmeter录制脚本:【优点】各业务接⼝间的关联关系可以从脚本中体现;【缺点】需要⾃⼰过滤⽆关紧要的相关接⼝(如下图中圈出部分已禁⽤的接⼝);因笔者还是性能测试⼩⽩,所以选择了⽤jmeter进⾏脚本录制这种⽅式。

⼆、脚本录制根据性能测试要求,对所需要测的业务系统进⾏分析⼤概有多少个事务。

如上图,分析得出业务系统有信息⾃检、填写信息、填写表单、上传材料、提交办件这5个事务。

在测试计划下添加HTTP请求默认值、察看结果树、聚合报告,接下来添加线程组。

(1)测试计划右键添加线程组(2)线程组右键新增事务控制器添加事务控制器后,在录制脚本时,可以在“⽬标控制器”中选择对应的事务。

Generate parent sample:是否⽣成⼀个⽗取样,即将事务控制器下的请求看成⼀个整体(⼀般勾选该选项)。

勾选后,在察看结果树和聚合报告中,只显⽰事务名称,不显⽰事务下具体的请求。

(3)⼯作台右键添加HTTP代理服务器,(对应浏览器设置代理后)选择对应的⽬标控制器,并启动录制。

启动录制后,可去业务系统进⾏相关操作,此时jmeter会录制相关的脚本,产⽣的脚本就会显⽰在对应事务下,如图中“信息⾃检”下的很多接⼝,就是录制产⽣的。

事务操作结束后,记得回到jmeter代理服务器页⾯停⽌录制,此时该事物的脚本录制结束。

PS:上图中,事务“基本信息”、“填写表单”、“上传材料”、“完成”的录制步骤同上,此处不过多描述。

全网最全最细的jmeter接口测试教程以及接口测试流程详解

全网最全最细的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学习笔记4]jmeter生成接口测试报告

[Jmeter学习笔记4]jmeter生成接口测试报告

[Jmeter学习笔记4]jmeter⽣成接⼝测试报告[Jmeter学习笔记4]jmeter⽣成接⼝测试报告
除了使⽤察看结果树,我们还可以聚合报告和 HTML报告来查看测试结果
⼀、聚合报告
线程组->add->Listener->SUmmary Report
添加之后运⾏测试,查看聚合报告,如下图:
Samples -- 本次场景中⼀共完成了多少个请求
Average -- 平均响应时间(单位:ms)
Min -- 最⼩响应时间(单位:ms)
Max -- 最⼤响应时间(单位:ms)
Error -- 出错率
Troughput -- 吞吐量
Received--响应数据⼤⼩
KB/sec -- 以流量做衡量的吞吐量
⼆、HTML报告
以⾮ GUI 形式运⾏ Jmeter脚本:jmeter -n -t "E:\jmeter\test.jmx" -l "E:\jmeter\result.jtl" -e -o E:\jmeter\new\
保证jmeter安装路径已经配置到环境变量,另外为⽅便可直接采⽤绝对路径
命令参数:
-n :以⾮ GUI 形式运⾏Jmeter
-t :jmeter 脚本路径
-l :result.jtl 运⾏结果保存路径(.jtl)此⽂件必须不存在,每次运⾏前先保证之前运⾏结果已经删除。

-e :在脚本运⾏结束后⽣成 html 报告
-o :存放 html 报告的⽬录,不加该参数默认⽣成到 bin\report-output
运⾏完之后⽣成的报告:
双击index.html即可打开页⾯查看直观结果了:。

jmeter测试接口--form表单提交请求(解决请求传参为空的问题)

jmeter测试接口--form表单提交请求(解决请求传参为空的问题)

jmeter测试接⼝--form表单提交请求(解决请求传参为空的问题)
Form表单提交:直接使⽤表单⽅式提交即可,此⽅式采取页⾯直接跳转的形式。

⽤jmeter请求的时候,⽇志打印传的参数是空的。

考虑到form提交和http的提交请求头可能是不⼀样的,所以优化了请求头:
http的请求头如下:
content-type application/json
图⽚如下:
form表单如果也⽤上⾯的请求头信息,参数会传不过去,显⽰的传的参数是空的,如下是form表单的请求:
Content-Type application/x-www-form-urlencoded
如下图:
如果参数是json格式的提交后,还是传的是空的,就⽤如下图所⽰,把参数放到Parameters中来,这样请求,不会传空的参数了:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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={
保存信用卡账户信息接口: 传入参数: args={ "clientNo":"434343556", "alias": "**信用卡2", "cardName": "长城*****卡2", "cardNo": "25622356788251", } 传出参数: 保存成功:{"returnCode":"0","returnMsg":"保存成功"} 保存失败:{"returnCode":"1","returnMsg":"保存失败"} 保存逻辑:数据传入进来,验证通过,保存到信用卡账户表中
Jmeter接口测试实例讲解
引言:
最近做的项目需要测试很多接口,上网查一查,发现完整讲述接口测试的资料太少,所以最近自己做完这个项目,把测试的东西整理一下和大家分享 一下,希望对大家有所帮助
一、测试需求描述
1、 本次测试的接口为http服务端接口 2、 接口的主要分成两类,一类提供给查询功能接口,一类提供保存数据功能接口,这里我们举例2个保存数据的接口,因为这两个接口有关联 性,比较有代表性;
1、首先邮件添加一个线程组,这里我们重命名InterfaceTest
2、在线程组上添加一个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、在线程组上创建计数器,配置如下:
四、性能测试
简单的性能测试
性能分析:
- 测试结论: - 当前测试环境下,TPS峰值为317.6次/秒。根据业务预期的客户日常访问量50次每分钟,按照每客户访问一次调用全部13个接口计 算,则业务预期为50*13=650次/分=10.83次/秒。测试结果表明系统的业务处理能力符合业务预期。 - 由响应时间来看,保存XXXX这个接口的响应时间明显较慢,在50线程并发的时候,90%响应时间为7.7秒,而75线程并发的时候则达 到了24秒,建议进行优化。 - 由点击率,响应时间,TPS统计图可知,整个稳定性测试期间,系统反应很稳定。 - 详细测试结果:
保存逻辑:保存时先去信用卡信息表查看clientNo对应的表是否存在,如存在则数据校验通过,将数据保存进入信用卡账单表
注:这个保存逻辑在接口开发设计文档中可能没有写或写的不详细,这时要与开发接口人员或产品人员多多沟通去熟悉接口逻辑
二、测试分析
1、逻 辑 分 析 1)、从保存逻辑上来看,这两个接口明显是有依赖关系的,所以我们先测试信用卡账户信息接口,再测试保存信用卡账单接口 2)、接口传入的数据,最终是保存到数据库中,数据库表中核对相应的数据 3)、当出现保存失败的情况时,我们需要查看系统的日志,所以我们也要准备好查看日志的权限和地址
2、使用Jmeter对接口测试 首先我们说一下为什么用Poster测试后我们还要用Jmeter做接口测试,在用poster测试时候会发现的是一个接口一个接口的测试,我们每次
测试成功后的数据,在工具中是无法保存的,再次测试的时候我们还要重新输入测试的数据,当我们测试一个接口的时候可能感觉不明显,但是当你 测试几十个接口的时候,你就会发现使用Jmeter的好处,如果测试阶段来说冒烟测试我们用poster,集成测试我们用Jmeter
保存信用卡账单接口: 传入参数: 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":"保存失败"}
2、 测 试 工 具 的 准 备 1)、单个接口测试,我们使用火狐的插件poster
2)、多个接口测试,我们使用Jmeter进行测试
三、使用工具测试
1、Poster工具的使用方法见 /share/?id=a3efa149d165258710ebf1bd04079f72&type=note
并发用户 90%用户响应时

间(秒)
20
0.132
错误率 0.00%
吞吐量(事务数/秒) 216.9
测试环境数据量如下:
表名称
。。。。。_BANK_CARD
。。。。。_DEPOSIT_DETAI L
数据量(条) 143045 136865
博客地址:/hellotest/blog欢迎交流
相关文档
最新文档