当前位置: 首页 > news >正文

【Jmeter】性能测试脚本开发——性能测试环境准备、Jmeter脚本编写和执行

文章目录

    • 一、常用的Jmeter元件
    • 二、性能测试环境准备
    • 三、编写Jmeter脚本
    • 四、执行测试脚本

一、常用的Jmeter元件

  1. 取样器-HTTP请求
    作用:发送HTTP请求
  2. 配置原件-HTTP请求默认值
    作用:设置HTTP请求的默认参数
  3. 配置原件-用户定义的变量
    作用:定义变量,可以供后面引用
  4. 后置处理器-JSON提取器
    作用:提取JSON相应结果中的内容
  5. 断言-响应断言
    作用:对响应结果进行断言
  6. 断言-JSON断言
    作用:对响应结果进行断言
  7. 监听器-查看结果树
    作用:用于Jmeter脚本调试时查看运行日志
  8. 监听器-聚合报告
    作用:用于Jmeter性能测试时查看运行结果

二、性能测试环境准备

  1. 特点
    (1)性能测试环境独立使用,其他测试人员不可使用该环境。
    (2)性能测试的环境要求与用户真实使用的环境完全一致。
    (3)硬件环境:硬件服务器的台数、硬件服务器的配置、网络环境。
    (4)软件环境:所有的操作系统、数据库、被测程序、第三方软件等软件。
    (5)使用场景的一致性:数据量和发送请求的负载量与用户环境一致。

  2. 如何达成环境一致
    (1)硬件环境:找运维人员申请。
    (2)软件环境:所有软件版本和配置找开发人员要,然后安装。
    (3)测试数据:通过python脚本构造相同数量级的数据
    (4)业务场景:通过需求分析和运营数据获取主要的业务操作和对应的并发指标。

  3. 测试数据的准备
    如下构造用户数据。在性能测试时需要模拟不同的用户进行登录操作,因此需要提前构造用户数据。

#导包
import pymysql
#创建连接
conn = pymysql.connect(host="192.168.65.129",user="litemall",password="litemall123456",database="litemall",port=3306,charset='utf8')
#创建游标
cursor = conn.cursor()
#添加用户的SQL语句
user_sql = "INSERT INTO `litemall`.`litemall_user` (`id`, `username`, `password`, `gender`, `birthday`, `last_login_time`, `last_login_ip`, `user_level`, `nickname`, `mobile`, `avatar`, `weixin_openid`, `session_key`, `status`, `add_time`, `update_time`, `deleted`) VALUES ('{}', '{}', '$2a$10$SrnVvS/D6N0XNd4MHNjQR.W3VUfJhOdBylPC3Ika0zTvmxyiJ52AS', '0', NULL, '2020-08-14 12:00:58', '192.168.91.1', '0', 'xiaoh', '{}', 'https://yanxuan.nosdn.127.net/80841d741d7fa3073e0ae27bf487339f.jpg?imageView&quality=90&thumbnail=64x64', '', '', '0', '2020-08-12 14:14:37', '2020-08-14 12:00:58', '0');"
#循环插入数据
user_start = 100000
for i in range(100000):user_id = user_start + iusername = "test" + str(user_id)mobile = "13012" + str(user_id)print("插入第{}条数据ID为{}".format(i+1,user_id))sql = user_sql.format(user_id,username,mobile)cursor.execute(sql)conn.commit()
#关闭游标
cursor.close()
#关闭连接
conn.close()

三、编写Jmeter脚本

  1. HTTP信息头管理器
    在这里插入图片描述

  2. HTTP请求默认值
    写法:写入协议、域名、端口、编码格式,在HTTP请求取样器中只需要写入路径、请求方法、参数即可。
    优点:在测试时,如果换了测试环境,直接修改HTTP请求默认值即可,不需要修改所有脚本。
    在这里插入图片描述

  3. 独立线程组
    (1)线程组名称建议修改为用例名称。
    (2)HTTP请求取样器的名称修改为用户名称。
    (3)每个HTTP请求需要添加断言。
    (4)如果请求URL中的参数可能为中文,建议将参数放入到下面参数列表中,并将中文参数勾选“编码”。
    例一: 简单测试用例——登录
    在这里插入图片描述
    HTTP请求——登录:
    在这里插入图片描述
    JSON断言:
    在这里插入图片描述
    响应断言:
    在这里插入图片描述
    例二:复杂测试用例——业务流程1
    在这里插入图片描述
    JSON提取器:
    在这里插入图片描述
    HTTP信息头管理器:
    在这里插入图片描述

  4. 聚合报告:
    在这里插入图片描述

  5. jp@gc - PerfMon Metrics Collector
    在这里插入图片描述

四、执行测试脚本

  1. 执行测试脚本的测试机
    执行性能测试前,需要根据要模拟的业务负载量来选择适当的测试机。
    (1)单机执行
    windows:图形化界面、操作简单;资源使用低,能模拟的并发数低。
    linux:命令行操作,操作难度高;资源使用率高,能模拟的并发数高。
    (2)分布式执行
    如果单台测试机(无论windows或linux)都无法满足负载量要求时,需要使用分布式的方法,使用多台测试机一起来模拟特定负载量的业务。

  2. 根据性能测试用例,模拟用户并发执行,记录对应的性能指标
    在这里插入图片描述

相关文章:

【Jmeter】性能测试脚本开发——性能测试环境准备、Jmeter脚本编写和执行

文章目录 一、常用的Jmeter元件二、性能测试环境准备三、编写Jmeter脚本四、执行测试脚本 一、常用的Jmeter元件 取样器-HTTP请求 作用:发送HTTP请求配置原件-HTTP请求默认值 作用:设置HTTP请求的默认参数配置原件-用户定义的变量 作用:定义…...

看好你家电视盒的后门!数千个Android电视盒感染了与欺诈相关的危险恶意软件

如果你从Android电视盒获得流媒体修复程序,则你的设备可能会被恶意软件所感染,这些恶意软件能够进行广告欺诈、创建假帐户,并通过悄悄地将你的数据转移到中国的服务器来销售对家庭网络的访问。 根据本周的一份新报告,网络安全公司…...

LeetCode 1251. 平均售价

题目链接:1251. 平均售价 题目描述 表:Prices Column NameTypeproduct_idintstart_datedateend_datedatepriceint (product_id,start_date,end_date) 是 prices 表的主键(具有唯一值的列的组合)。 price…...

TypeScript 笔记:String 字符串

1 对象属性 length 返回字符串的长度 2 对象方法 charAt() 返回在指定位置的字符 charCodeAt() 返回在指定的位置的字符的 Unicode 编码 concat 连接两个或更多的字符串 indexOf 返回某个指定的字符串值在字符串中首次出现的位置 lastIndexOf 从后向前搜索字符串&…...

蓝牙技术|Matter或能改变中国智能家居市场,蓝牙技术将得到进一步应用

近年来,智能家居开放协议标准Matter(目前版本 1.1)由连接标准联盟发布,该联盟是一个由数百家公司组成的全球性机构,旨在提供与物联网 (IoT) 相关的标准。例如,Matter 用于允许 Amazon Alexa、Apple Home、G…...

VB.NET vs. VB6.0:现代化编程语言 VS 经典老旧语言

目录 ​.NET背景: 特点: VB6.0背景: 特点: 两者之间的不同: 总结: 升华: .NET背景: VB.NET一种简单,现代,面向对象计算机编程语言,有微软开发,VB.NET是一种基于.NET Framework的面向对象…...

ViewPager、RecycleView实现轮播图

1.ViewPager实现轮播图形效果。 1&#xff09;layout中&#xff0c;PageIndicatorView轮播的View <RelativeLayoutandroid:layout_width"match_parent"android:layout_height"200dp"android:orientation"vertical"><androidx.viewpager…...

【FreeRTOS】【STM32】01从零开始的freertos之旅 浏览源码下的文件夹

基于野火以及正点原子 在打开正点原子的资料pdf时&#xff0c;我遇到了pdf无法复制粘贴的问题&#xff0c;这里有个pdf解锁文字复制功能的网址&#xff0c;mark一下。超级pdf 参考资料《STM32F429FreeRTOS开发手册_V1.2》 官方资料 FreeRTOS 的源码和相应的官方书籍均可从官…...

【PPT】ppt里面使用svg图标

要想编辑好的PPT&#xff0c;少不了小图标的美化&#xff0c;图标可以使PPT变得更有趣&#xff0c;更易懂&#xff0c;更美观。 对于png&#xff0c;主要处理它的颜色&#xff0c;可使用【重新着色】功能。 对于jpg&#xff0c;主要处理它的背景&#xff0c;删除背景后同png处…...

uni-app:实现页面效果4(echarts数据可视化)

效果 代码 <template><view><view><view class"title">概况</view><view class"line_position"><view class"line1"><view class"item"><view class"one">今日销售…...

vue实现echarts中 9种 折线图图例

let datas [{ DivideScore: 7, UserScore: 7.2, Name: 目标制定 },{ DivideScore: 7, UserScore: 7, Name: 具体性 },{ DivideScore: 7, UserScore: 7.5, Name: 可衡量性 },{ DivideScore: 7, UserScore: 7, Name: 可实现性 },{ DivideScore: 7, UserScore: 7, Name: 时间限定…...

redis实战-实现用户签到UV统计

BitMap功能演示 我们针对签到功能完全可以通过mysql来完成&#xff0c;比如说以下这张表 用户一次签到&#xff0c;就是一条记录&#xff0c;假如有1000万用户&#xff0c;平均每人每年签到次数为10次&#xff0c;则这张表一年的数据量为 1亿条 每签到一次需要使用&#xff08…...

作为创始人的价值观与心法,构建系统

价值观 绿色、健康、有趣、感恩、谦卑、责任、勇气、客观、冷静、自洽、尊重、价值、服务、善良、利他 作为co-founder衡量的一个很重要的标准就是这个人的人品&#xff0c;大家一起做事情的体验要好&#xff0c;才能有large energy&#xff0c;且流通。 乐观、通达&#xf…...

Go语言基础面经

1.go语言编程的好处是什么 编译和运行都很快。 在语言层级支持并行操作。 有垃圾处理器。 内置字符串和 maps。 函数是 go 语言的最基本编程单位。 2.说说go语言的select机制 select 机制用来处理异步 IO 问题 select 机制最大的一条限制就是每个 case 语句里必须是一个…...

服务器文件备份

服务器上&#xff0c;做好跟应用程序有关的文件备份&#xff08;一般备份到远程的盘符&#xff09;&#xff0c;有助于当服务器发生硬件等故障时&#xff0c;可以对系统进行进行快速恢复。 下面以Windows服务器为例&#xff0c;记录如何做文件的备份操作。 具体操作如下&#…...

剑指offer——JZ68 二叉搜索树的最近公共祖先 解题思路与具体代码【C++】

一、题目描述与要求 二叉搜索树的最近公共祖先_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 1.对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q&#xff0c;最近公共祖先LCA(T,p,q)表示一个节点x&#…...

[Spring] @Bean 修饰方法时如何注入参数

目录 一、Bean 的简单使用 1、正常情况 2、问题提出 二、解决方案 1、Qualifier 2、直接写方法名 三、特殊情况 1、DataSource 一、Bean 的简单使用 在开发中&#xff0c;基于 XML 文件配置 Bean 对象的做法非常繁琐且不好维护&#xff0c;因此绝大部分情况下都是使用…...

docker拉取镜像错误 missing signature key

您正在尝试使用 yum 在 CentOS 或 RHEL 系统上安装 docker-ce&#xff0c;但您遇到了一些问题。根据您提供的输出&#xff0c;这里有几个需要注意的点&#xff1a; 系统未注册: "This system is not registered with an entitlement server" 指示您的系统未注册。对于…...

基于可解释性特征矩阵与稀疏采样全局特征组合的人体行为识别

论文还未发表&#xff0c;不细说&#xff0c;欢迎讨论。 Title: A New Solution to Skeleton-Based Human Action Recognition via the combination usage of explainable feature extraction and sparse sampling global features. Abstract: With the development of deep …...

OpenCV4(C++)—— 仿射变换、透射变换和极坐标变换

文章目录 一、仿射变换1. getRotationMatrix2D()2. warpAffine() 二、透射变换三、极坐标变换 一、仿射变换 在OpenCV中没有专门用于图像旋转的函数&#xff0c;而是通过图像的仿射变换实现图像的旋转。实现图像的旋转首先需要确定旋转角度和旋转中心&#xff0c;之后确定旋转…...

ElementPlus el-tabs样式踩坑全记录:从‘这怎么改’到‘原来如此’的心路历程

ElementPlus el-tabs样式深度定制实战&#xff1a;从困惑到精通的全过程解析 第一次在产品需求文档里看到"标签页要设计得与众不同"时&#xff0c;我完全没意识到这个看似简单的需求会让我在ElementPlus的样式迷宫里转了三天的圈。作为团队里负责后台管理系统重构的前…...

Haneke最佳实践:10个技巧让你的图片缓存更高效

Haneke最佳实践&#xff1a;10个技巧让你的图片缓存更高效 【免费下载链接】Haneke A lightweight zero-config image cache for iOS, in Objective-C. 项目地址: https://gitcode.com/gh_mirrors/ha/Haneke Haneke是一款适用于iOS平台的轻量级零配置图片缓存库&#xf…...

WindowResizer终极指南:5分钟掌握Windows窗口强制调整技巧

WindowResizer终极指南&#xff1a;5分钟掌握Windows窗口强制调整技巧 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的Windows应用程序窗口而烦恼吗&#xff1f;无…...

FPGA加速储层计算:DPRR设计与时序数据处理优化

1. 储层计算与FPGA加速概述储层计算&#xff08;Reservoir Computing&#xff09;作为递归神经网络&#xff08;RNN&#xff09;的一种高效训练范式&#xff0c;近年来在时序数据处理领域展现出独特优势。与传统RNN需要调整所有连接权重不同&#xff0c;储层计算的核心思想是仅…...

5G 网络优化工程师是骗局吗?从业15年资深老工程师实话实说

01 5G 网优岗位&#xff0c;本身真实靠谱很多人一刷到 5G 网络优化工程师这个岗位&#xff0c;第一反应都是犹豫、怀疑&#xff1a;这到底是不是收割小白的骗局&#xff1f;我在通信行业深耕整整 15 年&#xff0c;也拿到过华为高级工程师认证&#xff0c;今天以业内老兵的身份…...

C语言状态模式实战:从设计思想到嵌入式状态机实现

1. 项目概述&#xff1a;从“状态”到“模式”的思维跃迁在嵌入式开发、游戏逻辑、网络协议解析乃至日常的业务流程控制中&#xff0c;我们常常会面对一个核心挑战&#xff1a;如何优雅地管理一个对象随着内部条件改变而表现出的不同行为&#xff1f;比如&#xff0c;一个自动售…...

【NotebookLM+IEA/IRENA数据融合实战】:72小时内完成新型储能技术竞争力评估

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;NotebookLM能源技术研究 NotebookLM 是 Google 推出的基于 AI 的研究协作者工具&#xff0c;其核心能力在于对用户上传的文档进行语义理解与上下文驱动的问答。在能源技术研究领域&#xff0c;NotebookLM 可显…...

Elk内存管理深度解析:如何在100字节RAM上运行JavaScript

Elk内存管理深度解析&#xff1a;如何在100字节RAM上运行JavaScript 【免费下载链接】elk A low footprint JavaScript engine for embedded systems 项目地址: https://gitcode.com/gh_mirrors/elk/elk Elk是一个为嵌入式系统设计的超轻量级JavaScript引擎&#xff0c;…...

Python网络爬虫框架xcapy实战:任务驱动与反爬对抗

1. 项目概述&#xff1a;一个为现代应用量身定制的网络抓取框架最近在做一个需要大规模、高频率抓取网页数据的项目&#xff0c;传统的爬虫框架用起来总觉得有点“水土不服”。要么是异步处理不够优雅&#xff0c;遇到复杂的反爬策略就手忙脚乱&#xff1b;要么是配置过于繁琐&…...

AI写教材大揭秘:如何利用AI工具实现低查重教材创作?

谁没有遇到过编写教材框架的困扰&#xff1f; 谁没有遇到过编写教材框架的困扰&#xff1f;面对一个空白的文档&#xff0c;发呆半个小时&#xff0c;都不知道该如何开始——先讲基础概念还是直接给出案例&#xff1f;章节划分是依照逻辑走&#xff0c;还是依据课时安排&#…...