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 ...
随机推荐
- Github 小白简单教学
Git和Github简单教程 原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在 ...
- 动手学习pytorch——(2)softmax和分类模型
内容太多,捡重要的讲. 在分类问题中,通常用离散的数值表示类别,这里存在两个问题.1.输出值的范围不确定,很难判断值的意义.2.真实标签是离散值,这些离散值与不确定的范围的输出值之间的误差难以衡量. ...
- Asp.Net Api+Swagger控制器注释
Swagger注释不显示,只需要进入Startup.cs 找到: c.IncludeXmlComments(Path.Combine(AppDomain.CurrentDomain.BaseDirec ...
- Nginx总结(八)启用Nginx Status及状态参数详解
前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天简 ...
- k8s 安装ELK(6.7.0版本)和EFK
一.Elasticsearch安装 helm安装的也行,而且helm安装的stable/elasticsearch可用性更高,但是使用资源更多. 1.安装elasticsearch(线上环境千万记得把 ...
- oracle表空间位置迁移
1.先登录sqlplus: C:\Documents and Settings\jbdu>sqlplus “/as sysdba”2.修改表空间为Offline: SQL> alter t ...
- APP图标在线生成
在线生成安卓APP图标生成 图标在线 在线图标 安卓图标 生成图标 https://icon.wuruihong.com/ 在线png图片压缩 png压缩 https://compresspng.c ...
- java开发规范学习
from 慕课网-明明如月-<阿里巴巴的Java开发手册> Integer缓存问题分析 1, Integer缓存[-128, 127]的数字,除此之外,将通过new创建. Long也是缓存 ...
- 优秀 .NET 开源项目集锦
Github 地址: https://github.com/jasonhua95/awesome-dotnet-core awesome-dotnet-core .NET Core框架.库和软件的中文 ...
- Verilog HDL学习_1:分频器/PWM的实现
(一)参考学习资料 (二)实际操作 1. 相关变量计算: First Initial Second Initial Upper case H X ASCII (Dec) 72 88 Lengths ...