当前位置: 首页 > 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. 根据性能测试用例,模拟用户并发执行,记录对应的性能指标
    在这里插入图片描述

http://www.lryc.cn/news/186740.html

相关文章:

  • 看好你家电视盒的后门!数千个Android电视盒感染了与欺诈相关的危险恶意软件
  • LeetCode 1251. 平均售价
  • TypeScript 笔记:String 字符串
  • 蓝牙技术|Matter或能改变中国智能家居市场,蓝牙技术将得到进一步应用
  • VB.NET vs. VB6.0:现代化编程语言 VS 经典老旧语言
  • ViewPager、RecycleView实现轮播图
  • 【FreeRTOS】【STM32】01从零开始的freertos之旅 浏览源码下的文件夹
  • 【PPT】ppt里面使用svg图标
  • uni-app:实现页面效果4(echarts数据可视化)
  • vue实现echarts中 9种 折线图图例
  • redis实战-实现用户签到UV统计
  • 作为创始人的价值观与心法,构建系统
  • Go语言基础面经
  • 服务器文件备份
  • 剑指offer——JZ68 二叉搜索树的最近公共祖先 解题思路与具体代码【C++】
  • [Spring] @Bean 修饰方法时如何注入参数
  • docker拉取镜像错误 missing signature key
  • 基于可解释性特征矩阵与稀疏采样全局特征组合的人体行为识别
  • OpenCV4(C++)—— 仿射变换、透射变换和极坐标变换
  • http.header.Set()与Add()区别;
  • vue-7-vuex
  • SSO单点登录和OAuth2.0区别
  • 【轻松玩转MacOS】基本操作篇
  • 华为ICT——第三章图像处理基本任务
  • (C++)引用的用法总结
  • Charles:移动端抓包 / windows客户端 iOS手机 / 手机访问PC本地项目做调试
  • 【AI】深度学习——人工智能、深度学习与神经网络
  • RK3288:BT656 RN6752调试
  • LLMs 蒸馏, 量化精度, 剪枝 模型优化以用于部署 Model optimizations for deployment
  • Milvus踩坑笔记