JMeter-做性能测试从何开始
JMeter-性能测试
参考文档:https://jmeter.apache.org/usermanual/boss.html
一、问题
1、预计的平均用户数是多少(正常负载)?
2、预计的高峰用户数是多少?
3、考虑到这负载测试可能会使一台或多台服务器崩溃,什么时候是对我们的应用程序进行负载测试的好时间(下班时间或周末)?
4、应用程序有状态吗? 如果有,那应用程序如何管理状态的呢(用的cookie,会话重写还是其他方法)?
5、要达到的测试目的是什么?
二、资源
1、网络 :谁知道我们的网络拓扑情况? 如果遇到任何防火墙或代理问题,找谁帮忙解决。 如果能有一个专用测试网络(具有非常低的网络延迟)将是一件非常好的事情, 知道谁可以为您设置这将非常有用。 如果应用程序无法按预期扩展,谁可以帮忙添加其他硬件?
2、应用程序:谁知道我们要测试的应用程序是如何运行的? 正常测试顺序是:
小批量测试(我们可以对我们的应用进行基准测试吗?)
基准测试(平均用户数)
负载测试(最大用户数)
破坏性测试(我们的硬性限制是什么?)
测试过程可能会从黑盒测试发展到白盒测试(不同之处在于第一个不需要应用程序知识[被视为“黑盒子”],而第二个则需要应用程序的知识)。 在此过程中可能会发现应用程序的很多问题,因此请做好保护工作的准备。
三、平台
应该使用哪个平台来运行基准测试/负载测试?
该平台应该是一种广泛使用的硬件,并安装标准软件。请记住,如果您发布测试结果,则客户要做的第一件事就是雇用一名专业的人员对其进行验证。您最好尽可能地简化此人的工作。
对于Windows而言,Windows XP Professional系统已是最低要求了(其他系统的线程不能并发50-60个连接)
好的免费平台包括linux,BSD和Solaris Intel。如果您有更多钱,可以使用商业化的Linux。
对于非Windows平台,请用“ ulimit -n unlimited”来将每个进程可打开的文件数设置为不限制,并将该命令包括在用户帐户启动脚本(测试帐户的.bashrc或.cshrc脚本)中。
另请注意,某些Linux / Unix版本仅供服务器使用。这些通常很少或根本没有GUI支持,这样的操作系统应该可以在CLI模式下运行JMeter,但如果安装了最小的GUI环境,应可以在GUI模式运行JMeter。
随着进行大规模基准测试/负载测试,平台本身将成为限制因素。因此,有条件就用最好的硬件和软件。切记在发布的基准测试中应包括硬件/软件配置信息。
当您需要大量机器或想要测试网络延迟时,云可以为您提供帮助。 JMeter可以在云中几乎任何可用的架构上运行,因此可以轻松地安装在云实例上。如果您不想自己管理JMeter,则在Commercial Cloud PAAS中也支持JMeter。
不要忘记JMeter批处理(CLI)模式。出于以下几种原因,应在负载测试期间使用此模式:
如果您具有支持Java的功能强大的服务器,但可能没有快速的图形实现,或者您需要在远程登录。
与使用远程显示或客户端-服务器模式相比,批处理(CLI)模式可以减少网络流量。
用于GUI模式的Java AWT线程有时会通过阻止来更改注入行为
可以将批处理日志文件加载到工作站上的JMeter中进行分析,或者可以使用CSV输出并将数据导入电子表格中。
请记住,GUI模式用于脚本创建和调试,而不用于负载测试
四、工具
ping 这可以用来确定您是否可以到达目标站点。 可以指定选项,以便“ ping”提供与“ traceroute”相同的路由报告类型。
nslookup/dig 尽管用户通常会使用人类可读的Internet地址,但是您可能希望避免在执行基准测试/负载测试时避免DNS查找的开销。 这个工具可用于确定目标站点的唯一地址。
traceroute 如果您无法“ ping”目标站点,则可以使用它来确定问题(可能是防火墙或代理)。 它也可以用于估计总体网络延迟(在本地运行应提供尽可能低的网络延迟-请记住,您的用户将在可能繁忙的Internet上运行)。 通常,跳数越少越好。
五、如何增强JMeter?
有很多开源和商业提供商提供JMeter插件或其他资源以供JMeter使用。 其中一些列在JMeter Wiki上。 它们分为以下几类:
JMeterPlugins -扩展的JMeter插件
JMeterAddons -与JMeter一起使用的插件 ,浏览器,Maven和Jenkins的插件。
JMeterServices -第三方服务,例如 基于云的JMeter
请注意,这些在Wiki上的出现并不意味着任何Apache JMeter项目都认可。 任何支持请求都应直接联系相关的供应商。
六、为什么是Java?
为什么是java,而不是Perl或C? Perl可能是一个很好的选择,但除了Benchmark软件包似乎其他只给出了相当模糊的结果。而且,用Perl模拟多个用户是一个棘手的问题(可以通过从Shell脚本派生许多进程来模拟多个连接,但是这些不是线程,而是进程)。Perl社区大
如果您发现有人已经写了一些有用的东西,这可能是一个很好的解决方案。当然,C也是一个很好的选择(请查看Apache ab工具)。但是要编写所有基准测试应用程序所需的自定义网络,线程和状态管理代码。
Java为您免费提供了基准测试应用程序所需的自定义网络,线程和状态管理代码。 Java知道HTTP,FTP和HTTPS-以及RMI,IIOP和JDBC(更不用说cookie,URL编码和URL重写)。此外,Java为您提供了自动垃圾收集和字节码级别的安全性。
JMeter-做性能测试从何开始的更多相关文章
- 使用Jmeter做性能测试
上周刚刚做完项目的性能测试.今天整理和总结一下,随便分享给大家. 首页呢,测试前,我们是有明确的性能指标的,而且测试环境和数据都已准备好,业务分析.场景分析大家根据自己的项目系统进行分析设计,我们选用 ...
- 【转】使用JMeter做性能测试的心得
企业应用开发过程中,性能测试是很重要的一个环节,在这个环节中Apache的JMeter以它开源.100%纯Java.操作方便等优点发挥着很大的作用. 经过一段时间的使用,多少有些心得和技巧,拿出来共享 ...
- Linux下使用Jmeter做性能测试
一.安装Jmeter 1.上传Jmeter压缩包到Linux服务器,如:/opt目录下 2.解压缩 unzip apache-jmeter-3.1.zip 3.配置环境变量:vi /etc/profi ...
- 用Jmeter做性能测试,之后报表展示
https://octoperf.com/blog/2017/10/19/how-to-analyze-jmeter-results/ 看到性能测试平台的开发,我在想需要什么功能,报表需要什么样子的 ...
- Jmeter工具做性能测试 常见的错误汇总
在Win机器上用Jmeter做性能测试,汇总下我自身遇到的错误和解决方案 java.net.BindException: Address already in use: JVM_Bind 原因分析:压 ...
- jmeter如何玩之badboy + jmeter并发性能测试
今天下班时公司安排了一个同事来对项目做集群性能测试,怀着对性能测试的好奇心,下班后没有着急离开,而是等待 那位同事的到来,然后在旁边学习了下如何使用Badboy和jmeter做性能测试. 1. 软件介 ...
- Jmeter初步使用二--使用jmeter做一个简单的性能测试
经过上一次的初步使用,我们懂得了Jmeter的安装与初步使用的方法.现在,我们使用Jmeter做一个简单的性能测试.该次测试,提交的参数不做参数化处理,Jmeter各元件使用将在介绍在下一博文开始介绍 ...
- 如何使用jmeter做一个功能的性能测试
一.为什么又再次写类似的文章? 在博客园和公号写文章,已经快两年了,所以自然在公号和博客园都能联系到我的. 也就是几天前,有个人加我微信,对于总有人加我好友,我已经觉得不奇怪了,为什么呢? 加我好友的 ...
- 一个使用Jmeter做接口性能测试的实战案例
1 安装并配置Jmeter Jmeter的安装不在这里阐述,安装步骤非常简单. 直接进入主题 1.1 数据库连接配置 由于测试过程需要调用数据库获取响应部署数据,因此需要先建立与数据库的连接. 如果不 ...
- 【Jmeter】Linux(Mac)上使用最新版本Jmeter(5.0)做性能测试
本文我们一起来学习在Linux(Mac)上利用Jmeter进行性能测试并生成测试报告的方法. 环境准备 JDK 访问这个地址 [JDK11.01],根据实际环境下载一个JDK. Jmeter Jmet ...
随机推荐
- pytorch之 RNN 参数解释
上次通过pytorch实现了RNN模型,简易的完成了使用RNN完成mnist的手写数字识别,但是里面的参数有点不了解,所以对问题进行总结归纳来解决. 总述:第一次看到这个函数时,脑袋有点懵,总结了下总 ...
- 手把手教你快速使用数据可视化BI软件创建互联网用户数据分析大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以互联网用户数据分析大屏为 ...
- 正则表达式过滤html注释内容
Regex.Replace("<!--(.|[\r\n])*?-->",string.Empty)
- [MySQL]ANALYZE TABLE 更新索引基数
MySQL使用存储的键分布基数来确定表连接顺序在决定对查询中的特定表使用哪些索引时,也会使用使用键分布基数 ANALYZE TABLE 表名 可以更新表的索引基数,使其更接近非重复的记录数,记录数可以 ...
- P5727 【深基5.例3】冰雹猜想
链接:Miku -------------------- 欸,为什么我第一遍没过 -------------------- #include<iostream> using namespa ...
- GPU体系架构(二):GPU存储体系
GPU是一个外围设备,本来是专门作为图形渲染使用的,但是随着其功能的越来越强大,GPU也逐渐成为继CPU之后的又一计算核心.但不同于CPU的架构设计,GPU的架构从一开始就更倾向于图形渲染和大规模数据 ...
- C++中static关键字的用法
运行一个完整的程序.我们可将整个存储区分为四块: (1)栈区:就比如局部变量,对应的函数参数等这些,调用完之后相应的内存会自己释放掉,很让人省心. (2)堆区:堆来堆去的.得要人动手.所以得我们自己手 ...
- SOA(Service-Oriented Architecture):面向服务的架构
SOA (Service-Oriented Architecture):面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联 ...
- c# 异步编程 使用回调函数例子
环境VS2010, 在项目属性中输出类型选择控制台应用程序 运行结果 using System;using System.Collections.Generic;using System.Compon ...
- C#设计模式学习笔记:(7)桥接模式
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7699301.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲结构型设计模式的第二个模式--桥 ...