jmeter

jmeter环境安装

1、安装JDK

  -JDK下载:   官网   http://www.oracle.com/

  -安装JDK

  -配置环境变量    JAVA_HOME=XXXX   在环境变量Path中添加:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

  -校验

2、安装JMeter

  -JMeter下载   官网   https://jmeter.apache.org/download_jmeter.cgi    jmeter版本必须与JDK版本匹配

  -安装JMeter

  -配置环境变量   JMeter_HOME=xxxxx   在环境变量Path中添加  %JMeter_HOME%\lib\ext\ApacheJMeter_core.jar;%JMeter_HOME%\lib\jorphan.jar

  -启动验证

 

JMeter功能概要

JDK常用文件目录介绍

Bin目录:存放可执行文件配置文件

doce目录:是JMeter的api文档,用于开发扩展组件

printable_docs目录:用户帮助手册

lib目录:存放JMeter依赖的jar包和用户扩展所依赖的jar包

 

JMeter界面的汉化

永久性-修改配置文件

1、找到jmeter安装目录下的bin目录

2、打开jmerer.properties文件,把第37行修改为“language=zh_CN”

3、重启jmerer

 

JMeter元件和组件的介绍

元件:多个类似功能组件的容器(类似于

取样器——》发送请求

逻辑控制器——》控制语句的执行顺序

前置处理器——》对请求参数进行预处理

后置处理器——》对响应结果进行提取

断言——》检查接口的返回结果是否与预期结果一致

定时器——》设置等待

测试片段——》封装一段代码,供其他脚本调用

配置元件——》测试数据的初始化配置

监听器——》查看jmeter脚本的运行结果

 

组件:实现独立的某个功能(类似于方法

 

接口自动化脚本的实现过程

1、初始化测试参数

2、对请求参数进行赋值

3、调用GET/POST方法发送请求

4、提取响应中特定字段的值

5、对提取出来的值与预期结果进行比对

6、在控制台查看脚本运行的结果

 

件的作用域:是靠测试计划的树形结构中元件的父子关系来确定的

提示:所有的组件都是以取样器为核心来运行的。组件添加的位置不同,生效的取样器也不同

作用域的原则:

  -取样器:核心,不和其他元件相互作用,没有作用域

  -逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用

  -其他元件:

    ①如果是某个取样器的子节点,则该元件只对其父节点起作用

    ②如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)

 

元件的执行顺序

同一个作用域下不同类型元件

1)配置元件

2)前置处理程序

3)定时器

4)取样器

5)后置处理程序

6)断言

7)监听器

同一个作用域下多个相同类型文件:按照测试计划从下到下的顺序依次执行

 

线程组:线程组就是控制jmeter用于执行测试的一组用户

特点:

①模拟多人操作

②线程组可以添加多个,多个线程组可以并行或串行

③取样器和逻辑控制器必须依赖线程组才能使用

④线程组下可以添加其他元件下组件

线程组分类:

线程组:常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户

setUp线程组:一个特殊类型的线程组,可用于执行预测试操作

tearDown线程组:一个特殊类型的线程组,可用于执行测试后工作

 

 

HTTP请求:向服务器发送http及https请求

 

 

查看结果树:查看http请求的请求和响应结果

组成:

1)取样结果:查看响应信息头信息、响应状态码

2)请求:查看请求相关信息(url、方法、参数)

3)响应:查看响应信息

响应结果出现乱码解决:

①找到jmeter安装目录下的bin目录

②打开jmeter.properties文件,修改配置sampleresult.default.encoding=UTF-8

③重启jmeter即可

 

参数化

参数化测试:把测试数据组织起来,用不同的测试数据调用相同的测试方法

常见的参数化方式

  -用户定义的变量

   作用:定义全局变量   

  

  -用户参数

  作用:针对同一组参数,当不同的用户来访问时,可以获取到不同的值 

  

 

  -CSV数据文件设置(CSV Data Set Config)

  作用:让不同用户在多次循环时,可以取到不同的值

  

  

  -函数助手

  函数(_counter):计数函数,一般做执行次数统计使用

  

4种参数化的优缺点:

 

 

JMeter断言

断言:让程序自行判断预期结果跟实际结果是否一致

jmeter种常用断言:

  -响应断言

  作用:对HTTP请求的任意格式的响应结果进行断言

  参数配置:

    -响应文本:来自服务器的响应文本,即主体

    -响应代码:响应的状态码,例如:200

    -响应信息:响应的信息,例如:OK

    -Response Headers:响应头部

    -Request Headers:请求头部

    -Request Data:请求数据

    -URL样本:请求数据

    -Document(text):响应的整个文档

    -忽略状态:忽略返回的响应状态码

  模式匹配规则:比较方式

    -包括:文本包含指定的正则表达式

    -匹配:整个文本匹配指定的正则表达式

    -Equals:整个返回结果的文本等于指定的字符串(区分大小写)

    -substring:返回结果的文本包含指定字符串(区分大小写)

    -否:取反

    -或者:如果存在多个测试模块,勾选代表逻辑或(只要有一个模式匹配。则断言就是OK),不勾选代表逻辑与(所有都必须匹配,断言才是OK)

  预期结果:

    -即填写你指定的结果(可填写多个)

 

  

 

 

  -JSON断言

    作用:对HTTP请求的JSON格式的响应结果进行断言

  

  什么时候使用JSON断言?

    对HTTP请求的响应结果为JSON格式时,可以使用JSON断言    

  

 

  -持续时间断言

   作用:检查HTTP请求的响应时间是否超出要求范围

  参数介绍:

     -持续时间(毫秒):HTTP请求允许的最大响应时间(单位:毫秒)。超出则认为失败

   

 

 

JMeter关联

关联:当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这个时候就需要用到关联处理。

JMeter中常用的关联方法:

  -正则表达式提取器  【左边界(,*?)右边界】

    含义:就是一个公式,或者说一套规则。使用这套规则可以从任意字符串中提取出来想要的数据内容

    .:是通配符,代表任意字符(除换行回车)

    *:代表前面的字符出现0次或者多次

    ?:代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要有匹配的右边界就停止继续查找;再次查找左边界和右边界

 

  

  

 

  -XPath提取器

    作用:针对HTML格式的响应结果数据进行提取

    参数介绍:

      -Use Tidy(tolerant parser)

        -当需要处理的页面是HTML格式时,必须选中该选项

        -当需要处理的页面是XML或XHTML格式时,取消选中该选项

      -引用名称:存放提取出的值的参数名称

      -XPath Query:用于提取值的XPath表达式

      -匹配数字:如果XPath路径查询出许多结果,则可以选择提取哪个

        0:表示随机,-1:表示提取所有结果,1表示第一个值

      -缺省值:参数的默认值

  

 

  -JSON提取器

    作用:针对JSON格式的响应结果数据进行提取

   参数介绍:

      -name of created variables:存放提取出的值的参数名称

      -JSON Path Expressions:JSON路径表达式   $.xx.xx

      -Match No:如果JSON路径匹配出许多结果,则可以选择提取哪个

        0表示随机;-1表示提取所有结果;1表示第一个值

      -Default Values:参数的默认值

  

 

  -JMeter属性  [跨线程组关联]

  JMeter属性的配置函数:

  _setProperty函数:将值保存成JMeter属性:需要用过BeanShell取样器来执行

  _property函数:在其他线程组中使用property函数读取属性:在其他线程组中使用property函数

  

  

 

JMeter录制

  -在没有接口文档的旧项目当中,快速录制web页面产生的http接口请求,帮助编写接口测试脚本

  

  

 

JMeter直连数据库

 

 

JMeter逻辑控制器

逻辑控制器:可以按照设定的逻辑控制取样器的执行顺序

   -如果(if)控制器

   作用:if控制器来控制它下面的测试元素是否执行

 

  -循环控制器

  作用:通过设置循环次数,来实现循环发送请求

 

  -ForEach控制器

 

  作用:一般和用户自定义变量或者正则表达式提取器一起使用,读取返回结果中一系列相关的变量 。

  该控制器下的取样器都会被执行一次或多次,每次读取不同的变量值

foreach+用户自定义的变量

 

foreach+正则表达式提取器:

 

JMeter定时器

  -同步定时器:阻塞线程(积累一定的请求),当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起释放,瞬间产生很大的压力

 

  -常数吞吐量定时器:让JMeter按指定的吞吐量执行,以每分钟为单位

 

  -固定定时器

 

posted @ 2024-03-25 13:55  鱼小贱  阅读(28)  评论(0编辑  收藏  举报