录制第一个jmeter性能测试脚本2(http协议)_图书管理系统

 我们手工编写了一个测试计划,现在我们通过录制的方式来实现那个测试计划。也就是说‘’测试计划目标和上一节类似:让5个用户在2s内登录图书管理系统,然后进入 页面进行查看。

目录

 欢迎访问我的免费课程 PPT、安装包、视频应有尽有!

一.性能测试脚本录制的原理

二、性能测试脚本录制的实操(https)

1.搭建被测环境

2.创建测试计划

2.为线程组添加3个测试元件:缓存管理器、cookie管理器以及HTTP请求默认值

3.添加线程组

4.为测试计划添加HTTP测试脚本录制器

5.将浏览器的代理服务器指向HTTP测试脚本录制器

6.启动HTTP测试脚本录制器

7.浏览器上执行你要录制的操作

8.录制结束后,在HTTP测试脚本录制器的右侧面板上点击stop按钮,停止录制;

​9.取消浏览器的代理设置

10.为脚本增加监听器,以便收集测试结果

12 保存脚本后,运行脚本,

13.添加定时器,模拟用户停顿

14.将第一个请求都设置为 获取嵌入资源

 15.执行脚本

16.取消对嵌入资源的请求选项

17 提取动态session值

18 在登录请求中,设置动态会话值 ${userSession}

20 添加调试取样器(debug sampler)

21 设置模拟用户数和启动时间

 欢迎访问我的免费课程 PPT、安装包、视频应有尽有!

软件测试与质量保证 (xueyinonline.com)​编辑https://www.xueyinonline.com/detail/219145327https://www.xueyinonline.com/detail/219145327

一.性能测试脚本录制的原理

首先我们来了解下jmeter性能测试脚本录制的原理,然后再来实操。

当我们打开某个网站的页面时,请求会被浏览器发送到网站服务器,服务器将响应返回给浏览器。

如果,我们的请求发送到了jmeter的代理服务器,然后由代理服务器转发到网站服务器,那么代理服务器就会把我们发送的请求录制下来。

如果我们能录制下来用户的请求,我们就能模拟多个用户发送请求,从而达到性能测试的目的。

​​

二、性能测试脚本录制的实操(https)

步骤前面几步与手工测试的几乎一样:   

1.搭建被测环境

图书管理系统环境的安装包以及启动方法如下:

链接: https://pan.baidu.com/s/1ekG9nl7KEZ8hPDOfcbWjoA?pwd=aqyy 提取码: aqyy 

解压后,按照文档解压启动。浏览器上输入网址可以打开图书管理系统

 http://Localhost:9000

特别注意:

有的计算机使用127.0.0.1或者locahost时,jmeter录制不到脚本,因此建议将127.0.0.1替换为你的本机ip地址。例如: http://你部署的服务器ip:9000

输入账号:admin  123456

2.创建测试计划

创建测试计划并命名webtour测试计划。添加注释:第一个录制的JMeter脚本(https)

​​

2.为线程组添加3个测试元件:缓存管理器、cookie管理器以及HTTP请求默认值

1)在线程组上点击右键菜单Add ->  Config Element ->  HTTP Cache Manager添加缓存管理器。缓存管理器在整个测试中将帮助管理用户缓存;
2)在线程组上点击右键菜单 Add ->  Config Element ->  HTTP Cookie Manager添加cookie管理器,它会在测试执行期间管理cookie。(也就是说jmeter要像真实用户使用浏览器访问网站时,浏览器会缓存和cookie管理一样,帮我们管理缓存和cookie)。
3)在线程组上点击右键菜单Add ->  Config Element -> HTTP Request Default来设置http请求默认值,
设置 portolcal http
设置Server Name or Ip设置为: 127.0.0.1

设置port80(空缺也可,空缺表示是缺省端口80)

​​

 

3.添加线程组

如下图所示,在测试计划上点击右键菜单 Add->Thread -> Thread Group 添加线程组

线程组名:登录,暂时设置模拟用户数为 1(带后期脚本调试完成后,再来设置用户数和启动时间),

​​

4.为测试计划添加HTTP测试脚本录制器

在测试计划上点击右键菜单 Add -> Non Test Elements -> HTTP(S) Test Scripts Recorder

 如下图所示,可以设置录制脚本的目标控制器

​ 如下图所示,大家可以根据需要设置要请求url的排除模式,即url符合指定条件的请求将不会被录制

为了录制时不录制其他网站的信息。也可以在 URL Patterns to Include 下添加 对url的过滤条件

例如。 采用  .*你要录制的域名.* 的方式( .*代表任意字符串),注意,如果要匹配一个点,则需要转义 \.

5.将浏览器的代理服务器指向HTTP测试脚本录制器

下面我来设置浏览器的代理服务器为本机127.0.0.1,端口号为8888(即指向了Jmeter代理服务器,即浏览器的请求都转发到了jmeter脚本录制器)。

下面以chrome浏览器为例说明,设置方法如下:

​​

​​

6.启动HTTP测试脚本录制器

点击HTTP测试脚本录制器的右侧面板上start按钮,启动录制;

7.浏览器上执行你要录制的操作

在浏览器中先打开webtour(http://10.9.31.5:1080/WebTours/ 注意此处ip地址和你部署webtour的ip地址有关),  然后完成登录,这时可以看到脚本已经录制到线程组下了。

​​

8.录制结束后,在HTTP测试脚本录制器的右侧面板上点击stop按钮,停止录制;


9.取消浏览器的代理设置

​​

10.为脚本增加监听器,以便收集测试结果

脚本已经录制好了,为测试计划添加一个查看结果树和聚合报告

12 保存脚本后,运行脚本,

运行一下脚本看看吧,奥,不错啊。结果正常。

13.添加定时器,模拟用户停顿

下面我们修改请求 /cgi-bin/login.pl,为其增加一个固定定时器,时间设置为0.5s,以模拟用户输入账号的停顿。

定时器会在请求发送前停顿指定的时间,这样能很好的模拟用户操作的停顿。

当定时器放在一个控制器下是,会对控制器下的所有请求产生作用;

当定时器放在一个请求下时,仅对该请求生效,该请求发送前会停顿指定的时间,

14.将第一个请求都设置为 获取嵌入资源

 15.执行脚本

可以看到结构树上,请求下嵌入资源也被请求了

16.取消对嵌入资源的请求选项

取消 retrive all embeded resource 一般这个不勾选,通过刚才的设置让大家感受下它的作用

17 提取动态session值

我问在nav请求上添加一个xpath提取器,将该属性值提取出来,发送登录请求时会用到

提取表达式://input[@name="userSession"]/@value 

18 在登录请求中,设置动态会话值 ${userSession}

20 添加调试取样器(debug sampler)

调试取样器可以查看变量的值

在查看结果树中可以查看到变量的值

21 设置模拟用户数和启动时间

修改线程组的线程数为2人,启动时间ramp-up2s,进行性能测试
ok,至此,我们的测试计划就好了。是不是不大难,而且也挺有意思的,对吗?

大家应该能看懂聚合报告的各个列的含义,否则性能测试工作就没有意义了!

欢迎关注我的网易云课程
https://study.163.com/courses-search?keyword=%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95123#/?ot=5

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

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

相关文章

【微服务】Spring Aop原理深入解析

目录 一、前言 二、aop概述 2.1 什么是AOP 2.2 AOP中的一些概念 2.2.1 aop通知类型 2.3 AOP实现原理 2.3.1 aop中的代理实现 2.4 静态代理与动态代理 2.4.1 静态代理实现 三、 jdk动态代理与cglib代理 3.1 jdk动态代理 3.1.1 jdk代理示例 3.1.2 jdk动态代理模拟实现…

【OpenCV】 OpenCV 源码编译并实现 CUDA 加速 (Windows)

OpenCV 源码编译并实现 CUDA 加速 Windows 1. 环境准备1.1 软件环境1. 2 源码下载 2. CMake编译项目2.1 创建cmake项目2.2 设置编译配置2.3 解决异常2.3.1 文件下载异常2.3.2 解决CUDA版本异常 2.4 编译项目 3. Visual Studio 编译项目4. 项目测试5. 总结 OpenCV是一个基于Apac…

Ubuntu 常用命令之 ln 命令用法介绍

ln命令在Ubuntu系统中用于创建硬链接或符号链接。硬链接是指向文件的物理地址,而符号链接(也称为软链接)是指向文件路径的引用。 命令格式:ln [选项]... [-T] 目标(源文件) 链接(目标文件&…

【FPGA】Verilog:编码器 | 实现 4 到 2 编码器

0x00 编码器(Encoder) 编码器与解码器相反。当多台设备向计算机提供输入时,编码器会为每一个输入生成一个与设备相对应的信号,因此有多少比特就有多少输出,以数字形式表示输入的数量。 例如,如果有四个输…

NAS搭建WebDAV服务同步Zotero科研文献

文章目录 一、Zotero安装教程二、群晖NAS WebDAV设置三、Zotero设置四、使用公网地址同步Zotero文献库五、使用永久固定公网地址同步Zotero文献库 Zotero 是一款全能型 文献管理器,可以 存储、管理和引用文献,不但免费,功能还很强大实用。 ​ Zotero 支…

重新认识Word——尾注

重新认识Word——尾注 参考文献格式文献自动生成器插入尾注将数字带上方括号将参考文献中的标号改为非上标 多处引用一篇文献多篇文献被一处引用插入尾注有横线怎么删除?删除尾注 前面我们学习了如何给图片,公式自动添加编号,今天我们来看看毕…

LSTM ——作业

习题6-4 推导LSTM网络中参数的梯度, 并分析其避免梯度消失的效果 习题6-3P 编程实现下图LSTM运行过程 1. 使用Numpy实现LSTM算子 import numpy as np # 创建一个numpy数组x,它是一个4x4的矩阵,包含9个元素 x np.array([[1, 0, 0, 1],[3, …

Unity中URP下的菲涅尔效果实现(URP下的法线和视线向量怎么获取)

文章目录 前言一、实现思路二、实现原理我们可以由下图直观的感受到 N 与 L夹角越小,点积越接近(白色)1。越趋近90,点积越接近0(黑色) 三、实现URP下的菲涅尔效果1、我们新建一个Shader,修改为最…

安全密码(字符串)

#include <stdio.h> #include <stdbool.h> #include <string.h> bool is_secure_password(const char* password); int main() {int M;char password[51];// 读取输入中的密码数量 Mscanf("%d", &M);// 处理每个密码for (int i 0; i < M; …

Pytorch:Tensorboard简要学习

目录 一、TensorBoard简介二、TensorBoard的安装与启动Tensorboard的安装Tensorboard的启动 三、TensorBoard的简单使用3.1 SummaryWriter()3.2 add_scalar()和add_scalars()3.3 add_histogram()3.4 模型指标监控 四、总结参考博客 一、TensorBoard简介 TensorBoard 是Google开…

17.Oracle中instr()函数查询字符位置

1、instr()函数的格式 &#xff08;俗称&#xff1a;字符查找函数&#xff09; 格式一&#xff1a;instr( string1, string2 ) // instr(源字符串, 目标字符串) 格式二&#xff1a;instr( string1, string2 [, start_position [, nth_appearance ] ] ) // instr(源字符…

typescript使用解构传参

看下面这个函数 interface Student {id: number;name: string;class: string;sex: string;}function matriculation(student: Student) {//...}我们要调用它,就需要传递一个实现了Student约束的对象进去 interface Student {id: number;name: string;class: string;sex: string…

C语言:将三个数从大到小输出

#include<stdio.h> int main() {int a 0;int b 0;int c 0;printf("请输入abc的值&#xff1a;");scanf_s("%d%d%d", &a, &b, &c);if (b > a){int tmp a;a b;b tmp;}if (c > a){int tmp a;a c;c tmp;}if (b < c){int t…

app分发平台哪个好点?手机app应用内测分发平台支持负载均衡的重要性

随着互联网的快速发展&#xff0c;内测分发平台扮演着越来越重要的角色。而在现代应用程序的开发和运营过程中&#xff0c;负载均衡技术是不可或缺的一部分。内测分发平台支持负载均衡对于提高系统的稳定性、可靠性和性能至关重要。那么什么是负载均衡又有哪些重要性。 图片来源…

在线学习平台,云课堂云教育类网站源码,在线题库+随身携带的刷题神器+视频安装教程

源码介绍 在线题库&#xff1a;由传统的线下学习模式改为在线学习。能够实现学员在线学习、练习、考试 优点&#xff1a;方便、便宜、自我管理、选择性更多 、成人教育 &#xff08;1&#xff09;公考&#xff1a;国考、省考、事业单位… &#xff08;2&#xff09;升学&…

数据结构期末考题之001

算法复杂度就是n&#xff08;0&#xff09;

C++ Qt开发:自定义Dialog对话框组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍自定义Dialog组件的常用方法及灵活运用。 在…

【上海大学数字逻辑实验报告】七、中规模元件及综合设计

一、实验目的 掌握中规模时序元件的测试。学会在Quartus II上设计序列发生器。 二、实验原理 74LS161是四位可预置数二进制加计数器&#xff0c;采用16引脚双列直插式封装的中规模集成电路&#xff0c;其外形如下图所示&#xff1a; 其各引脚功能为&#xff1a; 异步复位输…

在做题中学习(33):只出现一次的数字 II

137. 只出现一次的数字 II - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 1.首先想到出现三次的数&#xff0c;它们仨的任意一位都是相同的&#xff08;1/0&#xff09; 2.可以发现出现三次的数的某一位和a某一位在所有情况下%3最后的结果都和a的那一位相同&…

PMP项目管理 - 风险管理

系列文章目录 PMP项目管理 - 质量管理 PMP项目管理 - 采购管理 PMP项目管理 - 资源管理 PMP项目管理 - 风险管理 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in…