Jmeter(四) - 从入门到精通 - 创建网络测试计划(详解教程)

1.简介

在本节中,您将学习如何创建基本的 测试计划来测试网站。您将创建五个用户,这些用户将请求发送到JMeter网站上的两个页面。另外,您将告诉用户两次运行测试。因此,请求总数为(5个用户)x(2个请求)x(重复2次)= 20个HTTP请求。要构建测试计划,您将使用以下元素: 线程组, HTTP请求, HTTP请求默认值和 图形结果。

有关更高级的测试计划,请参阅 构建高级Web测试计划。

1.1添加用户

您要对每个JMeter测试计划进行的第一步是添加一个 线程组元素。线程组告诉JMeter您要模拟的用户数量,用户应多久发送一次请求以及应发送多少次请求。

继续并通过首先选择“测试计划”来添加ThreadGroup元素,单击鼠标右键以获得“添加”菜单,然后选择“添加”→“线程组”。

现在,您应该在“测试计划”下看到“线程组”元素。如果没有看到该元素,则通过单击“测试计划”元素来“扩展”测试计划树。

接下来,您需要修改默认属性。如果尚未选择线程组元素,则在树中选择它。现在,您应该在JMeter窗口的右侧部分中看到“线程组控制面板”(请参见下面的图1.1)

图1.1 具有默认值的线程组

首先为我们的线程组提供一个更具描述性的名称。在名称字段中,输入JMeter Users。

接下来,将用户数量(称为线程)增加到5。

在下一个字段“加速周期”中,保留默认值1秒。该属性告诉JMeter启动每个用户之间要延迟多长时间。例如,如果您输入5秒钟的加速期,JMeter将在5秒钟结束时完成所有用户的启动。因此,如果我们有5个用户和5秒钟的加速期,则启动用户之间的延迟将为1秒(5个用户/ 5秒= 1个用户每秒)。如果将值设置为0,那么JMeter将立即启动所有用户。

最后,在“循环计数”字段中输入值2。该属性告诉JMeter重复测试多少次。如果输入的循环计数值为1,则JMeter将仅运行一次测试。要让JMeter重复运行您的测试计划,请选择永久复选框。

在大多数应用程序中,您必须手动接受在控制面板中所做的更改。但是,在JMeter中,控制面板会在您进行更改时自动接受它们。如果更改元素的名称,则在离开控制面板后(例如,选择另一个树元素时),树将使用新文本进行更新。                                                   有关完整的JMeter用户线程组,请参见图1.2。

图1.2 JMeter用户线程组

1.2添加默认的HTTP请求属性

现在我们已经定义了用户,是时候定义他们将要执行的任务了。在本部分中,您将为HTTP请求指定默认设置。然后,在第1.3节中,您将添加使用您在此处指定的某些默认设置的HTTP请求元素。

首先选择“ JMeter用户(线程组)”元素。单击鼠标右键获得“添加”菜单,然后选择“添加”→“配置元素”→“ HTTP请求默认值”。然后选择此新元素以查看其控制面板(请参见图1.3)。

 图1.3HTTP请求默认值

像大多数JMeter元素一样,“ HTTP请求默认值”控制面板具有一个您可以修改的名称字段。在此示例中,将此字段保留为默认值。

跳至下一个字段,即Web服务器的服务器名称/ IP。对于您正在构建的测试计划,所有HTTP请求都将发送到同一Web服务器jmeter.apache.org。在字段中输入此域名。这是我们将指定默认值的唯一字段,因此请保留其余字段的默认值。

HTTP Request Defaults元素不会告诉JMeter发送HTTP请求。它仅定义HTTP Request元素使用的默认值。

有关完整的HTTP Request Defaults元素,请参见图1.4。

图1.4 我们的测试计划的HTTP默认值

1.3添加Cookie支持

几乎所有的Web测试都应使用cookie支持,除非您的应用程序明确不使用cookie。要添加cookie支持,只需将HTTP Cookie Manager添加 到测试计划中的每个线程组。这将确保每个线程都有自己的cookie,但会在所有HTTP Request对象之间共享。

图1.5 HTTP Cookie管理器

要添加HTTP Cookie管理器,只需选择“线程组”,然后从“编辑”菜单或右键单击弹出菜单中选择“添加”→“配置元素”→“ HTTP Cookie管理器”。

1.4添加HTTP请求

在我们的测试计划中,我们需要发出两个HTTP请求。第一个用于JMeter主页(http://jmeter.apache.org/),第二个用于Change页面(http://jmeter.apache.org/changes.html)。

JMeter按照它们在树中出现的顺序发送请求。

首先将第一个HTTP请求添加 到JMeter Users元素(添加→采样器→HTTP请求)。然后,在树中选择HTTP Request元素并编辑以下属性(请参见图1.6):

  1. 将名称字段更改为“主页”。
  2. 将路径字段设置为“ /”。请记住,由于您已经在HTTP Request Defaults元素中指定了此值,因此不必设置Server Name字段。

图1.6 JMeter主页的HTTP请求

接下来,添加第二个HTTP请求并编辑以下属性(请参见图1.7:

  1. 将名称字段更改为“更改”。
  2. 将“路径”字段设置为“ /changes.html”。

图1.7 JMeter变更页面的HTTP请求

1.5添加侦听器以查看存储测试结果

您需要添加到测试计划中的最后一个元素是 Listener。此元素负责将HTTP请求的所有结果存储在文件中,并提供数据的可视模型。

选择JMeter Users元素并添加一个Graph Results侦听器(添加→侦听器→后端侦听器)。

1.6登录网站

宏哥在上边列举的不是这种情况,但是某些网站要求您先登录才能允许您执行某些操作。在网络浏览器中,登录名将显示为用户名和密码的表单,以及用于提交表单的按钮。该按钮生成POST请求,将表单项的值作为参数传递。

要在JMeter中执行此操作,请添加HTTP请求,然后将方法设置为POST。您需要知道表单使用的字段的名称以及目标页面。这些可以通过检查登录页面的代码来找到。[如果很难做到,则可以使用JMeter Proxy Recorder(相当于一款web页面抓包工具,当然了你也可以使用其他的抓包工具)记录登录序列。]设置提交按钮目标的路径。单击添加按钮两次,然后输入用户名和密码详细信息。有时,登录表单包含其他隐藏字段。这些也将需要添加。

图4.8。 示例HTTP登录请求

图1.8  示例HTTP登录请求

1.7选择同一用户或不同用户

创建测试计划时,在每个线程组迭代中,我们可以选择模拟运行多个迭代的同一用户,或模拟运行一个迭代的不同用户。您可以在线程组元素上配置此行为,并使HTTP缓存管理器,HTTP Cookie管理器,HTTP授权管理器受此设置控制。

注意:敲黑板,敲脑壳啦!!!

在JMeter的最新版本中没有这部分内容了,不要大惊小怪的。可能这部分的内容不是很重要吧,随着版本的增加,Jmeter官方将这部分去掉了。

图4.9。 选择相同或不同的用户

图1.9 选择相同或不同的用户

您可以选择在CookieManager / CacheManager / Authorization Manager中清除cookie /缓存内容/授权,也可以选择由线程组控制。

图4.10。 使用线程组控制CookieManager

图1.10 使用线程组控制CookieManager

图4.11。 使用线程组控制CacheManager

图1.11 使用线程组控制CacheManager

图4.12。 使用线程组控制授权管理器

图1.12 使用线程组控制授权管理器

2.小结

好了今天的创建网络测试计划就分享到这里,下一篇宏哥带着小伙伴和童鞋们实战一下,小试一下牛刀。顺带说一下高级网络测试计划的创建。


             【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通


二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react搭建在线编辑html的站点——引入grapes实现在线拖拉拽编辑html

文章目录 ⭐前言⭐搭建react ts项目⭐引入grapes 插件⭐结束 ⭐前言 大家好,我是yma16,本文分享关于react搭建在线编辑html的站点。 react 发展历史 React是由Facebook开发的一种JavaScript库,用于构建用户界面。React最初发布于2013年&…

C++/Qt读写ini文件

今天介绍C/Qt读写ini文件,ini文件一般是作为配置文件来使用,比如一些程序的一些默认参数会写在一个ini文件中,程序运行时会进行对应的参数读取,详细可以查看百度ini文件的介绍。https://baike.baidu.com/item/ini%E6%96%87%E4%BB%…

Redis的简介,安装(Linux、Windows),配置文件的修改---详细介绍

Redis基础 Redis是一个基于内存的key-value结构数据库。 基于内存存储,读写性能高适合存储热点数据(热点商品、资讯、新闻)企业应用广泛 1、Redis入门 1.1、Redis简介 The open source, in-memory data store used by millions of developers as a …

福布斯发布2023云计算100强榜单,全球流程挖掘领导者Celonis排名17

近日,全球流程挖掘领导者Celonis入选福布斯2023 年云计算 100 强榜单,估值130亿美元,排名第17,Celonis已经是连续三年跻身榜单前20名。 本次榜单由福布斯与Bessemer Venture Partners和Salesforce Ventures联合发布,旨…

SpringBoot整合WebSocket实现定时任务消息推送

在平时项目开发中,肯定有很多小伙伴会需要实现定时向某个页面推送消息的功能,为了解决大家无从下手的问题,加哥今天展示一套简单的代码解决方案。 1.创建WebSocketConfig配置类 在这个类中注入ServerEndpointExporter,这个bean会…

putty使用记录

在官网下载并安装putty 一、SSH 二、FTP open 192.168.1.118 put -r C:\Users\Administrator\Desktop\test /opt/lanren312/test # 上传(文件夹) get -r /opt/lanren312/test C:\Users\Administrator\Desktop\test2 # 下载(文件夹&#xff…

教你如何实现接口防刷

教你如何实现接口防刷 前言 我们在浏览网站后台的时候,假如我们频繁请求,那么网站会提示 “请勿重复提交” 的字样,那么这个功能究竟有什么用呢,又是如何实现的呢? 其实这就是接口防刷的一种处理方式,通…

【linux--->高级IO】

文章目录 [TOC](文章目录) 一、五种IO模型概念1.阻塞IO2.非阻塞IO3.信号驱动IO4.多路复用/多路转接IO5.异步IO 二、非阻塞IO之fcntl应用1.fcntl系统调用接口介绍2.用fcntl实现非阻塞IO 三、多路转接IO之select应用1.select接口介绍2.使用select实现多路转接IOselect的优缺点 四…

算法练习--链表相关

文章目录 合并两个有序链表删除排序链表中的重复元素 1删除排序链表中的重复元素 2环形链表1环形链表2相交链表反转链表 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入&…

JVM面试题

JVM理论 #JVM内存模型# Java内存模型(JMM)? Java的内存模型决定了线程间的通信方式,JMM的模型是由主存和工作内存构成,两个线程想要正常通信需要将工作内存中的变量刷到主存中,另一个线程才能正确读取得…

SpringBoot 升级内嵌Tomcat

SpringBoot 更新 Tomcat 最近公司的一个老项目需要升级下Tomcat,由于这个项目我完全没有参与,所以一开始我以为是一个老的Tomcat项目,升级它的Tomcat依赖或者是Tomcat容器镜像,后面发现是一个SpringBoot项目,升级的是…

基于SpringBoot+LayUI的宿舍管理系统 001

项目简介 源码来源于网络,项目文档仅用于参考,请自行二次完善哦。 系统以MySQL 8.0.23为数据库,在Spring Boot SpringMVC MyBatis Layui框架下基于B/S架构设计开发而成。 系统中的用户分为三类,分别为学生、宿管、后勤。这三…

SQL ASNI where from group order 顺序 where和having,SQL底层执行原理

SQL语句执行顺序: from–>where–>group by -->having — >select --> order 第一步:from语句,选择要操作的表。 第二步:where语句,在from后的表中设置筛选条件,筛选出符合条件的记录。 …

STM32--EXTI外部中断

前文回顾---STM32--GPIO 相关回顾--有关中断系统简介 目录 STM32中断 NVIC EXTI外部中断 AFIO EXTI框图 旋转编码器简介 对射式红外传感器工程 代码: 旋转编码器工程 代码: STM32中断 先说一下基本原理: 1.中断请求发生&#xff1a…

Profibus-DP转modbus RTU网关modbus rtu和tcp的区别

捷米JM-DPM-RTU网关在Profibus总线侧实现主站功能,在Modbus串口侧实现从站功能。可将ProfibusDP协议的设备(如:EH流量计、倍福编码器等)接入到Modbus网络中;通过增加DP/PA耦合器,也可将Profibus PA从站接入…

MyBatis操作数据库常见用法总结2

文章目录 1.动态SQL使用什么是动态sql为什么用动态sql标签拼接标签拼接标签拼接标签拼接标签拼接 补充1:resultType和resultMap补充2:后端开发中单元测试工具使用(Junit框架) 1.动态SQL使用 以insert标签为例 什么是动态sql 是…

golang协程池(goroutine池)ants库实践

golang中goroutine由运行时管理,使用go关键字就可以方便快捷的创建一个goroutine,受限于服务器硬件内存大小,如果不对goroutine数量进行限制,会出现Out of Memory错误。但是goroutine泄漏引发的血案,想必各位gopher都经历过&#…

易服客工作室:初学者的终极WordPress SEO教程(入门指导)

改善WordPress SEO对于获得更多网站流量至关重要。可悲的是,大多数WordPress SEO指南对于新用户来说太技术性了。 如果您认真考虑增加网站流量,则需要注意WordPress SEO最佳做法。 在本WordPress SEO教程中,我们将分享WordPress SEO的主要技…

创建Springboot+vue3项目

项目概述创建springboot项目加入mybatis-plus支持1.加入依赖代码2.创建数据库实例3.yml文件的配置4.编写测试代码5.测试结果 创建vue项目报错错误一错误二错误三 项目概述 后端:Springboot、mybatis-plus、java 前端:nodejs、vue脚手架、element-ui 数据…

【Spring Boot 源码学习】自动装配流程源码解析(上)

自动装配流程源码解析(上) 引言往期内容主要内容1. 自动配置开关2. 加载自动配置组件3. 自动配置组件去重 总结 引言 上篇博文,笔者带大家从整体上了解了AutoConfigurationImportSelector 自动装配逻辑的核心功能及流程,由于篇幅…