Jmeter测试必知的名词及环境搭建

那么什么是性能测试,它与功能测试有什么样的区别?

  • 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
  • 简单的来说性能测试和功能测试最大的区别在于功能测试通常有明确的需求说明。而性能测试却需要顾及方方面面。

测试人员眼中的性能测试需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。做性能测试时除了要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等方方面面。

所以,做性能测试的测试工程师也很不简单,难度远比功能测试高。

名词解释

jmeter中有很多的功能,还有一些容易让你产生错误理解的字词,让我们来看看有哪些吧。

【虚拟用户】:模拟现实中的实际用户,测试工具使用虚拟用户替代真实用户。

【性能测试场景】:可理解为一个具体的测试用例。它是测试资源包括测试脚本、运行设置、运行用户数等的集合。在场景中,可以定义并发用户的数目,定义要运行的脚本。在一个场景中,可以是单个流程,也可以是多个流程的混合。

【事务】:为一个流程中某个或某些环节的称谓,一个流程可称为一个大的事务,在这个大的事务中可包含许多小的事务。

【响应时间】:性能测试中衡量交易性能的重要手段。计算的是端到端的时间,通俗讲是指从客户端发出交易请求到得到响应的整个过程。

【平均响应时间】:指在测试过程中所有交易请求过程中平均的响应时间。也就是总共的交易量除以总共的交易时间。通常以秒为时间单位。

【90%响应时间】:将所有交易的响应时间按照从小到达排列,取排在90%的那个值,主要用于衡量系统的稳定性,比如两组数据 {1,3,5,10,16} 和 {5,6,7,8,9},他们的平均响应时间都是7,但是前面一组数据的90%响应时间值为16,而后面一组为9。越靠近90%,那么说明越稳定。

【TPS】:系统每秒处理交易的数量,单位是笔/秒。其是衡量系统处理能力的重要指标。通常表示一次交易申请和响应返回的过程。

【QPS】:通常指的是每秒查询率,是一台服务器每秒能够相应的查询次数,是对查询服务器规定时间内处理流量多少的称量标准。

【网络吞吐量】:指单位时间内通过网络成功传输的数据量。单位为Byte/s。

【资源利用率】:主要指服务器硬件资源,网络资源等如cpu,内存使用率,磁盘IO,网络IO等。

【思考时间】: 指在测试过程中虚拟用户在与系统产生交互之间的一个等待时间,用于模拟真实环境真实用户在使用系统时每一步操作的等待间隔时间。

【并发数】:指在某一时间,一定数量的虚拟用户同时对系统进行交互操作,通常性能测试工具可以设置集合点以加强并发点

性能测试意义

1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。

2.识别体系中的弱点:受控的压力可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。

3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。

检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。

4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

5.通过预埋未来数据,比如三年后的数据量来评估系统未来的支撑情况。

6.通过节点性能测试可以用于计算生产服务器节点配比。

环境搭建

Apache JMeter是Apache组织开发的基于Java的压力测试工具,是一款开源软件,并且是100%的纯java开发,可以在window和linux上面运行。

Jmeter下载地址:https://jmeter.apache.org/download_jmeter.cgi

Jmeter下载后可以配置下jmeter的环境变量
        (1)变量名:JMETER_HOME 变量值:  D:\apache-jmeter-5.0

(2)变量名:Path 变量值:  %JMETER_HOME%\bin;

(3)变量名:CLASSPATH 变量值:

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;

这里注意了:即使不配置环境也是可以使用的,只不过需要进入到文件夹里面找到jmeter.bat双击打开即可。

官网下载的都是这种英文的,虽然也会有汉化的可以下载,不过没必要,jmeter还是比较人性化的,里面可以直接设置。

上面的是简体,下面的是繁体,设置完成后虽然不能完全汉化,但是也是够用了。

我们可以添加一个线程组,线程组中添加一个HTTP请求

这里说到HTTP请求,后续我们讲讲抓包,使用的工具是fiddler,可以自己去下载下来玩玩,除了jmeter可以用到fiddler,postman也是可以用到的,而且postman用到的更加的频繁。

除此之外我们在里面可以添加很多的小工具,可以断言,断言则需要根据具体所需进行对应的选择才行。

还有模式匹配规则,一般的话是包括,比如断言某一段文字,从登录界面跳转到主页面,主页面某些固定的文字信息,则可以用来断言,以上就是Jmeter测试必知的名词及环境搭建的详细内容,更多关于Jmeter测试名词及环境搭建的资料请关注我们其它相关文章!

(0)

相关推荐

  • 基于Jmeter生成测试报告过程图解

    相对于Loadrunner,Jmeter其实也是可以有测试报告产出的,虽然一般都不用(没有Loadrunner的报告那么强大是一方面),还是顺手写一下吧,其实方法在用命令运行jmeter的时候就已经说明了 1. 准备脚本文件 2.cmd中运行一下命令 - -jmeter-n-t test.jmx(脚本的绝对路径) -lresult.jtl(自定义的名称) -e-o \tmp\result_report(测试报告的绝对路径)例:jmeter -n -t C:\Users\ZC\Desktop\te

  • Jmeter分布式压力测试实现过程详解

    一.分布式压测原理 如下图(这个图说明的是要一台控制机,然后由这台控制机发压测脚本到每台远程执行机,然后由控制机收集执行机结果) 二.修改 Jmeter 配置文件 在主控机的jmeter的bin目录找到配置文件jmeter.properties.找到里面的remote_hosts 部分,修改内容为:remote_hosts=xx,xx代表的是压力机的ip:port.如果是多个压力机,之间使用[,]分隔 控制机端口修改,防止端口被占用(注意:控制机修改后,每台执行机的端口也要修改成一致) 电脑防火

  • jmeter 在linux服务器的安装和运行教程图解

    linux环境下使用就meter进行压力测试: 1.linux环境部署:在Linux服务器先安装jdk: 2.以jdk-8u172-linux-x64.tar.gz为例: 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.根据自己的服务器的机型选择:小编的是64位的,这里就以64位为例: 3.然后把下载tar.gz文件发送到服务器上: 这里我们可以使用xshell,连接服务器,同时也要下载xftp来

  • jmeter如何自动生成测试报告

    1.准备.jmx脚本文件 2.在脚本文件路径下执行cmd命令: jmeter -n -t test.jmx -l result.jtl -e -o /tmp/ResultReport 参数解析: ● -n: 非GUI模式执行JMeter ● -t: 执行测试文件所在的位置 ● -l: 指定生成测试结果的保存文件,.jtl文件格式 ● -e: 测试结束后,生成测试报告 ● -o: 指定测试报告的存放位置 ● /tmp/ResultReport :手动创建的 ResultReport 报告文件夹的路

  • Jmeter测试必知的名词及环境搭建

    那么什么是性能测试,它与功能测试有什么样的区别? 性能测试是通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试 简单的来说性能测试和功能测试最大的区别在于功能测试通常有明确的需求说明.而性能测试却需要顾及方方面面. 测试人员眼中的性能测试需要考虑全面的性能,包括用户.开发.管理员等各个视角的性能.做性能测试时除了要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等方方面面. 所以,做性能测试的测试工程师也

  • docker环境搭建JMeter+Grafana+influxdb可视化性能监控平台的教程

    目录 1.安装docker 2.安装及配置influxDB 3.Grafana安装及配置 4.Jmeter配置及压测一个接口 背景: 在用jmeter压测接口的时候发现其原生的监控起来不是很友好,在网上查阅的时候发现结合influxDB和grafana,出来的报告很炫酷,监听结果看起来很舒服很明了. 前言: InfluxDB:是一款用Go语言编写的开源分布式时序数据库.该数据库现在主要用于存储涉及大量的时间戳数据. 小数据量的时候还性能还不错,但是数据量大一点,性能问题就体现出来了.不过只是收集

  • Linux下PHP+Apache的26个必知的安全设置

    PHP是一种开源服务器端脚本语言,应用很广泛.Apache web服务器提供了这种便利:通过HTTP或HTTPS协议,访问文件和内容.配置不当的服务器端脚本语言会带来各种各样的问题.所以,使用php时要小心.以下是Linux下PHP+Apache的26个PHP程序员必知的安全方面的设置 为PHP安全提示而提供的示例环境 文件根目录(DocumentRoot):/var/www/html 默认的Web服务器:Apache(可以使用Lighttpd或Nginx来取代Apache) 默认的PHP配置文

  • Java语言的11大特点(Java初学者必知)

    Java简介 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程  . Java具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移植性.多线程.动态性等特点 Java可以编写桌面应用程序.Web应用程序.分布式系统和嵌入式系统应用程序等 . Java是一种简单的,面向对

  • pycharm必知的一些简单设置方法

    前言 对于刚刚下载好的pycharm,初学者使用会有一些问题,这里将介绍关于字体,背景,这些简单的设置将会提升编程的舒适度(下面以PyCharm 2019.3.3 x64为例) 注:版本之间有些细节会改变 一.字体的设置 如图,点击左上方的File 找到settings选项,进入 找到Editor,打开 里面会有一个Font 选项,打开 找不到的也可以通过上面的搜索框搜索 看上图,1 是使用的字体     2 是字体的大小     3 是行间距 注:1.字体中的 Consolas 一般用的比较多

  • GO必知必会的常见面试题汇总

    目录 引言 值类型和引用类型 值类型有哪些? 引用类型有哪些? 值类型和引用类型的区别? 垃圾回收 一图胜千言 堆和栈 栈 堆 切片 比较 比较的详解 深拷贝和浅拷贝 操作对象 区别如下: new和make new 特点 举个例子: 使用技巧 make make函数的函数签名 特点 使用技巧 小结:new与make的区别 go的map实现排序 解决思路 代码实现: 运行结果 逃逸分析 最后,听我说 引言 今年互联网的就业环境真的好糟糕啊,好多朋友被优化. 我们平常在工作中除了撸好代码,跑通项目之

  • Python必知必会之os模块实例详解

    目录 Python os 模块 os模块的常用操作 os.path模块 os.open()模块 总结 Python os 模块 os是“operating system”的缩写,os模块提供各种 Python 程序与操作系统进行交互的接口,使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性 注意 一定要使用 import os 而不是 from os import * .这将避免内建的 open() 函数被 os.open() 隐式替换掉,因为它们的使用方式大

  • MYSQL必知必会读书笔记第十和十一章之使用函数处理数据

     mysql简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 拼接字段 存储在数据库表中的数据一般不是应用程序所需要的格式.我们需要直接从数据库中检索出转换.计算或格式化过的数据:而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化. 计算字段(字段 = 列,不过数据库列一般称为列,而字段通常用于计算字段中)并不实际存在于数据库表中,计算字段是运行时在select语句内创建的

  • JavaScript必知必会(七)js对象继承

    对象继承inherit var o = { r: }; var c = function f() { }; c.prototype = o; c.r = ; alert(o.r);//被继承的属性值未发生改变.alert(c.r);//c中r覆盖了o中的属性. 如何调用o中的r属性呢. var o = { r: }; var c = function f() { }; c.prototype = o; alert(o.r);// 被继承的属性值未发生改变. alert(c.r);//查询r属性,

  • JavaScript必知必会(十) call apply bind的用法说明

    call 每个func 都会继承call apply等方法. function print(mesage) { console.log(mesage); return mesage; } print.call(this, "cnblogs");//cnblogs call(thisAgr,agr1,agr2...) ,call方法第一个传递一个context上下文.后面是参数的个数. apply apply(thisAgr,[agr1,agr2]),apply方法和call的用法一样,

随机推荐