录制第一个jmeter性能测试脚本2(http协议)——webtour
我们手工编写了一个测试计划,现在我们通过录制的方式来实现那个测试计划。也就是说‘’测试计划目标和上一节类似:让5个用户在2s内登录webtour,然后进入 页面进行查看。
目录
欢迎访问我的免费课程 PPT、安装包、视频应有尽有!
一.性能测试脚本录制的原理
二、性能测试脚本录制的实操(https)
1.搭建被测环境
2.创建测试计划
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.搭建被测环境
webtour环境的安装包以及启动方法如下:
链接: https://pan.baidu.com/s/1BaPe24jMGimiML31LDTcdw?pwd=5uef 提取码: 5uef
安装好后,浏览器上输入网址可以打开wetour http://127.0.0.1:1080/WebTours/
特别注意:
有的计算机使用127.0.0.1时,jmeter录制不到脚本,因此建议将127.0.0.1替换为你的本机ip地址。例如:http://10.9.31.5:1080/WebTours/
输入账号:jojo bean
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
设置port为80(空缺也可,空缺表示是缺省端口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-up为2s,进行性能测试
ok,至此,我们的测试计划就好了。是不是不大难,而且也挺有意思的,对吗?
大家应该能看懂聚合报告的各个列的含义,否则性能测试工作就没有意义了!
欢迎关注我的网易云课程
https://study.163.com/courses-search?keyword=%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95123#/?ot=5
相关文章:

录制第一个jmeter性能测试脚本2(http协议)——webtour
我们手工编写了一个测试计划,现在我们通过录制的方式来实现那个测试计划。也就是说‘’测试计划目标和上一节类似:让5个用户在2s内登录webtour,然后进入 页面进行查看。 目录 欢迎访问我的免费课程 PPT、安装包、视频应有尽有! …...

时间序列与 Statsmodels:预测所需的基本概念(1)
后文:时间序列与 statsmodels:预测所需的基本概念(2)-CSDN博客 一、说明 本博客解释了理解时间序列的基本概念:趋势、季节性、白噪声、平稳性,并使用自回归、差分和移动平均参数进行预测示例。这是理解任何…...

计算机网络(持续更新…)
文章目录 一、概述1. 计网概述⭐ 发展史⭐ 基本概念⭐ 分类⭐ 数据交换方式🥰 小练 2. 分层体系结构⭐ OSI 参考模型⭐TCP/IP 参考模型🥰 小练 二、物理层1. 物理层概述⭐ 四个特性 2. 通信基础⭐ 重点概念⭐ 极限数据传输率⭐ 信道复用技术🎉…...

BetterDisplay Pro for Mac(显示器校准软件)
BetterDisplay Pro是一款由waydabber开发的Mac平台上的显示器校准软件,可以帮助用户调整显示器的颜色和亮度,以获得更加真实、清晰和舒适的视觉体验。 以下是BetterDisplay Pro的主要特点: - 显示器校准:可以根据不同的需求和环境…...

Node.js之TCP(net)
Hi I’m Shendi Node.js之TCP(net) 最近使用Nodejs编写程序,需要用到自己编写的分布式工具,于是需要将Java版的用NodeJs重新写一遍,需要使用到TCP通信,于是在这里记录下Node.js TCP 的使用方法 依赖 需要使…...
何时使用Elasticsearch而不是MySql?
何时使用Elasticsearch而不是MySql? MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景。本文将从以下几个方面对它们进行比较和分析: 数据模型查询语言索引和搜索分布式和高可用性能和扩展性使用…...

nodejs微信小程序 +python+PHP+图书销售管理系统的设计与实现-网上书店-图书商城-计算机毕业设计
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...
云原生周刊:Istio 1.20.0 发布 | 2023.11.20
开源项目推荐 DevPod DevPod 是一款纯客户端工具,可在任何后端基于 devcontainer.json 创建可重现的开发人员环境。每个开发者环境都在一个容器中运行,并通过 devcontainer.json 进行指定。通过 DevPod 提供商,这些环境可以在任何后端创建&…...

Ajax基础(应用场景|jquery实现Ajax|注意事项)
文章目录 一、Ajax简介二、基于jquery实现Ajax三、使用Ajax注意的问题1.Ajax不要与form表单同时提交2.后端响应格式问题3、使用了Ajax作为请求后的注意事项 一、Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。…...

【SpringCloud】Eureka基于Ribbon负载均衡的调用链路流程分析
文章目录 前言1.调用形式2.LoadBalancerInterceptor3.负载均衡流程分析3.1 调用流程图3.2 intercept()方法3.3 execute()方法3.4 getServer()方法3.4 子类的chooseServer()方法3.5 getLoadBalancerStats().…...
Springboot和Vue+MYSQL项目(基本介绍+前后端结合初步项目)+maven+mybatis
一、基本知识 当我们谈论全栈开发时,通常指的是一个开发者能够处理整个应用程序的开发,包括前端(Front-End)和后端(Back-End)的所有层面。这三个基本的领域是: 前端开发(Front-End …...

基于单片机K型热电偶温度采集报警系统
**单片机设计介绍, 基于单片机K型热电偶温度采集报警系统 文章目录 一 概要简介系统特点系统组成工作原理应用领域 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 # 基于单片机K型热电偶温度采集报警系统介绍 简介 该系统是基于单片…...

利用OpenCV做个熊猫表情包 二
之前写了一篇 利用OpenCV做个熊猫表情包吧_Leen的博客-CSDN博客 回想起来觉得有点太弱了,意犹未尽,每次使用需要自己去手动截取人脸,清除黑边什么的才能使用demo去合成表情,无奈之前由于安装的vs,opencv版本都比较低…...
华纳云服务器怎么清理cdn缓存?
清理 CDN(内容分发网络)缓存通常需要通过 CDN 提供商的管理界面或 API 进行操作。不同的 CDN 提供商可能有不同的方法和步骤,以下是一个通用的清理 CDN 缓存的一般步骤: 1. 登录到 CDN 提供商的管理界面: 打开你所使用的 CDN 提供商的网站。 …...
python functools.wraps保留被装饰函数属性
作用 普通装饰器 ,会覆盖函数名称,并且 会替换 函数 文档字符串 介绍 functools.wraps(wrapped[, assigned][, updated]) This is a convenience function for invoking partial(update_wrapper, wrappedwrapped, assignedassigned, updatedupdated) …...
【多线程 - 11、死锁】
死锁 1、介绍 在 Java 中使用多线程,就会有可能导致死锁问题。死锁会让程序一直卡住,程序不再往下执行。只能通过中止并重启的方式来让程序重新执行。要尽可能避免死锁的情况发生 2、造成死锁的原因 互斥条件: 同一资源同时只能由一个线程读…...
flask实现session开发
要在Flask应用中实现会话(session)开发,你可以使用Flask内置的session模块。以下是一个示例代码,演示在Flask应用中启用和使用会话功能: from flask import Flask, session, redirect, url_for, requestapp Flask(__…...
paddle dataset
paddle实现图像旋转 import numpy as np from PIL import Image from matplotlib import pyplot as plt from paddle.vision.transforms import functional as F import cv2imagecv2.imread(./1.jpg) imagecv2.cvtColor(image,cv2.COLOR_BGR2RGB)# 图像旋转 opencv # imgR90 …...

接口自动化测试实战:JMeter+Ant+Jenkins+钉钉机器人群通知完美结合
前言 一、本地JAVA环境安装配置,安装JAVA8和JAVA17 二、安装和配置Jmeter 三、安装和配置ant 四、jmeter + ant配置 五、jenkins安装和配置持续构建项目 六、jenkins配置流程 前言 搭建jmeter+ant+jenkins环境有些前提条件,那就是要先配置好java环境,本地java环境…...

HAL库STM32串口开启DMA接收数据
STM32CubeMx的配置 此博客仅仅作为记录,这个像是有bug一样,有时候好使,有时候不好,所以趁现在好使赶紧记录一下,很多地方用到串口接收数据,DMA又是一种非常好的接收方式,可以节约CPU的时间&…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...