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

软件测试jmeter基本使用

 1安装与配置

1.jdk下载

下载地址:https://www.oracle.com/java/technologies/downloads/#jdk18-windows(压缩包中会给)

 

 

 2.jmeter下载

Apache JMeter - Download Apache JMeter(压缩包中有)

 3.操作教学

打开软件后新建计划(新用户不用)

1.添加线程组

线程组——选择测试计划,右键-->添加-->线程-->线程组

补充

(1)线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。

(2)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。

(3)循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。

2.HTTP请求——选择线程组:右键-->添加-->取样器-->HTTP请求

作用:录入接口请求参数信息

 (1)请求名称,可不改

(2)Web服务器信息,网络协议(http/https)、域名或IP、端口号,可自行修改

(3)接口请求:请求方法(post/get)、请求路径、编码格式(utf-8),可自行修改

(4)参数传递:消息体数据存储JSON信息

http请求填写以这个为例

注意请求URL 、请求方法、请求负载 与下面类容相对应(名称自定义)

这里用户名密码是{"username": "NMG0001", "password": "123456", "nodeCode": "ZHYZ_BOSS"}

3.HTTP信息头管理器——选择线程组:右键-->添加-->配置元件-->HTTP信息头管理器

作用:可以存储请求头里面的信息

 

4.查看结果——选择线程组:右键-->添加-->监听器-->查看结果树

作用:查看接口运行结果 

 

运行后 

 5.Http请求默认值——选择测试计划:

右键-->添加-->配置元件-->HTTP请求默认值

可以将后续线程或者Http请求公共的内容提取出来共同使用

比如协议和服务器ip等

原本的Http请求就可以改为

加了http请求默认值之后,在单个http请求里面还填写了同样的数据,那么以哪个为准就近原则——就近原则!

6.Beanshell后置处理器——选择线程组:

右键-->添加-->后置处理器-->Beanshell后置处理器

Beanshell后置处理器处理接口加入prev.setDataEncoding("utf-8") 返回中文的解析

7.接口与线程之间的传参 需求:

登录接口的返回token传给查询列表接口

①json提取器

(1)添加json提取器:右键http请求-》添加-》后置处理器-》json提取器,JSON提取公式:$..字段名

我是取的token(Authorization)

 添加调试后置处理器便于查看

 ②正则表达式 (1)添加正则表达式:右键http请求-》添加-》后置处理器-》正则表达式提取器

 参数说明: 引用名称:下一个请求要引用的参数名称,如token ,则可用${token }引用。

正则表达式:():要提取的部分

 .:匹配任何字符串。

 *:零次一次或多次。

  ?:在找到第一个匹配项后停止

模板:用$$引用起来,如果表达式中有多个表达式,用$1$$2$...,如"data":"(.*?)","id":"(.*?)", 模板为: $1$$2$

 匹配数字:0代表随机取值,-1代表全部取值,一般默认0

缺省值:选中的情况下,若没有取得到值,给出默认值。 

 账号从文件表格中获取

8.参数化
(1)CSV Data Set Config方式
①新建CSV格式文件或者txt文件

 我这用的txt

 ②CSV——选择测试计划,

右键-->添加-->元件-->CSV data Sat config

 

 使用参数化变量:${变量名}

(3)数据库提取数据

①MySQL连接 拷贝解压后.jar驱动文件到JMeter安装目录“lib”文件夹下

 Jmeter中建立“JDBC Connection Configuation":配置元件 --JDBC Connection Configuation

 ①MySQL连接

参数说明:

a) Variable Name: 数据库连接池的名称,可以有多个jdbc connection configuration,每个可以起个不同的名称,与JDBC Request中Variable Name必须保持一致

b) Database URL: 数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称, 如: jdbc:mysql://localhost:3306/test

c) JDBC Driver class: com.mysql.jdbc.Driver

d) username:数据库登录的用户名

e) passwrod:数据库登录的密码

JDBC Request配置

 参数说明:

a) Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致

b) Parameter values:参数值

c) Parameter types:参数类型

d) Variable names:保存sql语句返回结果的变量名

e) Result variable name:创建一个对象变量,保存所有返回的结果

f) Query timeout:查询超时时间 g)

Handle result set:定义如何处理由callable statements语句返回的结果 

②JDBC Request配置

参数说明: SQL Query:输入sql语句;多条sql语句必须用“;”

Query Type:

Select Statement:仅支持测试select语句,并且一次只能测试一条

Callable Statement:只要语法正确,任何语句,再多的条数都能支持

如果是同时执行多条语句:JDBC Connection Configuration 中Database URL:配置中加上?allowMultiQueries=true 如:jdbc:mysql://localhost:3306/test?allowMultiQueries=true

 ③对提取的数据进行遍历

ForEach控制器 逻辑控制器->ForEach控制器

参数说明: Input Variable Prefix:输入变量前缀,本例中为:order_sn (与JDBC Requset中返回结果的Variable names:变量名一致)

Output variable name:输出变量名称,提供给其它控件引用 ,可自由命名,调用时使用该参数 Start index for loop(exclusive):循环开始的索引(默认从0开始,如果填写是2,实际是从2+1个开始执行)

End index for loop(inclusive):循环结束的索引 Add”_”before number:输入变量名称中是否使用“_”进行间隔。 

 查看结果

也可以加上 聚合报告便于观察

1.聚合报告

聚合报告中可以查看接口响应时间的情况,以及接口脚本执行过程中的错误率等情况,聚合报告中的时间单位为毫秒 响应时间主要参考平均值;测试目标对接口要求较高时参考90%

2.生成HTML格式的测试报告

dos窗口命令行方式 运行方法: ①保证cmd在Jmeter脚本所在目录打开 ②jmeter -n -t 脚本路径和名称 -l 日志名.txt -e -o 报告文件路径和目录名称 

 

如果出现这个问题

就将

 删掉

在运行指令
点击index.html 成功出现

相关文章:

软件测试jmeter基本使用

1安装与配置 1.jdk下载 下载地址:https://www.oracle.com/java/technologies/downloads/#jdk18-windows(压缩包中会给) 2.jmeter下载 Apache JMeter - Download Apache JMeter(压缩包中有) 3.操作教学 打开软件后新…...

一文讲透Python函数中的局部变量和全局变量

变量的作用域就是变量能够发挥作用的区域,超出既定区域后就无法发挥作用。根据变量的作用域可以将变量分为局部变量和全局变量。 1.局部变量 局部变量是在函数内部定义并使用的变量,也就是说只有在函数内部,在函数运行时才会有效&#xff0…...

【LeetCode】每日一题 2023_11_23 HTML 实体解析器(调库/打工)

文章目录 刷题前唠嗑题目:HTML 实体解析器题目描述代码与解题思路 结语 刷题前唠嗑 题目:HTML 实体解析器 题目链接:1410. HTML 实体解析器 题目描述 代码与解题思路 func entityParser(s string) (ans string) {return strings.NewRepla…...

Flask SocketIO 实现动态绘图

Flask-SocketIO 是基于 Flask 的一个扩展,用于简化在 Flask 应用中集成 WebSocket 功能。WebSocket 是一种在客户端和服务器之间实现实时双向通信的协议,常用于实现实时性要求较高的应用,如聊天应用、实时通知等,使得开发者可以更…...

软著项目推荐 深度学习 植物识别算法系统

文章目录 0 前言2 相关技术2.1 VGG-Net模型2.2 VGG-Net在植物识别的优势(1) 卷积核,池化核大小固定(2) 特征提取更全面(3) 网络训练误差收敛速度较快 3 VGG-Net的搭建3.1 Tornado简介(1) 优势(2) 关键代码 4 Inception V3 神经网络4.1 网络结构 5 开始训练5.1 数据集…...

自动驾驶HWP 功能规范

目 录 概述 1 目的 1范围 1术语及缩写 1设计与实验标准 1 设计标准 2设计标准执行优先顺序 2功能规范 Specification 4 功能描述 Functional Description 4 工作条件与应用范围 Application Scope 4道路交通 4天气与光线 4传感器方案及需求 5 驾驶员状态监控系统 5前视摄像…...

Ubuntu 环境下 NFS 服务安装及配置使用

需求:公司内部有多台物理服务器,需要A服务器上的文件让B服务器访问,也就是两台服务器共享文件,当然也可以对A服务器上的文件做权限管理,让B服务器只读或者可读可写 1、NFS 介绍 NFS 是 Network FileSystem 的缩写&…...

vue.js如何根据后台返回来的图片url进行图片下载

原创/朱季谦 最近在做一个前端vue.js对接的功能模块时,需要实现一个下载图片的功能,后台返回来的是一串图片url,试了很多种方法,发现点击下载时出来的效果,都是跳到一个新的图片网页,后来经过一番琢磨&…...

获取WordPress分类链接

CMS模板主题首页多以分类列表的形式展示内容&#xff0c;一般需要在适当位置添加某分类归档页面链接的按钮&#xff0c;下面的代码可以帮你实现。 代码一、通过分类别名获取Wordpress分类链接&#xff1a; <?php $catget_category_by_slug(‘wordpress’); $cat_linksget_…...

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 5》(9)

《Linux操作系统原理分析之Linux 进程管理 5》&#xff08;9&#xff09; 4 Linux 进程管理4.5 Linux 信号4.5.1 信号的作用和种类1.信号机制2.信号种类 4.5.2 信号的处理4.5.3 信号处理函数1&#xff0e;数据结构2&#xff0e; 处理函数 signal3&#xff0e;程序例 4 Linux 进…...

Anthropic推出Claude 2.1聊天机器人;使用AI工具写作:挑战与策略

&#x1f989; AI新闻 &#x1f680; Anthropic推出Claude 2.1聊天机器人&#xff0c;支持20万个Token输入和提高准确度 摘要&#xff1a;Anthropic推出了Claude 2.1聊天机器人及对应的AI模型&#xff0c;支持输入多达20万个Token&#xff0c;并在准确度上有所改善。Claude已…...

2023-11-30 LeetCode每日一题(确定两个字符串是否接近)

2023-11-30每日一题 一、题目编号 1657. 确定两个字符串是否接近二、题目链接 点击跳转到题目位置 三、题目描述 如果可以使用以下操作从一个字符串得到另一个字符串&#xff0c;则认为两个字符串 接近 &#xff1a; 操作 1&#xff1a;交换任意两个 现有 字符。 例如&…...

进程间通信基础知识【Linux】——上篇

目录 一&#xff0c;理解进程之间的通信 1. 进程间通信目的 2. 进程间通信的技术背景 3&#xff0c;常见的进程间通信 二&#xff0c;管道 1. 尝试建立一个管道 管道的特点&#xff1a; 管道提供的访问控制&#xff1a; 2. 扩展&#xff1a;进程池 阶段一&#xff1a…...

OpenSSH(CVE-2023-38408)OpenSsh9.5一键升级修复

yum install -y git cd /root git clone https://gitee.com/qqmiller/openssh-9.5p1-.x86_64.git cd openssh-9.5p1-.x86_64/ bash openssh_update.sh重启sshd&#xff1a; systemctl restart sshd 查看sshd状态&#xff1a; systemctl status sshd 重要的是按此操作升级完成…...

10.30 作业 C++

设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #include <iostream>using namespace std;clas…...

Python开发运维:PyMongo 连接操作 MongoDB

目录 一、理论 1.PyMongo模块 2.Mongo Shell 二、实验 1. Windows11安装MongoDB 7.0.4 2.Windows11安装MongoDB Shell 2.1.0 3.PyMongo 连接 MongoDB&#xff08;无密码方式&#xff09; 4.PyMongo 连接 MongoDB&#xff08;有密码方式&#xff09; 5.PyMongo 操作 Mo…...

【Github】本地管理github分支

本地管理github分支 学习一些开发tips。以下是万能的GPT教我的&#xff1a; 以下是一套基本的本地管理 GitHub 仓库的指令集。在执行这些指令之前&#xff0c;请确保已经在你的本地机器上安装了 Git 工具&#xff0c;并且已经在 GitHub 上创建了一个仓库。 克隆仓库&#xff1…...

Spring Boot 项目中读取 YAML 文件中的数组、集合和 HashMap

在 Spring Boot 项目中&#xff0c;我们经常使用 YAML 文件来配置应用程序的属性。在这篇博客中&#xff0c;我将模拟如何在 Java 的 Spring Boot 项目中读取 YAML 文件中的数组、集合和 HashMap。 1. 介绍 YAML&#xff08;YAML Aint Markup Language&#xff09;是一种人类…...

Python正则表达式:match()和search()函数全面解读

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python中&#xff0c;正则表达式是强大的工具&#xff0c;能够用于文本匹配、搜索和替换。re模块提供了许多函数来处理正则表达式&#xff0c;其中match()和search()是两个常用的函数。本文将深入探讨这两个函…...

AIGC ChatGPT4总结Linux Shell命令集合

在Linux中,Shell命令的数量非常庞大,因为Linux提供了各种各样的命令来处理系统任务。这些命令包括GNU核心工具集、系统命令、shell内置命令以及通过安装获得的第三方应用程序命令。以下是一些常见的Linux命令分类及其示例,但请注意,这不是一个全面的列表,因为列出所有命令…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...