录制第一个jmeter性能测试脚本2(http协议)

news2024/11/16 15:34:54

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

目录

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

二、性能测试脚本录制的实操(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 设置模拟用户数和启动时间


 欢迎访问我的免费课程 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

设置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 设置模拟用户数和启动时间

修改线程组的线程数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.coloradmin.cn/o/1227074.html

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

相关文章

ZC序列理论学习及仿真

文章目录 前言一、ZC 序列理论1、基本概念2、表达式3、ZC 序列一些定义①、自相关②、循环移位③、循环自相关④、循环互相关二、ZC 序列性质1、性质 1:恒包络,即等模2、性质 2:零循环自相关3、性质 3:固定循环互相关4、其他性质①、傅里叶变换后仍是 ZC 序列②、低峰均比③…

C语言基础篇4:变量、存储、库函数

1 局部变量和全局变量 在介绍局部变量和全局变量前,先了解一些关于作用域方面的内容。作用域的作用就是决定程序中的哪些语句是可用的,换句话说,就是程序中的可见性。作用域有局部作用域和全局作用域,那么局部变量就具有局部作用域…

【C++】:模板的使用

目录 1、泛型编程 2、函数模板 2.1、函数模板概念 2.2、函数模板格式 2.3、函数模板的原理 2.4、函数模板的实例化 2.6、模板参数的匹配原则 3、类模板 3.1、 类模板的定义格式 3.2、 类模板的实例化 4、非类型模板参数 5、模板的特化 5.1、函数模板特化 5.2、类模…

2.如何使用Python官方文档

文章目录 1.文档什么时候用2.Python 3.11有什么新的功能3.Python 3.11教程4.Python 标准库概述内置函数内置类型内置异常文本处理服务 1.文档什么时候用 一般是在接触到一门新的语言的时候,是要详细阅读的,因为很多在开发的时候踩的这些坑在文档里已经提…

基于Prometheus快速搭建网络质量监控平台

基于Prometheus快速搭建网络质量监控平台 前言 针对一些临时搭建的网络场景(例如:各种临时发布会,演唱会等),为了检验网络质量的以及确保管理员在网络出现异常情况时可以及时发现,需要部署一套监控软件用于…

a标签下载文件与解决浏览器默认打开某些格式文件的问题

前言 在实际项目中&#xff0c;我们通常会遇到这么一个需求&#xff1a;后端给前端返回一个任意文件类型的完整的url路径&#xff0c;前端拿到这个路径直接通过浏览器下载文件到本地。我想大家应该都会首先想到使用HTML中的<a>标签&#xff0c;&#xff0c;因为<a>…

国学---佛系算吉凶~

佛系算吉凶咯~&#xff0c;正经走访深山庙宇&#xff0c;前辈老人&#xff0c;经过调研后&#xff0c;搭建的轻衍计算模型&#xff0c;团队对国学的初次信息化尝试。 共享给有需要的朋友&#xff0c;准不准没关系&#xff0c;开心最重要。 后续还有财富&#xff0c;事业&…

【Python】解析CPP类定义代码,获取UML类图信息

参考 & 鸣谢 CppHeaderParser - 官方文档Python解析C头文件win10直接获得文件绝对路径的方法总结 目的 解析CPP头文件中的类定义&#xff0c;获取UML中的属性。用于画UML类图。如下所示格式&#xff0c;图片来源-链接 即获取&#xff0c;类名&#xff0c;成员函数&#x…

05_SHELL编程之文本处理工具SED

typora-root-url: pictures课程目标 掌握sed的基本语法结构 熟悉sed常用的命令&#xff0c;如打印p&#xff0c;删除d&#xff0c;插入i等 Windows&#xff1a;​ Linux&#xff1a; vim vi gedit nano emacs 一、sed介绍 1. sed的工作流程 首先sed把当前正在处理的行保存…

python urllib open 头部信息错误

header 有些字符在 lighttpd server 中无法正常解析,需要转换 quteo 可以转换 就跨平台而言,Rust 和 python 一样优秀,看了在stm32 上使用 Rust 进行编程,从一定程度上,而言&#xff0c;稳定和安全性要比C 开发的好的多,说出来可能不信&#xff0c;在单片机上是可以对空指针进行…

力扣周赛372 模拟 思维 位运算 java

100131. 使三个字符串相等 ⭐ AC code class Solution {public int findMinimumOperations(String s1, String s2, String s3) {int len1 s1.length();int len2 s2.length();int len3 s3.length();int n Math.min(len1,len2);n Math.min(n,len3);int i 0;while(i < n…

代码随想录二刷 | 数组 | 移除元素

代码随想录二刷 &#xff5c; 数组 &#xff5c; 移除元素 题目描述解题思路 & 代码实现暴力解法双指针法 题目描述 27. 移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用…

Ubuntu(Linux)的基本操作

基本操作三步走 1、输入vim code.c点击i&#xff08;出现insert&#xff09;表示可以编辑代码编辑代码之后按下esc&#xff08;退出编辑模式&#xff09;按下shift:&#xff08;冒号&#xff09;wq&#xff08;退出文件&#xff09;2、输入gcc code.c&#xff08;进行编译代码…

RobotFramework框架之导入自己打包的python程序(十五)

引言 RobotFramework自动化框架&#xff08;以下简称RF&#xff09;之前文章我们讲了通过import第三方的library&#xff08;RequestsLibrary等&#xff09;&#xff0c;在实际项目中第三方的包并不能满足我们的需要&#xff0c;此时我们可自己编写python模块&#xff08;.py文…

命令执行相关函数及各类命令执行绕过技巧

相关函数 &#xff08;命令注入&#xff09; 命令执行的绕过

MySQL 的执行原理(五)

5.6 再深入查询优化 5.6.1. 全局考虑性能优化 5.6.3.1. 为什么查询速度会慢 在尝试编写快速的查询之前&#xff0c;需要清楚一点&#xff0c;真正重要是响应时间。如果把查询看作是一个任务&#xff0c;那么它由一系列子任务组成&#xff0c;每个子任务都会消耗一定的时间。…

YOLOv8优化策略:轻量级Backbone改进 | VanillaNet极简神经网络模型 | 华为诺亚2023

🚀🚀🚀本文改进:一种极简的神经网络模型 VanillaNet,支持vanillanet_5, vanillanet_6, vanillanet_7, vanillanet_8, vanillanet_9, vanillanet_10, vanillanet_11等版本 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,…

大模型的语言能力

NLP作为一个领域为基础模型开辟了道路。虽然这些模型在标准基准测试中占据主导地位&#xff0c;但这些模型目前获得的能力与那些将语言描述为人类交流和思维的复杂系统的能力之间存在明显的差距。针对这一点&#xff0c;我们强调语言变异的全部范围&#xff08;例如&#xff0c…

【设计模式】创建型设计模式

创建型设计模式 文章目录 创建型设计模式一、概述二、单例模式三、工厂模式3.1 简单工厂模式&#xff08;静态工厂模式&#xff09;3.2 工厂方法模式3.3 抽象工厂模式3.3 工厂模式小结 四、原型模式五、建造者模式 一、概述 这些设计模式提供了一种在创建对象的同时隐藏创建逻…

Java入门篇 之 抽象类接口

本篇碎碎念&#xff1a;个人认为压力是一种前进的动力&#xff0c;但是不要有太多压力&#xff0c;不然会使心情烦躁&#xff0c;会控制不住自己的情绪&#xff0c;会在一个临界值爆发&#xff0c;一旦爆发&#xff0c;将迟迟不能消散 今日份励志文案: 努力的背后必有加倍的赏赐…