使用jmeter进行接口测试

news2024/11/15 11:00:58

jmeter介绍

JMeter是Apache基金会Jakarta上的一个纯java开源项目,起初用于基于Web的压力测试(pressure test),后来其应用范围逐渐扩展到对文件传输FTP,大型数据库(JDBC方式),脚本程序(CGI,Perl等),Web Services,Java应用系统等方面的测试。JMeter本身主要用于性能测试,如系统压力等。除此之外,JMeter能够对应用系统做功能测试和回归测试,并且能够通过使用带有断言的脚本程序来验证系统然后返回用户期望的结果。为了提高工具的应用灵活性,JMeter允许使用正则表达式创建断言。正是由于它的灵活性和可扩展性,JMeter逐渐成为流行的开源测试工具。

Jmeter特点:

  • 支持多种服务类型进行测试
  • 支持通过录制\回访的方式获取测试脚本
  • 具备高移植性,是100%的Java程序
  • 采用多线程框架,允许通过多个线程并发取样及通过独立的线程组对不同的功能同时取样
  • 精心设计的GUI支持高速用户操作和精确计时
  • 支持缓存和离线的方式分析\回放测试结果
  • 具备高扩展性

Jmeter与Loadrunner的对比:
1、界面、安装、协议支持、函数库、成本、开源
2、都可以实现分布式负载,相对来说Loadrunner更强大一些
3、都支持在windows和linux环境的负载生成器。控制台方面,Jmeter跨平台、而LoadRunner不是
4、LoadRunner可以指定每个负载生成器运行不同数量的并发用户,而目前Jmeter不行
5、Jmeter中测试计划之外的数据文件不会一起发送到负载生成器,而LoadRunner中的文件可以通过选择纳入LoadRunner的管理而一起发送到远端

 

jmeter安装

第一步:安装JDK,必须JDK1.7以上,推荐1.8版本
第二步:进入jmeter下载页面:  下载相应安装包,如:apache-jmeter-3.0.zip
第三步:解压安装到一个英文名称目录下,如C:\
第四步:配置相应环境变量: 新建JMETER_HOME:C:\apache-jmeter-3.0 修改CLASSPATH:加上 %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan. jar;%JMETER_HOME%\lib\logkit-2.0.jar;
第五步:进入C:\apache-jmeter-3.0\bin,进入bin目录后,双击运行jmeter.bat,打 开的时候会有两个窗口,Jmeter的命令窗口和Jmeter的图形操作界面,不可以关闭 命令窗口。

jmeter主要测试组件

JMeter 的主要测试组件总结如下:
1.测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
2.线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
3.监听器负责收集测试结果,同时也被告知了结果显示的方式。
4.逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
5.断言可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域, 即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
6.配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
7.前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
8.定时器负责定义请求之间的延迟间隔。
9.取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等,每一种不 同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。

 

jmeter元件作用域与执行顺序

元件的作用域:
配置元件(config elements ) :元件会影响其作用范围内的所有元件。
前置处理程序(Per-processors):元件在其作用范围内的每一个sampler元件之前执行。
定时器(timers ):元件对其作用范围内的每一个sampler 有效后置处理程序(Post-processors):元件在其作用范围内的每一个sampler元件之后执行。
断言(Assertions):元件对其作用范围内的每一个sampler元件执行后的结果执行校验。
监听器(Listeners):元件收集其作用范围的每一个sampler元件的信息并呈现。
总结:从各个元件的层次结构判断每个元件的作用域

元件的执行顺序:
配置元件-->前置处理程序-->定时器-->取样器-->后置处理程序(除非Sampler 得到的返 回结果为空)-->断言(除非Sampler 得到的返回结果为空)-->监听器(除非Sampler 得到的返回结果为空)
关于执行顺序,有两点需要注意:
前置处理器、后置处理器和断言等元件公能对 取样器作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。
如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序一次执行。

 总结:

感谢每一个认真阅读我文章的人!!!

 我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

   Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/798555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

列表的sort方法和sorted的区别

问题:简述一下列表list的sort方法和sorted的区别 sort是应用在list列表上的方法,sorted可以对所有可迭代的对象进行排序操作 list.sort()不会返回对象,会改变原有的list,即直接在原来的list基础上修改(原列表就地排序)&#xff0…

(链表) 剑指 Offer 35. 复杂链表的复制 ——【Leetcode每日一题】

❓ 剑指 Offer 35. 复杂链表的复制 难度:中等 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 示例 1&#x…

从容应对,探索CAD辅助命令的优秀实践

在CAD设计中,辅助命令是提升效率和精确度的重要工具。熟练掌握并正确运用CAD中的各种辅助命令对于设计师们来说至关重要。本文将为你介绍一些常用的CAD辅助命令,并详细说明它们的功能和使用方法,帮助你更好地利用这些命令完成高质量的设计工作…

Elasticsearch:使用 ELSER 释放语义搜索的力量:Elastic Learned Sparse EncoderR

问题陈述 在信息过载的时代,根据上下文含义和用户意图而不是精确的关键字匹配来查找相关搜索结果已成为一项重大挑战。 传统的搜索引擎通常无法理解用户查询的语义上下文,从而导致相关性较低的结果。 解决方案:ELSER Elastic 通过其检索模型…

虚拟机(VMware)安装Linux(Ubuntu)安装教程

清华大学开源网站镜像站网址:清华大学开源软件镜像站 | Tsinghua Open Source Mirror 进入之后在搜索框中搜索“ubuntu” 直接点击箭头所指的蓝色字体“ubuntu-20.04.1-desktop-amd64.iso”即可下载

Jmeter介绍以及脚本制作与调试

Jmeter介绍 Jmeter 是 Apache 基金会 Jakarta 上的一个纯 Java 开源项目,起初用于基于 Web 的压力测试(pressure test),后来其应用范围逐渐扩展到对文件传输 FTP, 大型数据库(JDBC 方式),脚本程…

7.27 作业

1.闹钟 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);tid1 startTimer(1);//显示时间计时器ui->pushButton_2->setEnabled(false);//设置停止为不可用…

陕西师范大学大学:融合传统与创新的学府之旅

前言 > 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 > 📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看 > &#x1f4d…

MUR2080CT/MUR2080CTR-ASEMI快恢复二极管对管

编辑:ll MUR2080CT/MUR2080CTR-ASEMI快恢复二极管对管 型号:MUR2080CT/MUR2080CTR 品牌:ASEMI 封装:TO-220 恢复时间:50ns 正向电流:20A 反向耐压:800V 芯片大小:102MIL*2 …

BGP劫持原理及如何防御

互联网跟人类社会一样,都通过特定的规则和法律来确保社会的正常运行。BGP协议就是互联网中的“规则”之一。BGP用于在不同的自治系统(AS)之间交换路由信息,当两个AS需要交换路由信息时,每个AS都必须指定一个运行BGP的节点,来代表A…

K8s使用Ceph作为后端存储

Ceph概述 部署Ceph集群 Ceph存储使用 Pod使用Ceph持久化数据 Ceph监控 Rook部署Ceph Ceph概述 Ceph介绍 Ceph架构 Ceph核心概念 Ceph介绍 Ceph是一个开源的分布式存储系统,具有高扩展性、高性能、高可靠性等特点,提 供良好的性能、可靠性和可扩展性。…

重新C++系列之运算符重载

一、什么是运算符重载 简单来讲就是对运算符赋予新的意义,但是又不能改变原有的含义,它本身也就是一个函数。运算符重载的本质是以函数的方式来体现。 二、运算符重载有几种 1、按照作用域来划分,有全局操作符重载函数和成员函数操作符重载函…

面向对象——步入JavaScript高级阶段的敲门砖

目录 前言一、认识对象1.什么是对象2.对象的方法3.对象的遍历4.对象的深浅克隆 二、认识函数上下文1.函数的上下文规则 ★2.call和apply ★ 三、构造函数1.用new操作符调用函数2.类与实例3.构造函数和类" 四、原型和原型链1.prototype和原型链查找 ★2.在prototype上添加方…

access偏移注入

偏移注入是因为知道猜到access数据库表名&#xff0c;猜不到列名 因为之前http://192.168.246.11:83/news_view.asp?id15网站有设置waf过滤&#xff0c;需要先把waf防御先删掉后使用 <!--#include file"waf.asp"--> 之前已经知道注入点&#xff0c;详见acces…

从简单的例子 来看 倒排索引

文章首发地址 倒排索引-是什么&#xff1f; 倒排索引&#xff08;Inverted Index&#xff09;是一种常用的文本检索技术&#xff0c;用于快速定位包含某个词汇的文档集合。它的原理是将文档中的每个单词记录在一个索引表中&#xff0c;并且将每个单词所对应的文档编号和位置都…

多租户的低代码平台,Saas开发平台:MateCloud

简介 MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Boot 2.7.0、 Spring Cloud 2021、Spring Cloud Alibaba 2021、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等&#xff0c;支持多租户的低代码平台&#xff0c;Saas平台开发套件…

Linux磁盘管理命令

目录 1. du (disk usage文件和目录占用的磁盘空间) 2. df (disk free 查看磁盘使用情况) 3. lsblk(list block查看块设备挂载情况) 1. du (disk usage文件和目录占用的磁盘空间) du [-ahskm] 目录/文件&#xff08;文件大小可以直接使用ll查看&#xff09; 选项与参数&a…

树的遍历(一题直接理解中序、后序、层序遍历,以及树的存储)

题目如下&#xff1a; 一个二叉树&#xff0c;树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历&#xff0c;请你输出它的层序遍历。 输入格式 第一行包含整数 N&#xff0c;表示二叉树的节点数。 第二行包含 N 个整数&#xff0c;表示二叉树的后序遍历。 第…

二、Spring源码-初始化

Spring初始化源码分析 接下来我们详细分析下refresh方法的作用。 一、refresh方法 Overridepublic void refresh() throws BeansException, IllegalStateException {synchronized (this.startupShutdownMonitor) {// 1.context 为刷新做准备// Prepare this context for refre…

速速收藏!程序员副业赚钱的8种模式

程序员副业赚钱的方式有很多&#xff0c;我总结了程序员兼职赚钱&#xff0c;增加收入的八种模式&#xff0c;希望能够给在迷茫的程序员一点参考&#xff01; 投资理财 很多程序员多少都会买买基金、炒炒股作为一个小副业&#xff0c;由于程序员大多是理科生&#xff0c;有比…