Jmeter性能测试 (入门)

news2025/2/24 12:20:01

Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。

熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。

本文将通过一个实际的测试例子, 来讲解Jmeter的基本用法。本文的最后提供了本篇文章的脚本。 不喜欢看文章的同学直接看脚本也能看懂

Jmeter 介绍

Jmeter  是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试). 

而且用Jmeter 来测试 Restful API, 非常好用。

如何学好Jmeter

如果你用Jmeter去对Web进行功能测试,或者性能测试。 你必须熟练HTTP协议,才能学好Jmeter。 否则你很难理解Jmeter中得概念。

Jmeter  下载和运行

官方网站:Apache JMeter - Apache JMeter™

解压后, 运行  “bin/jmeter.bat”   

Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言

实际测试的例子

目标: 获取城市的天气数据:

第一步: 发送request 获取城市的城市代号
http://toy1.weather.com.cn/search?cityname=上海 

从这个请求的response 中获取到上海的城市代码. 比如:

上海的地区代码是101020100

上海动物园的地区代码是:  10102010016A

第二步:  发送request 到: http://www.weather.com.cn/weather2d/101020100.shtml   可以得到该城市的天气数据

第一步: 新建一个Thread Group

必须新建一个Thread Group,  jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。

 

第二步:新建一个 HTTP Request

比如我要发送一个Get 方法的http 请求: http://toy1.weather.com.cn/search?cityname=上海 

可以按照下图这么填

第三步 添加HTTP Head Manager

选中上一步新建的HTTP request. 右键,新建一个Http Header manager. 添加一个header

 

第四步: 添加View Results Tree

View Results Tree 是用来看运行的结果的

 

第五步:运行测试,查看结果

到这里。 我们已经成功运行起来了。

 

第六步:添加Assertion和Assert Results

 选择HTTP Request, 右键 Add-> Assertions -> Response Assertion.  添加 Patterns To Test

然后添加一个Assetion Results 用来查看Assertion执行的结果. 

选中Thread Group 右键  Add -> Listener -> Assertion Results. 

运行后, 如果HTTP Response中没有包含期待的字符串。 那么test 就会Fail. 

 

第7步: 使用用户自定义变量

我们还可以在Jmeter中定义变量。 比如我定义一个变量叫 city.    使用它的时候用  ${city}

添加一个 User Defined Variables.  选中Thread Group: 右键 Add -> Config Element -> User Defined Variables.

我们添加一个变量: city

然后在Http Request中使用这个变量

 第八步:关联

所谓关联, 就是第二个Requst, 使用第一个Request中的数据

我们需要在第一个Http Requst 中新建一个正则表达式,把Response的值提取到变量中,提供给别的Http Request 使用

选择第一个Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor

现在新建第二个Http Request,     发送到: http://www.weather.com.cn/weather2d/${citycode}.html 

${citycode} 中的数据, 是从Regular Expression Extractor 中取来的

到这, 脚本就全部写好了, 运行下,看下最终结果

 源代码下载

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

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

相关文章

浪涌保护器的选型和原理(SPD)

SPD是Surge Protective Device的简写,中文名称有:电涌保护器、浪涌保护器、防雷栅、雷电浪涌防护器、防雷器等。 SPD浪涌保护器其内部包含至少一个非线性元件。当电涌出现时,SPD能在极短的时间导通,将电流泄放到地,其…

如何有效的提升餐饮油烟的监控力度

摘要:现阶段餐饮行业发展十分迅速,为了更好地提升餐饮油烟的监控力度,强化餐饮业油烟在线监控系统的设计成为重中之重。油烟在线监控系统的强化可以降低油烟的排放量,同时在排烟的过程中,还可搜集到更多的数据和信息。…

用“Function“替代“eval“进行动态代码生成

一、背景 在JavaScript中我们有时会遇到这么一个场景:“函数可能要根据不可预知的条件执行代码”。比如说计算器中的加减乘除,用户无法直接将操作符"、-、*、/"作为参数传入函数中,因此我们一般会采取字符串形式的操作符&#xff0…

asp.net高校食谱管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net高校食谱管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net高校食谱管理系统VS开发s…

Spring - Bean的实例化流程及生命周期

文章目录 Bean的实例化流程及生命周期一、Bean实例化基本流程1.1 Bean实例化基本流程1.2 总结 二、 Bean 后处理器2.1 介绍2.2 BeanFactoryPostProcessor Bean工厂后处理器2.2.1 入门2.2.2 Bean工厂后处理器注册BeanDefinition2.2.3 BeanDefinitionRegistryPostProcessor专门注…

2023年软件测试工程师如何提升?测试工程师破局进阶...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 熟练掌握基本的测…

Java反编译工具Jad的下载与使用示例

场景 Java反编译工具-JD-GUI下载以及使用: Java反编译工具-JD-GUI下载以及使用_霸道流氓气质的博客-CSDN博客 上面讲过Java反编译工具JD-GUI的使用,如果使用jad并通过命令如何实现反编译。 为了验证Java开发手册中为什么不推荐使用进行字符串拼接&…

基于轻量级卷积神经网络模型开发构建中国象棋棋子识别系统

关于棋类相关的AI类型的项目在我之前的文章中也有过不少的实践开发经历,这里就不再赘述了,感兴趣的话可以自行移步阅读即可: 《YOLOV5融合SE注意力机制和SwinTransformer模块开发实践的中国象棋检测识别分析系统》 《基于轻量级YOLO开发构建…

【IP技术】什么是IP地址?

一、IP地址概念 IP地址是一个32位的二进制数,它由网络ID和主机ID两部份组成,用来在网络中唯一的标识的一台计算机。网络ID用来标识计算机所处的网段;主 机ID用来标识计算机在网段中的位置。IP地址通常用4组3位十进制数表示,中间用…

(论文阅读)Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

论文地址 https://openreview.net/pdf?id_VjQlMeSB_J 摘要 我们探索如何生成一个思维链——一系列中间推理步骤——如何显著提高大型语言模型执行复杂推理的能力。 特别是,我们展示了这种推理能力如何通过一种称为思维链提示的简单方法自然地出现在足够大的语言模…

运用自动化测试脚本,测试下CSDN的登录功能模块

目录 前言 python程序目录 账号密码登录模块 测试用例执行模块 运行结果示例 前言 自动化测试的重要性越来越受到人们的重视,因为它可以提高测试效率、降低测试成本并减少人为错误的出现。为了满足这个需求,越来越多的公司开始采用自动化测试来保证…

项目跑不起来

Sa-Token/sa-token-core/src/main/java/cn/dev33/satoken/temp/SaTempUtil.java:10:8 java: 写入cn.dev33.satoken.temp.SaTempUtil时出错: Output directory is not specified 写入cn.dev33.satoken.temp.SaTempUtil时出错: Output directory is not specified 答案&#xf…

c++的概述

c是面向对象、泛型编程。 1、 第一个c程序&#xff1a; #include <iostream>using namespace std;int main(int argc, char *argv[]) {//cout代表终端输出设备 endl换行cout << "Hello World! " << endl;cout << 100 << endl;std:…

Element-Plus el-upload组件批量上传图片问题记录

上传图片组件踩坑记录 1. 第一次尝试 最初的写法如下&#xff0c;在本地跑的时候每上传一张图片调一次接口&#xff0c;虽然图片回显正常了&#xff0c;但是每次都会自动多调一个如下图所示的apply-login 报错404&#xff0c;部署到测试环境后&#xff0c;就是每次都报错&…

linux(信号产生中)代码来验证

我们应该如何理解我们调用系统接口并不是简单的调用系统接口这么简单就完事了---我们有时候也是需要使用由操作系统为我们提供的操作系统的层面的数据类型 sigset_t 我们来介绍一种类型&#xff0c;从我们之前学的图来看&#xff0c;每一个信号不管是在block表还是在pending表…

鄂尔多斯市政务协同办公平台,让全市政务更协同高效

近年来&#xff0c;国家高度重视数字政务建设&#xff0c;以数字化推进国家治理体系和治理能力现代化&#xff0c;助力建设人民满意的服务型政府。 2018年&#xff0c;国务院办公厅印发《进一步深化“互联网政务服务”推进政务服务“一网、一门、一次”改革实施方案》&#xf…

这份阿里巴巴内部Spring Cloud Alibaba全套笔记,几乎涵盖了所有操作

Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案&#xff0c;是阿里巴巴开源中间件与 Spring Cloud 体系的融合。 Springcloud 和 Srpingcloud Alibaba 区别&#xff1f; SpringCloud&#xff1a; 部分组件停止维护和更新&#xff0c;给开发带来不便;SpringCl…

缓存数据一致性探究

缓存是一种较低成本提升系统性能的方式&#xff0c;自它面世第一天起就备受广大开发者的喜爱。然而正如《人月神话》中的那句经典的“没有银弹”中所说&#xff0c;软件工程的设计没有银弹。 就像每一次发布上线修复问题的同时&#xff0c;也极易引入新的问题&#xff0c;自缓存…

一文让你明白软件测试该怎样入门?

我认为入门软件测试需要四个方面的知识or技能&#xff0c;它们是&#xff1a;业务知识、职业素养、基础知识、技术知识。 职业素养是一切的根基&#xff0c;因为人在职场就必须拥有必要的职业素养&#xff0c;软件测试工程师也不例外。基础知识和技术知识是两大支柱&#xff0…

【正点原子STM32连载】 第二十九章 DMA实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十…