一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Test

使用JMeter测试基于WebSocket协议的服务

由于JMeter没有针对WebSocket的sampler,所以就需要安装开源的插件,以使其支持WebSocket协议。 安装JMeter WebSocketSampler 首先,从github上clone源码下来,地址如下: https://github.com/maciejzaleski/JMeter-WebSocketSampler 之后,使用Maven构建此代码后,将jar包“JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar”放到JMeter的“lib/ext/”目录中,此目录是JMeter用来放置扩展包的地方。 最后,将websocket sampler依赖的其他jar包放到“lib”目录下,此目录是JMeter用来放插件所依赖的jar包的地方。websocket sampler所依赖的jar包如下: jetty-http-9.1.1.v20140108.jar jetty-io-9.1.1.v20140108.jar jetty-util-9.1.1.v20140108.jar websocket-api-9.1.1.v20140108.jar websocket-client-9.1.1.v20140108.jar websocket-common-9.1.1.v20140108.jar 打开JMeter,通过”Add” -> “Sampler” -> “WebSocket Sampler”,添加一个取样器: 创建一个简单的websocket实现: 通过下面blog所说的步骤,构建一个基于websocket协议的聊天室: http://waylau.com/netty-websocket-chat/ 启动后如图: 使用JMeter测试websocket聊天室 配置WebSocket Sampler如下图: 运行后,查看JMeter显示结果: 查看聊天室,发现确实收到的此条消息:   from:https://www.cnblogs.com/liupengblog/p/5355199.html

龙生   13 Sep 2018
View Details

JMeter 和 Badboy: 功能和性能测试工具

JMeter ======================================================= JMeter基础之一 一个简单的性能测试 http://www.cnblogs.com/fnng/archive/2012/12/22/2829479.html,看完这个就学到很多东西。 jmeter入门教程- Jmeter教程及技巧汇总 http://www.jmeter.cf/jmeter-summary.html JMeter试用手记 http://gq913.iteye.com/blog/157280 JMeter入门教程 http://blog.csdn.net/w565911788/article/details/7629787 使用jmeter测试web应用遇到的几个问题及解决 http://chen4w.iteye.com/blog/945298,录制问题。 jmeter学习系列--脚本参数化和断言设置 http://www.blogjava.net/qileilove/archive/2012/05/02/377159.html,利用Jmeter的CSV Data Set Config来实现参数化功能 用jmeter进行多用户并发压力测试 http://www.bubuko.com/infodetail-836134.html Jmeter逻辑控制器功能说明  http://my.oschina.net/u/2391658/blog/701485 综合: 模仿用多用户做压力测试的大致步骤 1. 录制脚本 2. 配置session,注意session跟http cookie manager的配置关系。 3. 配置用户列表的CSV Data Set Config初始化数据 4. 线程组并发和测试 录制: 可录制JMETER脚本的CHROME扩展插件BlazeMeter http://www.iquicktest.com/chrome-extension-jmeter.html JMeter基础之—录制脚本 http://www.cnblogs.com/fnng/archive/2011/08/20/2147082.html Jmeter 快速入门教程(四)--录制复杂web测试脚本 http://www.jmeter.cf/index.php/tutorials/154-jmeter-web.html 代理录制 IE无法录制到请求的问题解决 http://www.cnblogs.com/nocturneg/archive/2012/08/06/2624674.html 录制配置: chrome SwitchySharp 选项: 手动设定:localhost, 端口: 8081 (jmeter代理的端口),本地服务器的话,清空"不代理的地址"。 jmeter: http 代理: 端口:8081, https domian: localhost:8080(非https服务器不需要配置这里)  这里就是让通过端口8081转发到8080端口(实际站点端口) 插件: 官方插件: http://jmeter-plugins.org/downloads/all/ Web Driver http://jmeter-plugins.org/wiki/WebDriverTutorial/ WebSocket Testing With Apache JMeter http://blazemeter.com/blog/websocket-testing-apache-jmeter JMeter常用测试元件 http://book.51cto.com/art/201204/327306.htm jmeter之配置元件 http://www.blogjava.net/qileilove/archive/2014/02/28/410451.html JMeter文章收集http://www.ltesting.net/ceshi/open/kyxncsgj/jmeter/,里面的文章不是很完整。 实战:使用JMeter的Java Sampler轻松定制自己的benchmark http://itstarting.iteye.com/blog/1513335 一些说明: Session 要使jmeter能够保持住session,必须使其能够维持cookie中的jsessionid,因此增加“http […]

龙生   13 Sep 2018
View Details

JMeter入门

Jmeter简介 Jmeter的基本概念 百度百科: Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言   我们为什么使用Jmeter 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件 支持接口测试,压力测试等多种功能,支持录制回放,入门简单 相较于自己编写框架或其他开源工具,有较为完善的UI界面,便于接口调试 多平台支持,可在Linux,Windows,Mac上运行   Jmeter安装配置 Windows下Jmeter下载安装 登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件 安装JDK,配置环境变量(具体步骤不做介绍) 将下载Jmeter文件解压,打开/bin/jmeter.bat   其他平台安装Jmeter 与Windows平台一致,除入口文件不同,例如linux平台下为/bin/jmeter.sh Jmeter的目录结构 /bin 目录(常用文件介绍) examples:目录下包含Jmeter使用实例 ApacheJMeter.jar:JMeter源码包 jmeter.bat:windows下启动文件 jmeter.sh:Linux下启动文件 jmeter.log:Jmeter运行日志文件 jmeter.properties:Jmeter配置文件 jmeter-server.bat:windows下启动负载生成器服务文件 jmeter-server:Linux下启动负载生成器文件 /docs目录——Jmeter帮助文档 /extras目录——提供了对Ant的支持文件,可也用于持续集成 /lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录 /licenses目录——软件许可文件,不用管 /printable_docs目录——Jmeter用户手册   Jmeter相关插件安装: 插件安装: Jmeter的插件安装很简单,只需要下载对应插件解压即可。 下载地址:http://jmeter-plugins.org/downloads/all/ 下载后解压放入:apache-jmeter-2.12\lib\ext\目录下 重启jmeter ps:数据库链接驱动如果需要需要专门下载,例如mysql需要jdbc的jar包,地址:http://dev.mysql.com/downloads/file/?id=462850 使用注意事项:添加第三方插件并使用后保存的jmx文件在未添加该插件的运行环境下会导致无法打开该文件并报错,请保持环境一致性。 用例生成与导出: Jmeter的用例格式为jmx文件,实际为xml格式,感兴趣可以学习下自己定制生成想要的jmx文件。 生成原则: 每个功能模块为一个独立的jmx文件。增加可维护性。(尽量不要将一个jmx文件放入太多功能,后期维护成本会很高。) 模块的私有变量保存在模块中,多模块共有的(例如服务器ip端口等)可以考虑存在单独的文件中读取。 接口测试不要放太多线程,毕竟不是做压力测试,意义也不大。 导出方法: 编写测试用例 文件——保存为——确定:   Jmeter常用文件类型 Jmx文件 文件的实际类型:xml 文件样本: <jmeterTestPlan version="1.2" properties="1.8"> <hashTree> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test" enabled="true"> <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="TestPlan.user_define_classpath"></stringProp> <boolProp […]

龙生   01 Aug 2018
View Details

Jmeter使用入门

  修改时间 修改内容 修改人 2016.3.12 创建 刘永志 2016.6.18 完成 刘永志     Jmeter简介 Jmeter的基本概念 百度百科: Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言   我们为什么使用Jmeter 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件 支持接口测试,压力测试等多种功能,支持录制回放,入门简单 相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试 多平台支持,可在Linux,Windows,Mac上运行   Jmeter安装配置 Windows下Jmeter下载安装 登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件 安装JDK,配置环境变量(具体步骤不做介绍) 将下载Jmeter文件解压,打开/bin/jmeter.bat   其他平台安装Jmeter 与Windows平台一致,除入口文件不同,例如linux平台下为/bin/jmeter.sh Jmeter的目录结构 /bin 目录(常用文件介绍) examples:目录下包含Jmeter使用实例 ApacheJMeter.jar:JMeter源码包 jmeter.bat:windows下启动文件 jmeter.sh:Linux下启动文件 jmeter.log:Jmeter运行日志文件 jmeter.properties:Jmeter配置文件 jmeter-server.bat:windows下启动负载生成器服务文件 jmeter-server:Linux下启动负载生成器文件 /docs目录——Jmeter帮助文档 /extras目录——提供了对Ant的支持文件,可也用于持续集成 /lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录 /licenses目录——软件许可文件,不用管 /printable_docs目录——Jmeter用户手册   Jmeter相关插件安装: 插件安装: Jmeter的插件安装很简单,只需要下载对应插件解压即可。 下载地址:http://jmeter-plugins.org/downloads/all/ 下载后解压放入:apache-jmeter-2.12\lib\ext\目录下 重启jmeter ps:数据库链接驱动如果需要需要专门下载,例如mysql需要jdbc的jar包,地址:http://dev.mysql.com/downloads/file/?id=462850 使用注意事项:添加第三方插件并使用后保存的jmx文件在未添加该插件的运行环境下会导致无法打开该文件并报错,请保持环境一致性。 用例生成与导出: Jmeter的用例格式为jmx文件,实际为xml格式,感兴趣可以学习下自己定制生成想要的jmx文件。 生成原则: 每个功能模块为一个独立的jmx文件。增加可维护性。(尽量不要将一个jmx文件放入太多功能,后期维护成本会很高。) 模块的私有变量保存在模块中,多模块共有的(例如服务器ip端口等)可以考虑存在单独的文件中读取。 接口测试不要放太多线程,毕竟不是做压力测试,意义也不大。 导出方法: 编写测试用例 文件——保存为——确定:   Jmeter常用文件类型 Jmx文件 文件的实际类型:xml 文件样本: <jmeterTestPlan version="1.2" properties="1.8"> <hashTree> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test" enabled="true"> <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" […]

龙生   22 May 2018
View Details

性能测试工具 wrk 安装与使用

介绍 今天给大家介绍一款开源的性能测试工具 wrk,简单易用,没有Load Runner那么复杂,他和 apache benchmark(ab)同属于性能测试工具,但是比 ab 功能更加强大,并且可以支持lua脚本来创建复杂的测试场景。 wrk 的一个很好的特性就是能用很少的线程压出很大的并发量, 原因是它使用了一些操作系统特定的高性能 I/O 机制, 比如 select, epoll, kqueue 等。 其实它是复用了 redis 的 ae 异步事件驱动框架. 确切的说 ae 事件驱动框架并不是 redis 发明的, 它来至于 Tcl的解释器 jim, 这个小巧高效的框架, 因为被 redis 采用而更多的被大家所熟知. wrk GitHub 源码:https://github.com/wg/wrk 安装 wrk只能运行于 Unix 类的系统上,也只能在这些系统上便宜,所以我们需要一个Linux或者macOs。 不得不说,使用了 Win10之后方便很多。 必备条件: Win10 RS及以上版本 启用Ubuntu子系统 1、Win10 系统通过bash命令,切换到Ubuntu子系统。 然后需要安装一下编译工具,通过运行下面命令来安装工具:

安装 gcc 编译环境的时候最好挂一下VPN,速度会快些。 2、安装完成之后使用 git 下载 wrk 的源码到本地:

3、切换到git的wrk目录,然后使用make命令:

编译完成之后,目录下面会多一个 wrk 的文件。 测试 使用以下命令来测试一下:

简单说一下wrk里面各个参数什么意思? -t 需要模拟的线程数 -c 需要模拟的连接数 --timeout 超时的时间 -d 测试的持续时间 结果: Latency:响应时间 Req/Sec:每个线程每秒钟的完成的请求数 Avg:平均 Max:最大 Stdev:标准差 +/- Stdev: 正负一个标准差占比 标准差如果太大说明样本本身离散程度比较高. […]

龙生   16 Sep 2017
View Details