软件测试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 }引用。

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

.:匹配任何字符串。

*:零次一次或多次。

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

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

匹配数字: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 成功出现
相关推荐
wangbing11253 小时前
开发指南067-单元测试
单元测试
大霞上仙5 小时前
jmeter学习(7)beanshell
学习·jmeter
大霞上仙5 小时前
jmeter学习(1)线程组与发送请求
java·学习·jmeter
路上^_^7 小时前
Jmeter入门
jmeter
害羞的白菜8 小时前
Nginx基础详解5(nginx集群、四七层的负载均衡、Jmeter工具的使用、实验验证集群的性能与单节点的性能)
linux·运维·笔记·jmeter·nginx·centos·负载均衡
搁浅°87917 小时前
spring6启用Log4j2日志
单元测试·log4j
攸攸太上1 天前
JMeter学习
java·后端·学习·jmeter·微服务
surfirst1 天前
举例说明 .Net Core 单元测试中 xUnit 的 [Theory] 属性的用法
单元测试·.netcore·xunit
回眸&啤酒鸭2 天前
【回眸】Tessy 单元测试软件使用指南(四)常见报错及解决方案与批量初始化的经验
单元测试·tessy