Jmeter(五) - 从入门到精通 - 创建网络计划实战和创建高级Web测试计划(详解教程)

news2024/11/16 17:59:09

1.简介

  上一篇中我已经将其的理论知识介绍了一下,这一篇我就带着大家一步一步的把上一篇介绍的理论知识实践一下,然后再说一下如何创建高级web测试计划。

2.网络计划实战

  通过上一篇的学习,将其分类为:

    (1)不需要登录验证身份就可以操作的。

    (2)需要登录验证身份之后才能操作的。

2.1不需要登录

这里我就拿博客园来举例子,如博客园,你不需要登录验证身份,就可以执行阅读、查找和浏览博客园内的文章(前提是这些文章没有设置“只允许注册的用户访问”)。

2.1.1抓包

1.阅读博客园文章

1、浏览器上输入博客园地址,点击文章:如下图所示

 

2、fiddler抓包工具抓取博客园查找的过程。从下图红色圈住的部分可以看到查找的URL和请求查找发送的参数。如下图所示:

 

2.1.2阅读文章

按照抓包抓取到的参数,我们下一步就是用Jmeter模拟阅读博客园文章。

1.建立一个测试计划命名为:Test Blog Read Plan。如图下所示:

 

2.选中测试计划,添加线程组用户,命名为:Blog User。如下图所示:

注意:敲脑壳,敲黑板啦!!!这个就是一个用户阅读一次,如果要压测你可以设置多个用户同时阅读。

 

3.选中线程组,添加一个HTTP Header Manager(HTTP信息头管理器)。这个主要是为了避免Jmeter发送请求后,返回结果可能会出现状态码为403的错误。如下图所示:

注意:敲脑壳,敲黑板啦!!!这里HTTP信息头管理器,主要添加一个参数User-Agent。根据你抓包的header来填写即可。

 

4.选中线程组,设置一个http,发送http默认请求值,放入你需求测试的地址。这样做的好处就是后边的所有的http请求你就不再需要重复的写这个测试地址了。如下图所示:

注意:敲脑壳,敲黑板啦!!!本地搭建的Jenkins应用程序,那么测试地址就很清楚了,这里请求值填写如下:

(1)protocol(协议:http or https):目前博客园是https协议,所以这里填写Protocol:https

(2)测试地址为:博客园的地址,不用啰嗦大家都知道了,Sever Name or IP:www.cnblogs.com

(3)Port:(博客园没有端口)

 

5.选中线程组,添加一个http请求命名为:Read。如下图所示:

注意:敲脑壳,敲黑板啦!!!本地搭建的Jenkins应用程序,那么Read请求值,我们查看抓到登录请求包(2.2.1)就很清楚了,这里请求值填写如下:

(1)protocol(协议:http or https):目前这个是本地搭建的http协议,所以这里填写Protocol:https

(2)测试地址为:本地搭建,不用啰嗦大家都知道了,Sever Name or IP:www.cnblogs.com

(3)Port:(博客园没有端口)

(4)Method:是那种类型的请求就选择那种,这里选择get

(5)Path:阅读博客园文章的请求路径

(6)Content Encoding:编码这里没有填写,如果出现乱码,你可以填写utf-8和Gb2312试一下,即可。

 

6.选中线程组,添加一个结果树,命名为:Check Read Results,监听阅读博文是否成功。如下图所示:

 

2.2需要登录

同样的这里也拿博客园举例子,你如果要发布随笔、评论、点推荐等等的一系列操作,就需要你登录验证身份以后才能执行这些操作。但是由于博客园的登录机制改变宏哥就不拿博客园举例子,宏哥拿一个,宏哥在本地搭建的Jenkins的web应用程序来实战一下,删除一个job。但是这个job必须在登录以后才能删除,如果没有登录就会删除失败。

2.2.1抓包

1.登录

1、浏览器上登录jenkins,输入账号和密码,点击登录。如下图所示:

2、fiddler抓包工具抓取jenkins登录的过程。从下图红色圈住的部分可以看到登录的URL和请求登录发送的参数。如下图所示:

2.删除

1、我们前面讲过登录后新建任务后,那可以继续接着操作:删除刚才新建的任务。如下图所示:

2、用fiddler抓包,抓到删除新建任务的请求,从抓包结果可以看出,传的data参数是Jenkins-Crumb。如下图所示:

3.这个Jenkins-Crumb哪里来的呢?可以看上个请求的body。如下图所示:

2.2.2登录

按照抓包抓取到的参数,我们下一步就是用Jmeter模拟登录到Jenkins。

1.建立一个测试计划命名为:Test Jenkins Plan。如下图所示:

 

2.选中测试计划,添加线程组用户,命名为:Jenkins User。如下图所示:

注意:敲脑壳,敲黑板啦!!!这个就是一个用户登录一次,如果要压测你可以设置多个用户同时登录。

 

3.选中线程组,添加一个HTTP Header Manager(HTTP信息头管理器)。这个主要是为了避免Jmeter发送请求后,返回结果可能会出现状态码为403的错误。如下图所示:

注意:敲脑壳,敲黑板啦!!!这里HTTP信息头管理器,主要添加两个参数User-Agent和Content-Type。根据你抓包的header来填写即可。

 

4.选中线程组,设置一个http,发送http默认请求值,放入你需求测试的地址。这样做的好处就是后边的所有的http请求你就不再需要重复的写这个测试地址了。如下图所示:

注意:敲脑壳,敲黑板啦!!!本地搭建的Jenkins应用程序,那么测试地址就很清楚了,这里请求值填写如下:

(1)protocol(协议:http or https):目前这个是本地搭建的http协议,所以这里填写Protocol:http

(2)测试地址为:本地搭建,不用啰嗦大家都知道了,Sever Name or IP:localhost

(3)Port:8080(这里搭建的默认端口8080,你也可以在Tomcat的配置文件修改这个端口)

 

5.选中线程组,添加一个http请求命名为:Login。如下图所示:

注意:敲脑壳,敲黑板啦!!!本地搭建的Jenkins应用程序,那么Login请求值,我们查看抓到登录请求包(2.2.1)就很清楚了,这里请求值填写如下:

(1)protocol(协议:http or https):目前这个是本地搭建的http协议,所以这里填写Protocol:http

(2)测试地址为:本地搭建,不用啰嗦大家都知道了,Sever Name or IP:localhost

(3)Port:8080(这里搭建的默认端口8080,你也可以在Tomcat的配置文件修改这个端口)

(4)Method:是那种类型的请求就选择那种,这里选择post

(5)Path:登录的请求路径

(6)Content Encoding:编码这里没有填写,如果出现乱码,你可以填写utf-8和Gb2312试一下,即可。

 

6.选中线程组,添加一个cookie管理器,用来管理登录后的cookie。如下图所示:

注意:敲脑壳,敲黑板啦!!!cookie的添加一个值,这个也可以在抓包登陆请求中header查看到,这里宏哥就不细说了。

(1)Name:JSESSIONID

(2)Value:一串数字和字母

(3)Domain:localhost

 

7.选中线程组,添加一个结果树,命名为:Check Login Results,监听登录是否成功。如下图所示:

 

8.选中线程组,添加一个http请求命名为:Delete Item。如下图所示:

注意:敲脑壳,敲黑板啦!!!本地搭建的Jenkins应用程序,那么Delete请求值,我们查看抓到删除请求包(2.2.1)就很清楚了,这里请求值填写如下:

(1)protocol(协议:http or https):目前这个是本地搭建的http协议,所以这里填写Protocol:http

(2)测试地址为:本地搭建,不用啰嗦大家都知道了,Sever Name or IP:localhost

(3)Port:8080(这里搭建的默认端口8080,你也可以在Tomcat的配置文件修改这个端口)

(4)Method:是那种类型的请求就选择那种,这里选择post

(5)Path:删除的请求路径

(6)Content Encoding:编码这里没有填写,如果出现乱码,你可以填写utf-8和Gb2312试一下,即可。

 

9.选中线程组,添加一个结果树,命名为:Check Delete Results,监听删除job是否成功。如下图所示:

 

2.3JMeter运行查看运行结果

2.3.1不需要登录

1、点击绿色的按钮,运行Jmeter,如下图所示:

 

 2、查看JMeter运行结果,一个请求的监听结果都是绿色的,说明请求成功。如下图所示:

 

 (1)查看阅读是否成功,从结果看到博文内容,说明阅读成功。如下图所示:

 

2.3.2登录

1、Jenkins的新建任务里有“北京-宏哥”,如下图所示:

 

2、点击绿色的按钮,运行Jmeter,如下图所示:

 

 3、查看JMeter运行结果,两个请求的监听结果都是绿色的,说明请求成功。如下图所示:

 

(1)查看登录是否成功,从结果看到“admin”和“注销”,说明登录成功。如下图所示:

 

(2)可以看到登录成功后的,任务中有“北京-宏哥”。如下图所示:

 

(3)查看删除是否成功,从结果中没有看到“北京-宏哥”,说明删除成功。如下图所示:

 

4、查看Jenkins的新建任务,没有看到“北京-宏哥”,说明删除成功了,如下图所示:

 

3.制定高级Web测试计划

在本小节中,红儿将介绍一下如何创建高级 测试计划来测试网站。

有关基本测试计划的示例,请参阅构建Web测试计划。

3.1使用URL重写处理用户会话

如果您的Web应用程序使用URL重写而不是Cookie来保存会话信息,则您需要做一些额外的工作来测试您的站点。

为了正确响应URL重写,JMeter需要解析从服务器接收的HTML并检索唯一的会话ID。使用适当的HTTP URL重写修饰符 可以完成此操作。只需将您的会话ID参数的名称输入到修饰符中,它将找到它并将其添加到每个请求中。如果请求已经有一个值,它将被替换。如果是“缓存会话ID?” 如果选中,则将保存最后找到的会话ID,如果先前的HTTP示例不包含会话ID,则将使用该ID。

URL重写示例

下载此示例。在图1中显示了使用URL重写的测试计划。请注意,URL Re-writing修饰符已添加到SimpleController中,从而确保它只会影响该SimpleController下的请求。

图1-测试树

在图2中,我们看到URL重写修饰符GUI,它只有一个字段供用户指定会话ID参数的名称。还有一个复选框,用于指示会话ID应该是路径的一部分(用“;”分隔),而不是请求参数。

图2-请求参数

3.2使用标题管理器

该HTTP头管理器可以让你定制什么样的信息JMeter的HTTP请求头发送。此标头包含“用户代理”,“编译指示”,“推荐人”等属性。

该HTTP头管理器,像HTTP Cookie管理器,可能应该在线程组级别添加,除非出于某种原因,您希望为不同的指定不同的页眉HTTP请求在您的测试对象。

4.小结

4.1登录和删除前三个参数空白

1.细心地小伙伴或者童鞋们会从截图中发现宏哥的登录和删除的前三个参数都是空白的,什么也没有填写,那是因为前边的HTTP默认请求,所以这里不用填写,好处就从这里就看出来了,目前只是列举了两个请求,如果成百上千的请求是不是效果就更明显了。

   好了,今天有关创建网络计划实战和创建高级Web测试计划就分享到这里。灰常感谢您阅读到这里,如果您觉得不错,就帮忙点个推荐呗。

您的肯定就是我进步的动力。如果你感觉还不错,就请鼓励一下吧!记得随手点波  推荐  不要忘记哦!!!

别忘了点 推荐 留下您来过的痕迹

最后:下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

 加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。未来的你肯定会感谢现在拼命的自己!

 

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

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

相关文章

Openlayers map三要素(view,target,layers),及其他参数属性方法介绍

​​ 版本说明 Openlayers的实战教程 分为图文版 和 视频版, 这里的是图文版,包含基础知识介绍和实战的源代码,示例效果以gif动图的形式展现出来。 视频版 正在录制中,很快会上线,敬请期待~, 如有问题&am…

viewLifecycleOwner.lifecycleScope生命周期,kotlin

viewLifecycleOwner.lifecycleScope生命周期,kotlin viewLifecycleOwner.lifecycleScope.launch {viewLifecycleOwner.whenCreated {Log.d(TAG,"onCreated")}viewLifecycleOwner.whenStarted {Log.d(TAG,"onStarted")}viewLifecycleOwner.whenR…

FPGA中ROM初始化方法

一 读取txt数据文件进行初始化 parameter INIT_FILE "文件路径/Data.txt" (**注意文件路径中斜杠方向**) reg [DATA_WITDH - 1:0] ROM [DATA_DEPTH - 1:0];initial begin$readmemh(INIT_FILE, ROM, 0, DATA_DEPTH - 1); end Dat…

Vue UI 组件库

7.1.常用UI组件库 7.1.1.移动端常用UI组件库 VantCube UIMint UINutUI 7.1.2.PC端常用UI组件库 Element UIIView UI 7.2.element-ui基本使用 安装 element-ui:npm i element-ui -S src/main.js import Vue from vue; import App from ./App.vue;// 完整引入 i…

怎么发布QT程序的绿色版

记录一下,用QT Creator写窗口程序,编译好了以后在输出目录直接点击exe都会提示缺少各种dll 处理非常简单,在开始菜单找到QT相关的命令控制台你,如下,注意不要选择错了(这个非常关键,如果你是用V…

word选中所有表格的问题

1 首先在word文档中按下AITF8。名字无所谓,SelectAllTables 把下面的代码输入进去,运行,注意运行后等一会,就行了,大约30S,滑动滚轮就看就行 Sub SelectAllTables()Dim tempTable As TableApplication.Scre…

工作这么久了,还不懂如何使用纯前端实现分页吗?-假如后端一股脑返回给你所有数据,让你自个实现分页该怎么办

文章目录 一、如何使用elementUIvue实现前端分页二、通用的前端分页代码 有这么个场景,后端接口的列表数据没有做分页给我,相当于是直接返回所有的列表数据,比如有100条就返回100,但是前端显示,则需要做成分页&#xf…

VS+OpenCV字符动画ikun打篮球

目录 一、环境搭建实现效果模糊知识点资源 一、环境搭建 Visual Studio 2019VSopenCVVS2019配置opencv4.6.0手把手一步一步实现导出OpenCV的VS项目模板从第四步导出项目模板开始看VS安装easyx图形库教程easyx.h报错:无法打开源文件 “xxx.h“ 的解决办法 使用默认的…

tomcat基本了解与nginx的实例

目录 一.tomcat的简介 二.tomcat它是由三个容器组成 nginx的实例1 2.案例二 案例3 四案例4 五总结 一.tomcat的简介 Tomcat 是一个开源的 Java Web 应用服务器,它实际上是 Apache 软件基金会的 Jakarta 项目中的一个子项目。Tomcat 的主要作用是承载和运行基…

蓝桥杯专题-试题版-【分糖果】【矩阵翻硬币】【兰顿蚂蚁】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

7-WebApis-4

Web APIs - 4 目标: 了解DOM节点的增删改查,掌握利用数据操作页面,完成移动端通讯录案例 日期对象节点操作M端事件JS插件综合案例 日期对象 日期对象:用来表示日期和时间的对象 作用:可以得到当前系统日期和时间 Date是JavaSc…

Verilog基础之十一、移位寄存器实现

目录 一、前言 二、工程设计 ​2.1 工程代码 2.2 综合结果 2.3 仿真结果 一、前言 移位寄存器SRL在工程中属于使用频率较高个模块,可用于存储数据,实现串并转换;根据数据移动方向可分为左移寄存器,右移寄存器,左移…

UDP 的报文结构和特点

一.UDP报文的结构 这是存在于各大教科书上的 其实我们应该这样来看更好理解,从上到下从左到右 源端口号:发送方地址 目的端口号:接收方地址 UDP长度:UDP报头UDP载荷, 2个字节64KB(固定不变),这是UDP能接受的最大内容 校验和:检测数据是否出错 二.UDP特点 1.无连接: 直到对方端…

如何将采购报价请求流程自动化?

在当今快节奏的商业环境中,效率和速度是保持竞争力的关键。在采购管理中,企业经常为简化操作而努力的一个领域是报价请求过程。手动处理请求、与供应商沟通并跟踪答复,可能非常耗时且容易出错。 然而,随着像8Manage SRM等专业电子…

外键导致的事务问题的解决方案

Exception分析 异常内容: com.zaxxer.hikari.pool.ProxyConnection : HikariPool-1 - Connection com.mysql.cj.jdbc.ConnectionImpl192ef0c0 marked as broken because of SQLSTATE(08S01), ErrorCode(0) com.mysql.cj.jdbc.exceptions.CommunicationsExceptio…

英雄大战恶棍 VoxEdit 大赛

准备好踏上超乎想像的史诗之旅了吗?号召所有的创作者、梦想家和有远见的人,在令人振奋的英雄大战恶棍 VoxEdit 大赛中展示他们的艺术才能!准备好让你们最喜欢的英雄和卑鄙的恶棍以前所未有的方式变得栩栩如生吧! 踏入 VoxEdit 的领…

win11中文家庭版下载补丁的方法远程连接

前置知识 参考链接:关于开启WINDOWS家庭版RDPwrap远程桌面报错解决办法(如:not listening) 0、怎么关闭Windows防火墙? 0、windows安全中心怎么关闭 正文 1、关闭防火墙 2、关闭windows安全中心 3、按照链接&…

【数据库】MySQL的主从复制模式

MySQL的主从复制模式包括异步复制,全同步复制,半同步复制。MySQL默认为异步模式。MySQL5.7引入了一种新的半同步方案,并且在5.7引入了一个新的参数,rpl_semi_sync_master_wait_point,这个参数有两种取值,1&…

Zookeeper:什么是Zookeeper? ①

一、Zookeeper是什么 Zookeeper是一个开源的分布式协调服务框架,它是一个为分布式应用提供一致性服务的软件。 Zookeeper致力于提供一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务,是雅虎公司创建,是G…

Linux更新Firefox 52后突然没声音了?

如果你是一名 Linux 用户,将 Firefox 浏览器升级到了最新的 v52,却发现浏览器不再能播放声音了,你不是唯一遇到这个问题(http://www.omgubuntu.co.uk/2017/03/firefox-52-no-sound-pulseaudio-alsa-linux?_utm_source1-2-2&#…