jmeter java响应数据 jmeter 获取响应参数_jmeter 获取全部响应

1.1 参数类型

01、接口响应为3XX的请求一般要使用跟随重定向,200的请求任意都可以

02、自动重定向只有一个最终的响应结果,不会有过程,跟随重定向会记录请求每一步的路径

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

Use keep Alive:当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。

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

Browser-compatible headers:浏览器header兼容设置。当使用了 multipart/from-data,它会优先于header中的Content-Type and Content-Transfer-Encoding设置,只发送header的Content-Disposition。

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

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

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

1.2 传参

1.2.1 普通参数

1、parameter

键值对形式的参数  (参数名称:值)

xx=xx&xxx=xx格式的参数为GET或者POST请求中,url中带的参数值

2、body data

json格式的是POST请求中的参数,POST请求参数时,看请求的格式,是否需要在请求中添加HTTP信息头管理器,将请求的Content-Type 或者User-Agent 等进行定义,Body Data方式中,请求的参数不会映射成后台程序中对应的实体类型

1.2.2 beanShell接口传递参数

1、添加正则表达式,提取出token的值

2、在“获取token”线程组:添加后置处理器BeanShell PostProcessor

${__setProperty(newtoken,${token},)}

意思是把获取的变量${token}设置为全局变量,并以新的名字newtoken来进行引用。

3、在“业务流”线程组引用全局变量newtoken

引用方式是${__P(newtoken,)},注意花括号中是两个下划线,newtoken后还跟一个逗号,不要写漏了。

4、需要调试的话,可以添加一个debug postprocessor查看数据是否获取正确。

1.2.3 配置元件(CSV Data Set Config)

1、jmeter参数文件的第一行没有列名称

2、编码问题在使用CSV Data Set Config参数化时要求的比较严格

3、Recycle on EOF? --- True=当读取文件到结尾时,再重头读取文件

                    False=当读取文件到结尾时,停止读取文件

4、Stop thread on EOF? --- 当Recycle on EOF为False时,当读取文件到结尾时,停止进程,当Recycle on EOF为True时,此项无意义

1.3 上传测试文件

1、必须设置Use multipart/form-data for POST,否则request将不包含上传的文件,

2、必选添加文件的参数名称,否则在Server段用Servlet进行解析时,无法获得文件,

3、MIME类型则‘textplain’,'multipart/form-data'(与抓包中content-type一致)

4、Client implementation-〉Implementation-〉Java

1.4 随机变量

1.4.1 jmeter自带函数

jmeter自带的函数助手可以查看jmeter函数

举例:其中_Random为随机数的生成函数,下图是随机四位数的生成截图,输入最大值和最小值,点击“Generate”按钮,就会生成自动随机生成四位数的函数;函数使用和变量使用方法一致;

1.4.2 代码生成随机变量

在线程下添加前置处理器,在script中编写代码用于生成随机变量,下面代码是随机生成过alarm_name变量的代码:

String alarm_name="alarm_"+System.currentTimeMillis();

vars.put("alarm_name", alarm_name);

1.5 断言

1、BeanShell断言

作用对象:针对sampler中的Bean Shell sampler而使用的断言

2、BSF断言

BSF(Bean Scripting Framework),作用对象:针对sampler中的BSF sampler而使用的断言

3、比较断言(compare  assertion)

这是一种比较特殊的断言元件,针对断言进行字符串替换时使用;

作用对象:需要替换的字符串

4、HTML断言

对响应类为XML类型的文件进行断言;

作用对象:针对sampler中的SOAP/XML-RPC Request而使用的断言

5、JSR223断言

JSR223即Java 规范请求,是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求;

作用对象:针对sampler中的JSR223 sampler而使用的断言

6、MD5Hex断言

MD5是一种消息摘要算法,用以提供消息的完整性保护(具体关于MD5的知识请自行查询);

作用对象:针对参数类型为MD5Hex加密的参数的断言

7、Size断言

用于判断返回内容的大小;

作用对象:返回信息,响应报文

8、SMIME断言

SMIME是一种多用途网际邮件扩充协议,相比于之前的SMAP邮件传输协议,增加了安全性,对邮件主题进行保护;

作用对象:针对采用了该种邮件传输协议的信息

9、XML概要断言

亦可以称为XML模型断言/XML数据类型断言;XML Schema 定义了两种主要的数据类型:①xml document schema 文档架构 ;② 文档架构xml-schema xml模式

作用对象:返回结果为XML概要断言的2中数据类型的消息

10、XML断言

XML(可扩展标记语言) 提供一种描述结构化数据的方法。与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型;

作用对象:判断返回结果是否和xml的格式即<>>成对出现

11、XPath断言

XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。

作用对象:针对返回信息为XPAth的数据类型进行断言

12、响应断言

判断返回内容中的内容

作用对象:响应报文中的所有对象

13、断言持续时间

用于判断服务器的响应时间

作用对象:服务器

1.6 并发测试

Number of Threads(users):     一个用户占一个线程,  200个线程就是模拟200个用户

Ramp-Up Period(in seconds):   设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。

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

jmeter java响应数据 jmeter 获取响应参数_jmeter java响应数据_02