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

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-测试树

图1-测试树

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

图2-请求参数

图2-请求参数

3.2使用标题管理器

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

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

4.小结

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

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

   好了,今天有关创建网络计划实战和创建高级Web测试计划就分享到这里。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

蓝桥杯真题讲解:三国游戏(贪心)

蓝桥杯真题讲解&#xff1a;三国游戏&#xff08;贪心&#xff09; 一、视频讲解二、正解代码 一、视频讲解 蓝桥杯真题讲解&#xff1a;三国游戏&#xff08;贪心&#xff09; 二、正解代码 //三国游戏&#xff1a;贪心 #include<bits/stdc.h> #define int long lon…

Springboot applicaton.yml logging output

debug model will show the SQL running process

同城即配年度观察:顺丰同城率先全年盈利,行业破局迎参考

即时消费趋势增强&#xff0c;“万物到家即时可得”成为了消费新常态。这创造出不可忽视的场景潜力&#xff0c;也在无形中让龙头企业的发展质量走到突破点。 3月11日晚&#xff0c;“第三方即时配送第一股”顺丰同城发布公告称&#xff0c;预期实现2023年全年盈利&#xff0c…

Python的os模块,必学干货!

1.os模块作用 主要是用来完成对文件或者文件夹的操作 2.导入os模块 import os 3.listdir() 查看指定目录下面所有的文件或者文件夹 print(os.listdir(r"D:\PycharmProjects\pythonProject")) # [.idea, 01_语法, 02_函数, 03_类型转换, 04_运算符, 05_分支结…

深入解析C++树形关联式容器:map、set及其衍生容器的使用与原理

文章目录 一、引言二、关联式容器的中的 paira.pair 的创建及使用b.pair 间的比较 三、 map 与 set 详解1. map 的基本操作2. set 的基本操作3.关联式容器的迭代器 四、 multimap 与 multiset 的特性五、关联式容器的使用技巧与注意事项1. 键值类型的选择与设计2. 自定义比较函…

专题1 - 双指针 - leetcode 15. 三数之和 - 中等难度

leetcode 15. 三数之和 - 点击直达 leetcode 15. 三数之和 中等难度 双指针1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理3. 时间复杂度 3. 代码实现4. 知识与收获 leetcode 15. 三数之和 中等难度 双指针 1. 题目详情 给你一个整数数组 nums &#…

Pytorch实战01——CIAR10数据集

目录 1、model.py文件 &#xff08;预训练的模型&#xff09; 2、train.py文件&#xff08;会产生训练好的.th文件&#xff09; 3、predict.py文件&#xff08;预测文件&#xff09; 4、结果展示&#xff1a; 1、model.py文件 &#xff08;预训练的模型&#xff09; impor…

吴恩达机器学习笔记 十七 通过偏差与方差诊断性能 正则化 偏差 方差

高偏差&#xff08;欠拟合&#xff09;&#xff1a;在训练集上表现得也不好 高方差&#xff08;过拟合&#xff09;&#xff1a;J_cv要远大于J_train 刚刚好&#xff1a;J_cv和J_train都小 J_cv和J_train与拟合多项式阶数的关系 从一阶到四阶&#xff0c;训练集的误差越来越小…

力扣串题:验证回文串2

整体思路&#xff1a;先找到可能存在问题的点&#xff0c;然后判断&#xff0c;如果一切正常则左指针会来到字符串中部 bool isValidPalindrome(char *s, int i, int j) {while (i < j) {if (s[i] ! s[j]) {return false;}i;j--;}return true; }bool validPalindrome(char …

禁用文本框输入中文,禁用中文输入法的ImeMode方法

之前遇到一个问题&#xff0c;在文本框切换输入法为中文后&#xff0c;使用扫码枪扫码时 会出现 比如条码NH123456 在文本框内会显示 你好23456 这里可以使用输入法编辑器ImeMode枚举属性 如果文本框只能输入英文数字&#xff0c;可以使用ImeMode.Disable&#xff0c;但默…

LeetCode(力扣)算法题_1261_在受污染的二叉树中查找元素

今天是2024年3月12日&#xff0c;可能是因为今天是植树节的原因&#xff0c;今天的每日一题是二叉树&#x1f64f;&#x1f3fb; 在受污染的二叉树中查找元素 题目描述 给出一个满足下述规则的二叉树&#xff1a; root.val 0 如果 treeNode.val x 且 treeNode.left ! n…

js【详解】ajax (含XMLHttpRequest、 同源策略、跨域)

ajax 的核心API – XMLHttpRequest get 请求 // 新建 XMLHttpRequest 对象的实例 const xhr new XMLHttpRequest(); // 发起 get 请求&#xff0c;open 的三个参数为&#xff1a;请求类型&#xff0c;请求地址&#xff0c;是否异步请求&#xff08; true 为异步&#xff0c;f…

Linux使用git命令行教程

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 git安装git仓库的创建.git 文件添加文件git 三板斧(add,commit,push)解释拓展git log.gitignore git安装 首先输入git --version看看有没有安装git 如…

Python语言在编程业界的地位——《跟老吕学Python编程》附录资料

Python语言在编程业界的地位——《跟老吕学Python编程》附录资料 ⭐️Python语言在编程业界的地位2024年3月编程语言排行榜&#xff08;TIOBE前十&#xff09; ⭐️Python开发语言开发环境介绍1.**IDLE**2.⭐️PyCharm3.**Anaconda**4.**Jupyter Notebook**5.**Sublime Text** …

操作系统——cpu、内存、缓存介绍

一、内存是什么 内存就是系统资源的代名词&#xff0c;它是其他硬件设备与 CPU 沟通的桥梁&#xff0c; 计算机中的所有程序都在内存中运行。其作用是暂时存放CPU的运算数据&#xff0c;以及与硬盘交换的数据。也是相当于CPU与硬盘沟通的桥梁。只要计算机在运行&#xff0c;CP…

【C++那些事儿】深入理解C++类与对象:从概念到实践(下)| 再谈构造函数(初始化列表)| explicit关键字 | static成员 | 友元

&#x1f4f7; 江池俊&#xff1a;个人主页 &#x1f525; 个人专栏&#xff1a;✅C那些事儿 ✅Linux技术宝典 &#x1f305; 此去关山万里&#xff0c;定不负云起之望 文章目录 1. 再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit 关键字 2. static成员2.1 概念…

EasyPoi 教程

文章目录 EasyPoi教程文档1. 前传1.1 前言 这个服务即将关闭,文档迁移到 http://www.wupaas.com/ 请大家访问最新网站1.2 Easypoi介绍1.3 使用1.4 测试项目1.5 可能存在的小坑 2. Excel 注解版2.1 Excel导入导出2.2 注解注解介绍ExcelTargetExcelEntityExcelCollectionExcelIgn…

【PTA】L1-026 L1-027(c++) L1-028 L1-029 L1-030 L1-031(C)第五天

目录 L1-026 I Love GPLT 题解&#xff1a; L1-027 出租 题解&#xff08;c&#xff09;&#xff1a; L1-028 判断素数 题解&#xff1a; L1-029 是不是太胖了 题解&#xff1a; L1-030 一帮一 题解&#xff1a; L1-031 到底是不是太胖了 题解&#xff1a; L1-026 I…

智慧城市与数字经济:共创城市新价值

随着科技的快速发展&#xff0c;智慧城市与数字经济已成为推动城市现代化进程的重要引擎。它们不仅提升了城市治理的效率和公共服务水平&#xff0c;还为城市经济发展注入了新的活力。本文旨在探讨智慧城市与数字经济如何共同创造城市新价值&#xff0c;并分析其面临的挑战与发…

R语言复现:如何利用logistic逐步回归进行影响因素分析?

Logistic回归在医学科研、特别是观察性研究领域&#xff0c;无论是现况调查、病例对照研究、还是队列研究中都是大家经常用到的统计方法&#xff0c;而在影响因素研究筛选自变量时&#xff0c;大家习惯性用的比较多的还是先单后多&#xff0c;P&#xff1c;0.05纳入多因素研究&…