Jmeter工具的使用(接口+性能)

插件安装:
插件Jmeter-plugins-manager的作用:在plugins Managere中可以下载卸载Jmeter 插件,相比以前版本的好处在于不用自己去下载其他插件的jar而且还需要放入ext文件夹中。
下载地址:https://jmeter-plugins.org/install/Install/
使用:将下载好的jmeter-plugins-manager-1.7.jar复制到jmeter目录lib/ext目录下
在这里插入图片描述
安装插件方法:
1.进入Plugins Manager,选项plugins Manager
在这里插入图片描述
2.勾选需要安装的插件(例如jpgc插件安装:在Available Plugins选项中输入jpgc后空格,就可以搜索出jpgc插件,然后勾选jpgc - Standard Set后,点击Apply Changes and Restart JMeter后等待插件安装完成)
在这里插入图片描述

  1. Mysql数据库压测
    Jmeter连接数据库的步骤(首先下载mysql数据驱动的jar包下载地址:https://www.mysql.com/downloads/) 在这里插入图片描述
    a.在顶层目录“测试计划”中加载mysql驱动包或将mysql驱动包放在Jmeter安装目录的lib文件中
    b.在线程组-“配置元件”中添加 jdbc连接
    c.配置数据库信息
    1)DataBase URL:jdbc:mysql://服务器ip:端口号/数据库 (特别注意:在数据库后加参数?allowMultiQueries=true,可同时执行多条mysql语句;否则报错)
    2)JDBC Driver Class:com.mysql.jdbc.Driver
    3)输入数据库的用户名和密码 在这里插入图片描述

    d.在线程组-salpler中添加jdbc 请求,输入需执行的sql语句即可

  2. 接口测试概念
    为什么做接口测试:前后端分离(前端开发好,可以使用Mock server进行测试;后端开发好,可以先测试接口的业务);基于安全考虑,UI的JS的验证很容易绕过,所以需要在接口层面对安全性做考虑;可以提前进入测试环节。
    接口架构设计
    基于SOAP的接口构架:基于XML协议规范,比如webservice协议:地址最后以?wsdl结尾。
    基于RPC的接口构架:远程调用,像调用本地服务一样去调用远程服务器的接口服务。
    a.dubbo协议:dubbo://开头 (适用于高并发,数据量少的情况下)
    b.基于Spring cloud的微服务
    c.thrift、RMI、Hessiasn
    最流行的架构是基于RestFul的接口架构:它将网络上的事物看成是资源,xml、json、jpg,所有操作无状态。
    特点:同样的接口地址:http://127.0.0.1:8080/user,不同的请求方式结果不一样,get查询用例,post新增用户,put修改用户,delete删除用户。
    http接口测试:
    http协议:一问一答(就是只能客户端发送请求,服务器给到响应),以http://或https://开头
    websocket接口测试:
    websocket协议:双向通信的模式(客户端和服务端都可主动发起请求),确保数据的实时性,它以ws://或wss://开头
    websocket的应用场景:股票基金报价、聊天
    Jmeter实现websocket接口测试:需要安装websocket插件。
    Dubbo接口测试:
    Dubbo协议:dubbo://开头
    Jmeter实现Dubbo接口测试:需要安装Dubbo第三方插件,然后将jar包放${JMETER_HOME}\lib\ext路径下,重启即可。
    *webservice协议:*WebService是一种跨编程语言和跨操作系统平台的远程调用技术
    webservice的应用场景:系统集成,跨语言调用
    协议
    http协议:超文本传输协议,主要分为请求和响应两部分。
    请求:
    请求行:(GET /phpwind/http/1.1)
    请求头:
    Accept:客户端接收的数据格式
    X-Requested-With:登录接口,作用是异步请求(ajax技术就是做异步请求)
    User-Agent:发送请求的客户端类型
    Content-Type:请求的内容格式
    Cookie:发送cookie信息
    cookie工作原理(http cookie管理器的工作原理):在客户端第一次访问服务器的时候,服务器会生成Cookie信息,并且在响应头的set-cookie里面把cookie的信息传输到客户端。从第二个开始的所有请求都会在请求头的cookie里面自动的带上第一次服务器返回的cookie.
    cookie的作用:cookie鉴权,证明后面的请求都是同一个用户。
    session和tokenk可以通过cookie传输,也可以不通过它传输。
    请求正文数据:请求的数据。
    响应:
    响应行:
    响应头:
    响应数据:
    接口返回的数据类型
    xml(webservice协议返回)、html(http协议返回)、json(http或dubbo协议返回)
    开发接口潜规则:error_code:错误码 message:错误码的中文说明 data:[]数据
    Json数据详解:Json是一种数据格式,Json有2种数据,键值对({key:value,key:value})和列表([value1,value2,value3])
    接口测试工具的应用场景
    jmeter+ant+jenkins+git接口自动化
    postman+newman+jenkins+git接口自动化

Jmeter:

Jmeter常见文件夹的作用
backups:自动备份的文件夹。
bin目录:存放Jmeter的启动脚本,配置文件、模块文件等。
ApacheJMeter.jar是最核心的jar包,可以通过java -jar ApacheJMeter.jar启动jmeter
jmeter.bat jmeter的启动文件
jmeter.properties jmeter最核心的配置文件
xx.sh 都是Linux操作系统的文件
docs目录:存放Jmeter的api离线文档,用于二次开发。
extras目录:存放和第三方进行集成构建的文件。比如Ant、Jenkins集成
lib目录:存放jar包、组件类和函数类等。
licences:存放许可文件
printable_docs:用户手册
常用组件(元件)
必须组件:
测试计划:Jmeter接口测试的起点,是其他组件的容器,可以加外部jar包(或加在lib目录下)。
线程组:代表的一组虚拟用户
sampler取样器:发送请求最小单元
辅助组件:
逻辑控制器:定义发送请求的逻辑
前置处理器:发送请求之前的操作
后置处理器:发送请求之后的操作
断言:用来判断请求是否成功的组件
定时器:负责定义请求之间的延迟时间。
配置元件:基本的配置信息
监听器:负责收集结果。
组件执行顺序
配置元件–前置处理器–定时器–取样器–后置处理器–断言–监听器
组件的作用域
辅助组件对父组件、同级组件、子组件起作用。
Jmeter接口测试调试方案
第一种方法:检查(查看结果树)请求头、请求信息、响应头和响应信息
第二种方法:使用调试取样器
第三种方式:Jmeter结合Fiddler进行调试
常用操作
Jmeter自带的代理服务器录制接口:
1.在测试计划下添加非测试元件“http代理服务器”
2.测试计划下新建线程组,在线程组下添加http cookie管理器
3.设置浏览器的代理服务器(控制面板–Internet选项–连接–局域网设置–代理服务器)
4.http代理服务器中设置端口(代理服务器端口一致)和目标控制器(录制内容放的位置)和加过滤器(过滤掉不需要的内容)
接口之间的关联、Jmeter的动态参数处理(在配置元件中选CSV 数据文件设置(选数据的文件地址,变量名称等),在接口需要处${csv设置的变量名称}引用即可)、文件上传的两种方式、批量删除(后置处理器中用正则表达式提取所有值,在用逻辑控制器ForEach找到要批量操作的元素对其接口进行处理)
常用断言:
响应断言中的模式匹配规则:(SubString和Equals是纯字符串比对,包括和匹配支持正则表达式)
SubString:子字符串,即响应中包含我们的预期值即可。
Equals:等于,要求响应和预期完全相等。
包括:相当于SubString,即响应中包含我们的预期值即可。
匹配:相当于Equals,响应和预期完全匹配。
否:就是否定,就是满足条件就不匹配 。
或者:默认情况下,响应断言的多个预期值之间是使用且关系的,一旦勾选或者,则是或关系。
ant+jenkins+jmeter持续集成
掌握jmeter命令的运行方式:jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
没有.jtl文件,运行如下命令:jmeter -n -t jmeter脚本路径 -l jtl报告名称 -e -o html的报告文件目录
已经存在结果文件(.jtl),可运行如下命令生成报告:jmeter -g jtl报告名称 -o html的报告文件目录
参数列表:
-n:表示jmx脚本通过非GUI的方式运行,不能单独用,必须和-t(指定jmx脚本)结合使用
-l:表示指定存储测试结果的文件。一般情况下通过jtl文件来保存报告。
-e :在脚本运行结束后生成html报告
-o :用于存放html报告的目录
-g:表示通过jtl直接生成html,不能单独使用,一般会和-o(html报告的目录,必须是空的目录)一起使用。
注意:默认情况下报告数据是没有请求和响应信息的,需在配置文件jmeter.properties中设置,在配置文件中查找Results file,找到之后对应位置配置如下:
jmeter.save.saveservice.output_format=xml #默认支持csv,改成xml
jmeter.save.saveservice.response_data=true #响应数据改成true
jmeter.save.saveservice.samplerData=true #请求数据改成true
彩蛋:
考虑每次执行命令都要先去目录下清空报告文件夹和jtl,还要敲命令,很烦,后来想了一个方法,那就是写一个bat,每次执行bat都自动去清空之前的报告,然后执行命令 :cmd打开命令行窗口,输入写的bat的文件路径
脚本如下: 在这里插入图片描述
del是删除jtl,rd是删除报告文件夹,md是重建报告文件夹,最后执行命令生成报告
使用Jmeter+ANt集成实现:
ant构建原理:ant工具主要是根据build.xml文件来进行工作的,官方给出的默认文件在Jmeter的安装目录下extras文件夹中。build.xml指定脚本路径和报告路径,以及构建依赖报告模板路径和jar包路径。然后在build.xml所在目录执行ant命令执行jmeter脚本。
1.官网https://ant.apache.org/bindownload.cgi上下载并安装ant,并配置变量,配置path 安装ant位置/bin
配置库文件:
将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中,这一步操作使Ant运行时能够找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本
2.自定义一个build.xml放在jmeter脚本目录。(若jmeter的extras\目录下没有 jmeter.results.shanhe.me.xsl,需要手动拷贝进去将结果整理为自己想要的样式)
3.jmeter+ant执行:cmd中切换到存放脚本的目录输入ant即可执行代码
注意:
报告中的request和response两项默认没有数据。修改jmeter/bin目录下jmeter.properties文件把需要设置测试输出报告要输出的内容改成true和把csv改成xml(jmeter.save.saveservice.output_format=xml),这样执行完脚本后就会保存这些结果到.jtl文件里面,
在这里插入图片描述

使用Jenkins实现:
下载安装Jenkins—配置环境变量–启动jenkins–新建并配置一个项目
参考地址:https://www.cnblogs.com/wulixia/p/11011793.html
1. 压测
性能测试指标:多(能够支持最大的用户访问量即并发量)快(响应时间多快即响应时间或延时)好(持久运行即长时间运行或叫稳定性)省(节省资源即资源使用率)思考时间
压测准备工作:
a.对环境进行初始化(即测试环境跟线上环境保持一致,网络、数据【知道线上数据结构写脚本跑数据】)
b.测试场景设计(根据性能需求设计出符合用户使用习惯的场景)
c.性能工具准备
d.测试脚本准备(工具无法满足就需要我们自己开发脚本配合工具进行性能测试)
2. Jmeter分布式部署
步骤:
1.确定控制机和执行机;
2.执行机设置
Jmeter系统配置文件添加ip地址remote_hosts;
启动jmeter;
关闭防火墙和其他网卡;
3.控制机设置
Jmeter系统配置文件添加执行机的ip(ip地址remote_hosts)和端口;
在控制机打开 jmeter脚本运行————>远程运行;
注意事项:
1.确保控制机和执行机在同一个局域网;
2.确保控制机和执行机Jmeter版本和Java版本环境一致;
3.Jmeter脚本控制机和执行机放置在同一个路径下
例子如下:
a.控制机设置:
1.1 jmeter / bin目录下找到jmeter.properties打开找到remote_hosts = 127.0.0.1,并把从属系统上的ip输入即可,例如:remote_hosts =192.168.0.2, 192.168.0.10,192.168.0.11,192.168.0.12,192.168.0.13,192.168.0.14,192.168.0.15;
1.2 jmeter / bin目录并执行 jmeter-server.bat;
1.3 jmeter / bin目录并执行 jmeter.bat;
b.10代理机设置
1.1 jmeter / bin目录下找到jmeter.properties打开找到remote_hosts = 127.0.0.1,并把从属系统上的ip输入即可,例如:remote_hosts = 192.168.0.10;
1.2 jmeter / bin目录并执行 jmeter-server.bat;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值