压力测试之badboy和Jmeter的简单使用方法

简介: 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 所谓压力测试是指,通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别的测试。

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

所谓压力测试是指,通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别的测试。通俗地讲,压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。通常进行压力测试均是测试人员的工作,但是研发人员或多或少也需要对压力测试有个基本的了解。这里我跟大家一起学习如何使用两个常用工具进行压力测试,即badboy和Jmeter。

2.badboy简介及使用方法

2.1badboy简介

Badboy是用C++开发的,被用于测试和开发复杂的动态应用。它提供了强大的屏幕录制和回放功能,同时也提供了丰富的图形结果分析功能。只要不用于商业目的就可以免费使用。因此这两工具的结合,就成为了绝配。我们可以用Badboy录制脚本,然后将录制的脚本导出为JMeter格式的脚本,最后将该脚本导入到JMeter,借助于JMeter强大的测试功能模拟大量的虚拟用户,进行复杂的性能测试。

其下载地址为:http://www.badboy.com.au。下载完后需要进行安装,安装过程同一般的Windows 应用程序没有什么区别,安装完成后你可以在桌面和Windows开始菜单中看到相应的快捷方式。如果找不到,可以找一下Badboy安装目录下的Badboy.exe文件,直接双击启动Badboy。最后开到的启动界面如下:

                       

2.2使用方法

a.在地址栏(图中红色方框标注的部分)中输入你需要录制的Web应用的URL,这里我们以http://www.baidu.com为例。

b.点击“开始录制”按钮(图中蓝色圆圈标注的部分)开始录制 。

c.开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中(图中黄色方框标注的部分)。在这个试验中,我们在baidu的搜索引擎中输入 JMeter 进行搜索。不过录制下来的脚本并不是一行行的代码,而是一个个Web对象——这有点像LoadRunner的VuGen中的Tree View视图。

d.录制完成后,点击工具栏中的“停止录制”按钮(图中紫色方框标注的部分),完成脚本的录制。

 

 

e.选择“File -> Export to JMeter”菜单,填写文件名“baidu.jmx”,将录制好脚本导出为JMeter脚本格式。也可以选择“File -> Save”菜单保存为Badboy脚本。

f.启动JMeter并打开刚刚生成的测试脚本,就可以用JMeter进行测试了。

 

3.Jmeter的简介和使用方法

3.1Jmeter的简介

Apache JMeter,是Apache组织开发的基于Java的针对功能和性能的测试工具。最初JMeter是为Web/HTTP测试而设计的,但是后来它已经扩展到支持各种各样的测试模块。JMeter可以用于测试静态或者动态资源的性能(如静态文件、Java服务程序、Servlet、CGI脚本、Perl脚本、Java对象、数据库和查询、FTP服务器或者其他资源)。JMeter可以用于模拟对服务器、网络或对象加以巨大的负载,在不同压力类别下测试它们的强度,分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。同时它也提供了一个可替换的界面用来定制数据显示,测试的同步及测试的创建和执行。

其下载地址为: http://jakarta.apache.org。双击D:/JMeter/bin下的jmeter.bat或ApacheJMeter.jar即可开启运行。

3.2主要组件介绍

a.测试计划(Test Plan)

   是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器。

b.线程组(Thread Group)

   代表一定数量的并发用户,它可以用来模拟并发用户发送请求。

c.取样器(sampler)

   定义实际的请求内容,被线程组包含,我们主要用HTTP请求。

d.监听器(Listener)

负责收集测试结果,同时也被告知了结果显示的方式。我们常用的包括:聚合报告、察看结果树、用表格查看结果,都支持将结果数据写入文件。其他的添加上去看看就行。

 

 

e.逻辑控制器(Logic Controller)

可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

其分为循环控制器和事务控制器。

f.断言(Assertions)

可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。

g.配置元件(Config Element)

维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。我们主要在参数化中用到CSV Data Set Config。

h.前置处理器(Pre Processors)和后置处理器(Post Processors)

负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器。

i.定时器(Timer)

负责定义请求之间的延迟间隔。

3.3两种使用方法

3.3.1直接导入脚本的方法

在前面我们使用badboy进行了脚本录制,这里可以直接将其导入到Jmeter中。具体补步骤如下:

a.打开JMeter会有一个默认的测试计划,点击文件-打开,选中录制的脚本文件如:WebXSample_addUser.jmx,打开脚本进行测试。

b.在线程组上添加监听器-聚合报告(用于分析测试结果)后,点击运行-启动,开始测试,测试完毕后在聚合报告中就可以看到测试结果。一个简单的测试计划就完成了。

 

3.3.2手动编写测试样例的方法

a.在测试计划中先添加一个线程组,然后在该线程组中加入http请求模块。可以在sampler中看到,Jmeter还能测试数据库连接查询压力,FTP连接压力等。

 

b.编写测试请求。

 

c.添加监听等。

d.设置线程并发量。

 

f.点击运行,查看运行结果,进行分析。

 

 

即300个并发量中,平均时间是17074毫秒,中间段发出的的请求耗时18891毫秒,末尾百分之90处发出的请求耗时25575毫秒。整个测试过程中,最小耗时为2616毫秒,最大耗时为26911毫秒。

                                                              

                                                        -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                    如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                  

 

目录
相关文章
|
8月前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
164 4
|
2月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
2月前
|
消息中间件 缓存 监控
性能测试怎么做?方法、流程与核心要点解析
本文系统阐述了性能测试的核心方法论、实施流程、问题定位优化及报告编写规范。涵盖五大测试类型(负载验证、极限压力、基准比对、持续稳定性、弹性扩展)与七项关键指标,详解各阶段任务如需求分析、场景设计和环境搭建,并提供常见瓶颈识别与优化实战案例。最后规范测试报告内容框架与数据可视化建议,为企业级实践提出建立基线库、自动化回归和全链路压测体系等建议,助力高效开展性能测试工作。
|
4月前
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
10月前
|
测试技术 UED
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
|
10月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
206 1
|
6月前
|
人工智能 自然语言处理 测试技术
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
AxBench 是由斯坦福大学推出,用于评估语言模型可解释性方法的基准测试框架,支持概念检测和模型转向任务,帮助研究者系统地比较不同控制技术的有效性。
140 5
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
|
6月前
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
385 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
7月前
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
166 1
Jmeter如何对UDP协议进行测试?
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问