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

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

目录

 欢迎访问我的免费课程 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.搭建被测环境

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 提取动态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/153517.shtml

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

相关文章

leetcode:交叉链表

题目描述 题目链接:160. 相交链表 - 力扣(LeetCode) 题目分析 我们先要搞清楚一个概念,单链表可以相交,但绝对不会交叉 原因如下: 单链表中,多个结点可以存一个结点的地址,但是一…

【算法挨揍日记】day22——面试题 17.16. 按摩师、213. 打家劫舍 II

面试题 17.16. 按摩师 面试题 17.16. 按摩师 题目描述: 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找…

国产高云FPGA:纯verilog实现视频图像缩放,提供6套Gowin工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐国产高云FPGA相关方案推荐国产高云FPGA基础教程 3、设计思路框架视频源选择OV5640摄像头配置及采集动态彩条跨时钟FIFO图像缩放模块详解设计框图代码框图2种插值算法的整合与选择 Video Frame Buffer 图像缓存DDR3 Memory Interface 4、Go…

Qml使用cpp文件的信号槽

文章目录 一、C文件Demo二、使用步骤1. 初始化C文件和QML文件,并建立信号槽2.在qml中调用 一、C文件Demo Q_INVOKABLE是一个Qt元对象系统中的宏,用于将C函数暴露给QML引擎。具体来说,它使得在QML代码中可以直接调用C类中被标记为Q_INVOKABLE的…

某手机大厂员工爆料:40岁被裁,每月给88000补贴,连续给12个月,第二年减半,感觉废掉了!...

精彩回顾:进了央企,拿了户口,却感觉被困住了。 人生没有所谓的终点,只有不断再出发的起点,裁员只是人生的一个转角,而非尽头。 在时代的浪潮下,即使身处大厂,依然难逃被裁员的命运。…

NX二次开发UF_CAM_ask_lower_limit_plane_usage 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_lower_limit_plane_usage Defined in: uf_cam_planes.h int UF_CAM_ask_lower_limit_plane_usage(tag_t object_tag, UF_PARAM_lwplane_usage_t * usage ) overview 概述 Query the usa…

Shell脚本:Linux Shell脚本学习指南(第二部分Shell编程)一

第二部分:Shell编程(一) 这一章我们正式进入 Shell 脚本编程,重点讲解变量、字符串、数组、数学计算、选择结构、循环结构和函数。 Shell 的编程思想虽然和 C、Java、Python、C# 等其它编程语言类似,但是在语法细节方…

Java Swing实现员工工资管理系统(含教程) 可带数据库 Java课程设计

7. 员工工资管理系统 视频教程: 【课程设计】员工工资管理系统-Java Swing-你的课程我设计 功能描述: 系统员工有"工号"、 “姓名”、“性别”、“岗位”、 "入职年份 "、"密码"等属性; 员工使用工号密码登录…

MacOs 删除第三方软件

AppStore下载的软件 如果删除AppStore下载的软件,直接长按软件,点击删除或拖到废纸篓就可以完成软件的删除 第三方软件 但是第三方下载的软件,无法拖进废纸篓,长按软件也没有右上角的小叉 可以通过以下方法实现对软件的卸载 …

2023美亚杯个人赛复盘(三)

案件基本情况: (一)案情 2023月8月的一天,香港警方在调查一起网络诈骗案件时,发现有三名本地男子,分別为李大輝(李大辉),浩賢(浩贤)和Elvis CHUI,并确信这三名…

软件安全检测赋能赣州发展,开源网安与赣州国投完成签约

​11月20日,开源网安与赣州章贡区数智国投科技有限公司签订投资协议,签约后双方将在赣州打造软件供应链安全检测中心,以强大的软件测试能力为数字政府、数字经济等领域提供全面安全检测和软件安全运营监测等服务,提升软件的安全与…

电商数据|电商API接口|电商数据分析都会用到的接口不用再找了

导读:上半年,网络零售行业发展迅速,货架电商、直播电商、生鲜电商等领域动作频频。京东“百亿补贴”上线,张勇宣布启动“16N”组织变革,盒马启动上市计划,拼多多APP新增直播入口,快手升级货架场…

JavaScript拖放操作的实现

在页面中设置2个框:一个是被拖放的框,一个是拖放的目的地框。在拖动的时候,只有当鼠标位于拖放的目的地框上方的时候,放开鼠标的时候,被拖放的框,才被移动到鼠标所在的位置;而在其他地方放开鼠标…

SVG 多边形 <polygon>,矩形<rect>的示例代码

本专栏是汇集了一些HTML常常被遗忘的知识,这里算是温故而知新,往往这些零碎的知识点,在你开发中能起到炸惊效果。我们每个人都没有过目不忘,过久不忘的本事,就让这一点点知识慢慢渗透你的脑海。 本专栏的风格是力求简洁…

WPS或Excel查找A列中有B列没有的值

就这一行代码: 在C列输入: IF(COUNTIF(B:B,A1)>0,"该行A列中值B列有","该行A列中值B列没有")

企业微信将应用安装到工作台

在上篇中介绍了配置小程序应用及指令、数据回调获取第三方凭证; 本篇将介绍如何将应用安装到企业工作台。 添加测试企业 通过【应用管理】->【测试企业配置】添加测试企业。 通过企业微信扫描二维码添加测试企业。 注意:需要扫描的账号为管理员权限…

蓝桥杯单片机综合练习——工厂灯光控制

一、题目 二、代码 #include <reg52.h>sfr AUXR 0x8e; //定义辅助寄存器sbit S5 P3^2; //定义S5按键引脚 sbit S4 P3^3; //定义S4按键引脚unsigned char led_stat 0xff; //定义LED当前状态 unsigned char count 0; //定义50ms定时中断累…

【Docker】从零开始:2.Docker三要素

【Docker】从零开始&#xff1a;2.Docker三要素 DockerDocker支持的系统CentOS DockerDocker三要素Docker镜像(Image):Docker容器(Container):1.从面向对象角度2.从镜像容器角度 Docker仓库(Repository) 总结 Docker docker官网&#xff1a;http://www.docker.com 仓库-Docker…

leetcode 每日一题复盘(11.20~11.26)

leetcode 746 使用最小花费爬楼梯 虽然是简单题但还是要说一下,感觉做题的思路还是不够清晰,好的是知道状态是最低花费,知道围绕所求的目标进行展开,倒推出递推公式 一开始写的递推公式是dp[i]dp[i-1]min(cost[i-2],cost[i-1]),写出了一个类似贪心算法的东西,归根结底还是对dp…

Android13 新增 Stable AIDL接口

问题描述&#xff1a; 我需要在netd aidl 中添加新的接口&#xff1a; 设置网卡MAC地址&#xff1a; void setHardwareAddress(in utf8InCpp String iface, in utf8InCpp String hwAddr); 背景&#xff1a; Android 10 添加了对稳定的 Android 接口定义语言 (AIDL) 的支持&…