【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 + i
    username = "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. 根据性能测试用例,模拟用户并发执行,记录对应的性能指标
    在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值