使用Jmeter进行接口测试和压力测试的配置和使用
1. Jmeter简介
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。
2. Jmeter的下载和安装
Jmeter的使用需要java环境,需要先下载安装jdk;
下载Jmeter工具包,解压后进入bin文件夹,点击jmeter.bat即可运行;
可下载插件,拥有更多专业元件。
在http://jmeter-plugins.org/downloads/all/下载JmeterPlugins-Standard-1.1.3.zip,解压后将JmeterPlugins-Standard.jar放在XXX\Apache\jmeter\lib\ext下即可
3. 接口测试方法
1.什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
2.准备数据
获得测试URL中需要用的参数名称及值的获取方式。
获得各请求的方法、IP、测试URL、测试header、测试body及判断基准
测试实施
将测试用例中的各项写入软件中。
(1)创建线程组
(2)修改线程组名称
(3)为线程组添加元件
1.HTTP Cookie管理器
因为很多web网站都是需要登录后才可以进行操作,登录后产生的Cookie能够验证用户身份,在用软件进行测试时,需要通过验证,所以我们需要添加此管理器管理Cookie,它的值被整个线程共享(也可以被整个测试计划共享), Cookie在浏览器中取得。
2.HTTP 请求默认值
测试用例中每个接口的共同值可以用“HTTP 请求默认值”元件统计设置,省去每次请求都要填写的麻烦,它的值被整个线程共享(也可以被整个测试计划共享)。
3.用户定义的变量
将后续用到的变量添加到“用户定义的变量”,后续操作只需引用变量名称即可,它的值被整个线程共享(也可以被整个测试计划共享)。
4.HTTP请求
发送http请求需要用的元件。
5.HTTP信息头管理器
发送http请求需要加入信息头时用此元件,如线程组中的所有请求均需要信息头,则可将此管理器升级为整个线程组共享或者整个测试计划共享。
6.响应断言
发送请求后,需要通过比对响应结果是够符合判断基准来判断某条测试是否ok,通过人为判断是可行的,但是当请求数量较大时,人为判断效率低下,添加“响应断言” 能够提高效率(判断基准有多个时,可以添加多个断言)。
7.察看结果树
用于查看测试结果。
8.其他元件
(1)正则表达式提取器
可将某次响应返回数据中某些信息提取出来,用于后续操作。
(2)Debug Sampler
用于调试整个测试
(3)CSV Data Set Config
通过文件进行参数化的一个元件。
(4)开始测试
添加好各种元件及数据后,可进行测试,通过察看结果树察看各请求测试结果。
4. 压力测试方法
(1)线程组
(2)Constant Throughput Timer(固定吞吐量控制器)
(3)聚合报告
(4)监听器
监听器
jp@gc - Transactions per Second
监听器
jp@gc –PerfMon Metrics Collector
(5)使用非GUI界面运行压力测试
非GUI压力测试步骤:
在GUI界面设置并发数、测试时间等,添加各元件,保存测试计划,并关闭软件;
使用非GUI界面,用指令启动压力测试;
指令例如:D:\Program Files\apache-jmeter-3.1\bin>jmeter -n -t testplan.jmx -l listener.jtl打开jmeter.bat,在聚合报告元件中载入“listener.jtl”,查看聚合报告;
在监视器中中载入“listener.jtl”,查看各曲线图。
使用Jmeter进行接口测试和压力测试的配置和使用的更多相关文章
- Jmeter接口测试+压力测试+环境配置+证书导出
jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先要安 ...
- JMeter接口测试和压力测试
JMeter接口测试和压力测试 JMeter可以做接口测试和压力测试.其中接口测试的简单操作包括做http脚本(发get/post请求.加cookie.加header.加权限认证.上传文件).做web ...
- 使用JMeter进行MySQL的压力测试
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 目录 前言 1. JMeter安装 2. 导入MyS ...
- Jmeter教程 简单的压力测试
Jmeter教程 简单的压力测试:http://www.cnblogs.com/TankXiao/p/4059378.html
- 转:使用 JMeter 完成常用的压力测试
使用 JMeter 完成常用的压力测试 就目前 Java EE 的平台下开发的软件来说,这种节点通常可能是:Web 服务器.数据库服务器和 JMS 服务器.它们都是请求主要发生的地点,请求频率较其它的 ...
- Windows和Linux的Jmeter分布式集群压力测试
Windows的Jmeter分布式集群压力测试 原文:https://blog.csdn.net/cyjs1988/article/details/80267475 在使用Jmeter进行性能测试时, ...
- JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)
JMeter (3) -- JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial) 主要内容 JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点 ...
- 【转】使用JMeter 完成常用的压力测试(三)
使用JMeter 完成常用的压力测试 发布时间: 2008-9-27 15:33 作者: 未知 来源: 网络转载 字体: 小 中 大 | 上一篇 下一篇 | 打印 | 我要投稿 ...
- 【转】使用JMeter 完成常用的压力测试(二)
使用JMeter 完成常用的压力测试 Login.jsp 和welcome.jsp.其中 login.jsp 负责生成 User 对象,并调用 User 的login.当 login 返回为 true ...
随机推荐
- Android控件之ListView的使用
ListView是Android当中一个非常常用的数据显示控件. 第一种可以使用List<HashMap<String , Object>>,作为适配器的数据源来显示要显示的数 ...
- Java的IO输入输出流类的介绍(有图)
一.字节流 1.InputStream/OutputStream(输入流与输出流几乎一一对应) 读取的方法 int read() int read(byte[] buffer) int r ...
- 大型网站技术学习-3. 容器Docker与kubernetes
大型网站技术基石篇-容器Docker与kubernetes Docker和Kubernetes的关系就如Xen与OpenStack. Docker是一种容器技术,和Hypervisor(KVM/X ...
- 【c++】访问控制
1. 类内的访问控制 在基类中,public和private具有普通的含义:用户(即基类的对象)可以访问public成员(包括函数.数据),而不能访问private成员.private只能被基类的成 ...
- Scrum 冲刺博客第二篇
一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 配置和连接微信小程序服务器 个人界面设计 部主页界面设计 答题界面设计 今 ...
- window.open()被浏览器拦截问题汇总
一.问题描述 最近在做项目的时候碰到了使用window.open被浏览器拦截的情况,虽然在自己的环境可以对页面进行放行,但是对用户来说,不能要求用户都来通过拦截.何况当出现拦截时,很多用户根本不知道发 ...
- SSM+PageHelper+jqGrid实现数据分页
前言 前几天自己写了一个分页功能,代码逻辑写的很乱今天发现jqGrid这个工具是真好用,故记录下来方便以后使用首先是PageHelper后台分页工具PageHelper的原理是基于拦截器实现的 具体流 ...
- JSON与null
org.json.JSONObject orgJSON = new org.json.JSONObject(); // The method put(String, Collection) is am ...
- 三 Buffer
使用Buffer一般遵循以下四个步骤 写入数据到Buffer 调用flip() 从Buffer中读取数据 调用clear()或者compact()方法 当向buffer写入数据时,buffer会记录下 ...
- flask_sqlalchemy filter 和filter_by的区别
1. filter需要通过类名.属性名的方式,类名.属性名==值.filter_by 直接使用属性名=值,可以看源码filter_by需要传一个 **kwargs 2. filter支持> &l ...