当前位置: 首页 > 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 成功出现
http://www.lryc.cn/news/249059.html

相关文章:

  • 一文讲透Python函数中的局部变量和全局变量
  • 【LeetCode】每日一题 2023_11_23 HTML 实体解析器(调库/打工)
  • Flask SocketIO 实现动态绘图
  • 软著项目推荐 深度学习 植物识别算法系统
  • 自动驾驶HWP 功能规范
  • Ubuntu 环境下 NFS 服务安装及配置使用
  • vue.js如何根据后台返回来的图片url进行图片下载
  • 获取WordPress分类链接
  • <Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 5》(9)
  • Anthropic推出Claude 2.1聊天机器人;使用AI工具写作:挑战与策略
  • 2023-11-30 LeetCode每日一题(确定两个字符串是否接近)
  • 进程间通信基础知识【Linux】——上篇
  • OpenSSH(CVE-2023-38408)OpenSsh9.5一键升级修复
  • 10.30 作业 C++
  • Python开发运维:PyMongo 连接操作 MongoDB
  • 【Github】本地管理github分支
  • Spring Boot 项目中读取 YAML 文件中的数组、集合和 HashMap
  • Python正则表达式:match()和search()函数全面解读
  • AIGC ChatGPT4总结Linux Shell命令集合
  • 力扣labuladong——一刷day61
  • nacos配置变更导致logback日志异常
  • 【spring(五)】SpringMvc总结 SSM整合流程
  • 1、windows10系统下Qt5.12.0与卸载
  • WebGL/threeJS面试题扫描与总结
  • Qt connect()方法Qt::ConnectionType
  • HIVE SQL时间函数
  • linux磁盘的LVM、交换分区以及文件系统
  • 【HDFS】ActiveNamenodeResolver#getNamespaces 方法调用点梳理
  • 算法—双指针
  • ​[Oracle]编写程序,键盘输入n,计算1+前n项之和。测试案例:输入:10 输出:22.47​