性能测试—Jmeter工具

这篇具有很好参考价值的文章主要介绍了性能测试—Jmeter工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


性能测试

开源平台:metersphere

1. 术语介绍

  • 响应时间(Response time):对请求作出响应所需要的时间。

    在互联网上对于用户响应时间,有一个普遍的标准。2/5/10秒原则。

  • 并发用户数(concurrent users):在同一时间段内访问系统的用户数量。

  • 吞吐量(Throughput):单位时间内系统处理的客户请求的数量。

    对web系统, 吞吐量主要以请求数/秒页面数/秒或是字节数/秒来体现。

  • 性能计数器(Counter):描述服务器或操作系统性能的指标

    如: windws系统的使用内存数(Memory In Usage)、**进程时间(Total Process Time)**等。

  • 思考时间(Think time):也称”休眠时间” 或”等待时间”。

    从业务角度讲, 是指用户进行操作时,每个请求之间的间隔时间。

2. 方法

  • 负载测试(Loading Testing): 通过不断在被测系统上增加压力,直到性能指标超过预定指标或者系统资源使用已达到饱和状态

    这种测试方法的主要目的是找到系统处理能力的极限, 使用这种测试方法的时候应该考虑到业务的应用场景是否符合业务的实际特点,这样才能使得测试结果具有实际意义。

  • 压力测试(Stress Testing): 是测试系统在一定饱和状态下,(例如: CPU、内存)等在饱和使a用情况下,能够处理的会话能力以及系统是否会出现错误

    这种测试方法主要检查系统处于压力情况下的应用表现, 一般通过模拟负载等方法使系统资源使用达到较高的水平(如:CPU使用率达到75%以上,内存使用率达到70%以上的情况下, 测试系统的响应时间,系统有没有出现错误, 使用这种方法一般用于测试系统的稳定性)

3. 应用场景

  • 能力验证:

    指验证系统在某种条件下是否达到了某种性能,如验收测试。

  • 能力规划:

    指验证系统是否满足在未来一段时间的用户增长需求。

  • 性能调优:

    指发现系统性能瓶颈后,需要对针对系统某些方面作出调整以解决瓶颈问题。

  • 缺陷发现:

    指以发现缺陷为主要目的,而将性能测试作为一种手段。

4. 工具(Jmeter)

4.1 介绍

Apache JMeterApache组织开发的基于Java的性能测试工具。用于对软件做性能测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。JMeter可以用于测试FTP、HTTP、RPC、JUNIT、JMS、LDAP、WebService(Soap) Request以及Mail和JDBC(数据库性能测试)。也会被用来做回归和功能测试

  • 启动:

    路径 :D:\\jmeter-5.6.2\bin\jmter.bat

    可以设置到 Windows 系统变量中

4.2 元件和组件
4.2.2 元件
  • 多个类似功能组件的容器(类似于类)

性能测试—Jmeter工具,测试工程师,jmeter

4.2.1 组件
  • 实现独立的某个功能(类似方法)
4.3 作用域
  • 作用域原则
    • 取样器:核心,不和其他元件相互作用,没有作用域。
    • 逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用。
    • 其他元件:
      • 如果父节点是取样器,该元件只对父节点起作用。
      • 如果父节点不是取样器,其作用域是父节点下的所有子节点及其后代节点。
4.4 参数化
  1. 用户定义的变量(配置元件的组件)

  2. csv数据文件设置

  3. 用户参数(前置处理器的组件)

  4. 函数:

    __counter:计数器函数(True:每个用户独立的计数器;False:全局计数器)

    __Random:随机数函数(参数一:范围最小值;参数二:范围最大值)

    __time:获取当前时间函数(无参:获取时间戳;参数一:格式化时间 yyyy-MM-dd hh:mm:ss)

4.5 测试报告
jmeter –n –t zentao.jmx –l result.txt -e -o ./report –JthreadCount=3600 –Jtime=120

# -n 无图形化运行
# -t 运行脚本文件
# -l 将运行信息写入日志文件
# -e 生成测试报告
# -o 指定报告输出路径
4.6 BeanShell 脚本
4.6.1 BeanShell 场景
  • 接口签名
  • 数据库断言
  • 跨线程共享变量
  • RSA加密,混合加密
  • csv 数据驱动之后的断言
  • 调用开发的 jar 包,class 包,java 包
4.6.2 BeanShell 分类
  1. 前置处理器:BeanShell
  2. 后置处理器:BeanShell
  3. 定时器:BeanShell
  4. 采样器:BeanShell
  5. 断言:BeanShell
  6. 监听器:BeanShell
4.6.3 BeanShell 语法

特点:BeanShell有自己的语法,同时全面兼容 Java 语法

注意:BeanShell读写变量的时候传的是 String 类型

  1. 打印调式
log.info("Hello World!")
log.error("错误日志!")
System.out.println("Hello World!")
  1. Vars(局部变量)
  • 作用:读写 Jmeter 的局部变量(只能在一个线程中使用变量)
  • Vars 设置和提取的变量可以和当前线程组的其他任何组件的局部变量互相设置值和取值。
  • 意义:在于单线程读写变量的值。
// 获取局部变量
String name = vars.get("name");

// 设置局部变量
vars.put("name","LiSi");
  1. Props(全局变量)
  • 作用:读写 Jmeter 的全局变量(在多线程中使用变量)

  • Props 设置和提取的变量可以在别的线程组使用。

  • 意义:在于跨线程读写变量的值。

// 在 A 线程
// 设置全局变量
props.put("name","LiSi");

// 在 B 线程
// 获取全局变量
String name = props.get("name");	// 只作用于获取全局变量的对象中

// 实现在 B 线程中都可以使用的变量
// 设置 B 线程局部变量
vars.put("name",name);
  1. prev(响应体)
  • 作用:获取前一个取样器的响应体数据(在单线程中)
  • 意义:前后组件之间的数据联通。
// 获取响应体数据
String response= prev.getResponseDataAsString();
log.info("响应体:" + response)

// 对响应体进行 JSON 解析
// 步骤一:包地址 - https://mvnrepository.com/artifact/org.json/json/20210307
import org.json.*;

JSONObject responseJson = new JSONObject(response);
String token = responseJson.get("body").get("token");

// 步骤二:包地址 - https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path
String token = JsonPath.read(response,"$.body.token");
  1. 引入 Java 文件
// 导入文件
// 第一种导入方式:
source("D:\\Test.java");

// 第二种导入方式:在整个测试计划中加入Java包
import lisi.Test;

// 加密代码
Int num = new Test().jiami(10,20);

// 打印数据
log.info(num.toString());
4.6.4 加密

主流加密方式:1:MD5;2:SHA256;3:Base64(调函数);4:RSA(调用jar包);5:签名;6:混合加密;

  • 原理:各种字段的拼接组合 + 各种加密规则的调包使用
4.7 持续集成
4.7.1 Ant
  • 介绍:Ant 是 Jmeter 的插件,相当于 Shell 用来自动化运行 Java 文件

  • 官网:Apache Ant - 二进制分布

  • 下载:https://dlcdn.apache.org//ant/source/apache-ant-1.10.14-src.zip

  • 配置

  1. 配置 Ant 中的 build.xml 路径:D:\apache-ant-1.10.14

未完待续···············文章来源地址https://www.toymoban.com/news/detail-644767.html

到了这里,关于性能测试—Jmeter工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 初识性能测试工具Jmeter

    (1)Jmeter下载地址:https://jmeter.apache.org/download_jmeter.cgi; (2)Java运行环境下载地址:https://www.oracle.com/java/technologies/downloads/; (3)JAVA尽量配置到环境变量中去; (4)Jmeter解压出来; (1)Windows的点击jmeter/bin/下的jmter.bat; (2)mac和linux点击jmeter.sh; (3)点击Options—

    2023年04月08日
    浏览(34)
  • JMeter性能测试工具详解

    1、JMeter简介 Meter 是轻量级的接口性能测试工具,同时具备一定程度的接口自动化测试能力。 JMeter 支持多协议,其中较适合测试使用公有协议(如 HTTP、JDBC 等)的服务或模块,特别适合 B/S 结构的后台性能系统。 JMeter 有大量第三方插件,也可以比较方便的编写适合自己使用

    2023年04月08日
    浏览(35)
  • 性能测试工具:如何学习JMeter?

    JMeter是一个广泛应用于Web应用程序性能测试与负载测试的开源负载测试工具,学习JMeter则可以协助软件测试工程师更好地进行自动化性能测试与负载测试,本文就来介绍下如何学习JMeter。 1. 应用场景 (1) Web应用程序、数据库服务器、FTP服务器、SOAP和RESTful Web服务的性能测试和

    2024年02月02日
    浏览(40)
  • 自动化测试工具之 Jmeter性能测试

    1.性能测试概念: 通过自动化测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试 2.性能测试条件 系统基础功能测试验证完成 系统趋于稳定 3.性能测试基本流程 需求分析 (1)系统信息调研 (2)业务信息调研 (3)性能需求评估   判断是否进行

    2023年04月09日
    浏览(46)
  • 性能测试工具Jmeter学习和使用

    摘要 : 在日常的开发中,软件测试人员能够对程序进行功能上的测试以确保用户的正常使用,但对于一个需要发布在服务器上供多用户同时使用的软件而言,还需要模拟多用户同时使用的场景,对站点进行性能测试。但安排100个人同时访问测试站点显然是不可行的,此时就

    2024年01月18日
    浏览(37)
  • 性能测试工具 Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能

    目录 前言 ActiveMQ 介绍 准备工作 编写jndi.properties添加到ApacheJMeter.jar 中 下载 ActiveMQ 配置 Jmeter 进行测试 点对点 (Queues 队列)

    2024年02月15日
    浏览(34)
  • 微信小程序性能测试——启动性能专项测试

    微信小程序性能测试主要可以分为两个方面, 启动性能 和 运行时的性能 。 其中 小程序启动 是用户体验中极为重要的一环,启动耗时过长会直接造成小程序用户流失,影响用户体验。一般来说用户等待时间超过3秒,用户就有很大概率放弃等待,尤其是在广告场景,小程序

    2024年02月10日
    浏览(31)
  • 性能测试工具 Jmeter 做 Http 接口测试 :编写自定义函数

    目录 一、 前言 二、 编写自定义函数的步骤 1. 新建一个工程,导入 jmeter jar 包。 2. 新建 package:stressTest.functions 3. 新建一个类继承 AbstractFunction,重写以下方法: 4. 打包 5. 将打出来的 jar 包拷贝至 jmeter 的目录: 6. 运行

    2024年02月15日
    浏览(35)
  • 【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?

    目录 前言 wrk 优点 缺点 jmeter 优点 缺点 locust 优点 缺点 总结 资料获取方法 当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择wrk?jmeter?locust?还是loadrunner呢? 今天,笔者将根据自己使用经验,针对jmeter、locust、wrk和loadrunner常用的性能测试工具进行简单介

    2024年02月14日
    浏览(34)
  • 适合程序员的DB性能测试工具 JMeter

    背景 1、想要一款既要能压数到mysql,又要能压数到postGre,还要能压数到oracle的自动化工具 2、能够很容易编写insert sql(因为需要指定表和指定字段类型压数据),然后点击运行按钮后,就能直接运行;不要写应用代码,因为我比较懒 3、可以指定测试时间,或者TPS等执行时行

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包