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 ...
随机推荐
- EMC networker nmm can restore and recover sqlserver as different name to different location
EMC networker nmm can restore and recover sqlserver as different name to different location That is ...
- ajax 原生js封装ajax [转]
/* 封装ajax函数 * @param {string}opt.type http连接的方式,包括POST和GET两种方式 * @param {string}opt.url 发送请求的url * @ ...
- java8种基本数据类型
- Method Resolve Order (MRO) - 类对象属性的解析顺序
Method Resolve Order (MRO) - 类对象属性的解析顺序 Python 支持多重继承, 此时就需要解决按照何种顺序来解析属性的问题.类的继承关系在一个特殊的类属性中指定(__mr ...
- [Effective Java 读书笔记] 第6章 枚举和注解
第三十条 用enum代替int 总得来说,使用enum有几点好处 1.编译时的类型安全, 2.可以保证就是自己定义的值,不会有月结风险, 3.每个枚举类型有自己的命名空间 4.枚举可以添加任意的方法和 ...
- 06-Spring03-事务管理
今日知识 1. Spring事务管理 2. 转账案例 Spring事务管理 1. 事务特性(ACID) 1. 原子性:整体 [原子性是指事务包含的所有操作要么全部成功,要么全部失败] 2. 一致性:数 ...
- 2Nginx+keepalive+2tomcat 故障转移
根据真实生产环境 总结. 硬件:共计2台Linux服务器 76和77 每台服务器都安装 Nginx Keepalive Tomcat80作为虚拟ip,负责对外连接. 78和79是两台mys ...
- Linux 配置ip 子接口 多网卡绑定
linux系统配置ip地址,图形化界面略过,这里只介绍文本行.做以下设置注意是否有此权限 查看当前路由及网关信息: [root@localhost ~]# netstat -r Kernel IP r ...
- Python2-Django配置阿里大于的短信验证码接口
1.短信发送开发指南地址:https://help.aliyun.com/document_detail/55491.html?spm=a2c4g.11186623.6.568.l5zTwH 2.SD ...
- CCS过渡和动画
过渡 过渡能让使用过渡的元素在样式发生变化时(例如鼠标划过,单击按钮,点击图片时,颜色,尺寸,位置等样式发生变化),定义变化过程中的动画,让变化不再是瞬间产生. 过渡样式使用transition定义, ...