jmeter简单使用以及报告生成

第一次写文章,主要就是一些简单的自学笔记,记录一下自己以后能方便看,大家需要的话也可自行取用,这些年干下来,我发现内容不重要,重要的是思考。下面直接上正题。

前置准备

要进行jmeter测试,首先我们需要接口,接口从哪里来呢,我这边用让chatgpt帮我写了,不得不说,这个AI是真的强大,只要简单提问,他能帮你解决大部分问题。
在这里插入图片描述
具体代码如下,这边采用的是Flask框架对一张学生表进行增删改查


from flask import Flask, jsonify, request
import pymysql

app = Flask(__name__)

# 连接MySQL数据库,根据自己本地数据库进行设置
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='test')

# 查询学生信息
@app.route('/students', methods=['GET'])
def get_students():
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM student')
    students = cursor.fetchall()
    students_list = []
    for student in students:
        student_dict = {
            'id': student[0],
            'name': student[1],
            'age': student[2],
            'gender': student[3]
        }
        students_list.append(student_dict)
    return jsonify(students_list)

# 添加学生信息
@app.route('/students', methods=['POST'])
def add_student():
    data = request.get_json()
    name = data['name']
    age = data['age']
    gender = data['gender']
    cursor = conn.cursor()
    cursor.execute('INSERT INTO student (name, age, gender) VALUES (%s, %s, %s)', (name, age, gender))
    conn.commit()
    return jsonify({'message': 'Student added successfully'})

# 更新学生信息
@app.route('/students/<int:id>', methods=['PUT'])
def update_student(id):
    data = request.get_json()
    name = data['name']
    age = data['age']
    gender = data['gender']
    cursor = conn.cursor()
    cursor.execute('UPDATE student SET name=%s, age=%s, gender=%s WHERE id=%s', (name, age, gender, id))
    conn.commit()
    return jsonify({'message': 'Student updated successfully'})

# 删除学生信息
@app.route('/students/<int:id>', methods=['DELETE'])
def delete_student(id):
    cursor = conn.cursor()
    cursor.execute('DELETE FROM student WHERE id=%s', (id,))
    conn.commit()
    return jsonify({'message': 'Student deleted successfully'})

if __name__ == '__main__':
    app.run(debug=True)

#注:设计库表前记得先安装mysql,安装教程百度一下都有,我用的是mysql5.7版本
一般玩家都是先设计好数据库再进行编码,而我这里是先编好了代码,然后再去设计库表,不过问题不大,能实现功能就行,从代码中看出,学生表有4个字段,id,name,age,gender,一般的表设计来说,id是自增主键,name和gender为string类型,age的话为int,我这里用navicat(一个叫这个名字的数据库连接工具)直接进行表的创建,并且往里面插入了几条数据
在这里插入图片描述
在这里插入图片描述
也可通过命令来创表和插入数据,具体代码如下

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int(255) DEFAULT NULL,
  `gender` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

INSERT INTO `student` VALUES (1, '张三', 15, '女');
INSERT INTO `student` VALUES (2, '王五', 16, '男');
INSERT INTO `student` VALUES (3, '赵六', 17, '女');

然后就可以通过postman对启动的ip和接口的拦截路由对接口进行测试
在这里插入图片描述
在这里插入图片描述
接口调用成功后并前往数据据查看对应信息,上图我调用了新增接口,下图为新增的数据,其他接口也类似,不一个一个列举了,到这里,接口定位就完成了。
在这里插入图片描述

然后就是jmeter的安装,百度一下,jmeter运行依赖java环境,还有安装jdk,百度一下,我这边采用的jmeter版本是5.2.1,jdk版本为1.8。

jmeter目录介绍

在这里插入图片描述
backups:脚本备份目录,格式Jmx
bin目录:存放jmeter启动脚本,配置文件,模块文件
jmeter.bat 启动jmeter
jmeter.properties 核心配置文件

docs:离线帮助文档
extras:存放与第三方的集成构建文件,集成Ant Jenkins
lib:存放核心jar包
licenses:许可证文件

jmeter常用组件

1、测试计划:起点,所有组件的容器
2、线程组:代表一定数量的用户
3、取样器:像服务器发送请求的最小单元
4、逻辑控制器:结合取样器实现一些复杂的逻辑
5、前置处理器:在请求之前的工作
6、后置处理器:在请求之后的工作
7、断言:判断是否请求成功
8、定时器:负责在请求之间的延迟间隔。固定,高斯,随机
9、配置文件:配置信息
10、监听器:负责收集结果

顺序:非常重要
测试计划》线程组》配置元件》前置处理器》定时器》取样器》后置处理器》断言》监听器

作用域:非常重要
必须组件:测试计划,线程组,取样器
辅助组件:除了必须组件外

辅助组件作用于父组件,同级组件,以及同级组件下的所有子组件

在这里插入图片描述

线程组的重要参数说明:
1、线程数:用户数
2、Ramp-up:启动用户数的时间
3、循环次数 总请求数=线程数*循环次数

配置元件重要参数说明:
1、Http Cookie管理器 cookie:客户端发送给服务器的cookie(从第一次到第n次) ,set-cookie:服务器发送给客户端的cookie(只在第一次请求的时候),新建完后自动管理cookie
2、Http请求默认值
http:80 https:443,一般设置协议,服务ip,端口号
3、用户定义变量
自定义变量

取样器重要参数说明:
Http请求:如果部分参数不填写,就按照默认值
自动重定向:当发送请求返回状态码为30X,只会跳转到最终结果
跟随重定向:会记录每一步的路径
对post使用multipart/form-data:一般用于文件上传

jmeter简单食用

添加测试计划后,在测试计划下建立取样器,把自己写的接口写进去,具体参数如下
在这里插入图片描述
再添加响应断言
在这里插入图片描述
具体参数解释如下
响应文本:返回的json内容
响应代码:状态码
响应信息:ok
url样本:接口路径
文档(文本):返回的json数据以文本的形式去判断(相当于json转字符串)
忽略状态:当有多个断言时,一个失败了,另一个成功,那么结果是成功
其他不一一解释,字面意思

包括:响应内容包含需要匹配的字符串,大小写敏感,支持正则
匹配:响应内容要于匹配的字符串完全相同,大小写敏感,支持正则
相等:响应内容要于匹配的字符串完全相同,大小写敏感,不支持正则
字符串:响应内容包含需要匹配的字符串,大小写敏感,不支持正则

最后添加察看结果树并启动

在这里插入图片描述
当发现乱码时候可以切换编码格式为json,如下图
在这里插入图片描述

jmeter非GUI(界面)运行
jmeter -n -t HTTP请求1.jmx -l result.jtl 生成报告
-n 代表非界面方式运行
-t 指定jmx文件的位置
-l 指定生成jtl格式的结果

报告生成后可以新建查看结果树来查看jmeter报告
![在这里插入图片描述](https://img-blog.csdnimg.cn/7987ff20fcd4488d82099b909b1f6b44.pn
在这里插入图片描述

jmeter -n -t HTTP请求1.jmx -l result.jtl -e -o 文件夹名 ==>生成html报告
-e 代表生成html报告
-o 指定报告生成的文件夹(这个文件夹必须是空目录)
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值