完整网站源码下载,快速建立网站,官方网站后台图片下载怎么做,网站建设及安全制度在前面的《云智慧压测实战分享之JMeter工具使用初探》中我们对JMeter的功能特点和常用元件做了简单介绍#xff0c;接下来说说JMeter的脚本录制。JMeter有多种录制脚本方法#xff0c;其中最常见的是通过第三方工具Badboy录制#xff0c;另外还有JMeter自身设置(Http代理服务… 在前面的《云智慧压测实战分享之JMeter工具使用初探》中我们对JMeter的功能特点和常用元件做了简单介绍接下来说说JMeter的脚本录制。JMeter有多种录制脚本方法其中最常见的是通过第三方工具Badboy录制另外还有JMeter自身设置(Http代理服务器IE浏览器设置)来录制脚本下面以压测宝为例来介绍下Badboy脚本录制过程。 注使用JMeter的代理或是Badboy进行录制的时候操作不能太快不然容易造成录制失败。 1、打开Badboy工具在地址栏目中输入被测试项目的地址。注意Badboy启动默认是录制状态为红色按钮如图 录制完成后点击工具栏旁边黑色按钮结束录制。 2、选择“文件”--Export to JMeter… 3、打开JMeter工具选择“文件”--“打开”选择刚才保存的文件(.jmx类型)将文件导入进来了。 录制的脚本一定要添加HTTP Cookie Manager否则脚本运行失败。 对于JMeter来说一个测试计划只能有一个Cookie管理器因为当多个Manager存在时JMeter没有方法来指定使用哪个Manager同时一个Cookie Manager中存储的Cookie也不能被其他Cookie Manager所引用所以同一个测试计划中不建议使用多个Cookie Manager。 JMeter压测实例 下面我们用几个JMeter压测实例来熟悉一下JMeter的使用。 1、使用JMeter进行http接口测试 Jmter工具设计之初是用于性能测试的它在实现对各种接口的调用方面已经比较成熟因此可直接使用JMeter工具来完成对Http接口的测试。 1)、开发接口测试案例的整体方案 • 第一步我们要分析出测试需求并拿到开发提供的接口说明文档; • 第二步从接口说明文档中整理出接口测试案例里面要包括详细的入参和出参数据以及明确的格式和检查点。 • 第三步和开发一起对接口测试案例进行评审。 • 第四步结合开发库准备接口测试案例中的入参数据和出参数据并整理成csv格式的文件。 • 第五步结合接口测试案例文档和csv格式的数据文档做接口测试案例的自动化案例开发。 2)、接口自动化适用场景 目前设计的自动化接口测试案例有两个运行场景 a. 测试前置、开发自测一个新的自动化接口测试案例开发完成后直接发给接口对应的开发安排在开发本地环境执行一旦开发确认完成接口开发就开始执行接口测试案例基本上可以实时拿到测试结果方便开发快速做出判断。【开发本地运行的方式就是打开JMeter工具导入JMX文件开始执行即可。】 b. 回归测试开发本地测试通过后或整个需求手工测试通过后把自动化的接口测试案例做分类整理挑选出需要纳入到回归测试中的案例在持续集成环境重新准备测试数据并把案例纳入到持续集成的job中来这些用于回归的接口测试案例需要配置到持续集成平台自动运行。 3)、接口测试环境准备 • Jdk1.6或以上http://www.oracle.com/technetwork/java/javase/downloads/index.html • JMeter下载址址http://jmeter.apache.org/download_jmeter.cgi • 插件的下载安装地址http://www.jmeter-plugins.org/ 4)、创建工程 a、打开JMeter下载好JMeter后双击bin目录下的jmeter.bat文件 b、添加线程组在“测试计划”上点击鼠标右键--添加--threads(Users)--线程组添加测试场景设置组件接口测试中一般设置为1个“线程数”根据测试数据的个数设定“循环次数”。 c、添加“HTTP Cookie管理器” d、添加“Http请求默认值”组件当被测系统有唯一的访问域名和端口时这个组件很好用 e、在“HTTP 请求默认值”组件配置页面填写被测系统的域名和端口http请求的实现包版本以及具体协议类型线程组里的所有“HTTP Sampler”可默认使用此设置。 f、在“线程组”里添加“HTTP 请求”的Sampler g、在HTTP请求设置页面录入被测接口的详细信息包括请求路径对应的请求方法以及随请求一起发送的参数列表 h、设置检查点在被测接口对应的“HTTP 请求”上添加“响应断言” i、在设置页面上添加对相应结果的正则表达式存在性判断即可 j、添加监听器方便查看运行后的结果 上述步骤完成了一个简单测试实例的创建复杂测试实例均在此基础上扩展完成。使用JMeter工具开发的接口测试案例一个子系统建议放在同一个“测试计划”中流程测试可以通过“线程组”来区分这样也便于设定不同的测试数据个数。比较独立的接口可以统一放在一个线程组内顺序完成测试。 流程性接口的测试如果要测试的接口可以组成一个流程只需要顺序添加多个“HTTP 请求”的Sampler各请求之间可以提取需要在上下文传递的数据作为参数以保证流程中数据的一致性。 2、JMeter分布式测试 在使用JMeter进行性能测试时如果并发数比较大(比如最近项目需要支持1000并发)单台电脑(CPU和内存)可能无法支持这时可以使用JMeter提供的分布式测试的功能。 1)、JMeter分布式执行原理 JMeter分布式测试时选择其中一台作为调度机(master)其它机器做为执行机(slave)。 执行时master会把脚本发送到每台slave上slave 拿到脚本后就开始执行slave执行时不需要启动GUI我理解它应该是通过命令行模式执行的。 执行完成后slave会把结果回传给mastermaster会收集所有slave的信息并汇总。 2)、执行机(slave)配置 a、slave机上需要安装JMeter具体如何安装这里不详细介绍了。 b、添加环境变量JMETER_HOMED:\B_TOOLS\apache-jmeter-2.13此处为你JMeter的路径 c、启动bin目录下的jmeter-server.bat启动成功如下图 d、上图上标红的IP和端口会在master里配置时用到。IP就是slave机器IP端口默认是1099端口也可以自定义这里我自定义为1000这个后面会讲。 e、多台slave的话重复1~4步骤就好。 3)、调度机(master)配置 a、脚本简单的一个访问压测宝的脚本 b、找到JMeter的bin目录下jmeter.properties文件修改如下配置IP和Port是slave机的IP以及自定义的端口(这里端口我自定义为100后面会讲如何自定义) remote_hosts10.13.223.202:1000,10.13.225.12:1000 多台slave之前用,隔开我这配置了2台可以看到标红的这个就是上面截图slave的IP和Port. c、打开JMeter选择运行有运程启动、运程全部启动两个选项 d、选择远程启动--10.13.225.12:1000 a) master结果这里我只启动了10.13.225.12:1000这一台slave所以只有一个结果(线程数和循环次数都是1) b) slave控制台信息 e、选择远程启动--远程全部启动 a) master结果全部启动我配置了2台slave所以有两次执行结果 4)、自定义端口 上面其实已经实现了JMeter的分布式测试这部分主要介绍下如何自定义slave端口 a、slave在slave机的JMeter的bin目录下找到jmeter.properties文件修改如下两个配置项比如我这里修改为1888 server_port1888 server.rmi.localport1888 b、启动slave机上的jmeter-server.bat如下图端口已经修改为1888 c、master修改master机器的jmeter.properties文件 remote_hosts10.13.223.202:1000,10.13.225.12:1888 d、重启jmeter.bat如下图端口已经变了: 5)、其它说明 a、调度机(master)和执行机(slave)最好分开由于master需要发送信息给slave并且会接收slave回传回来的测试数据所以mater自身会有消耗所以建议单独用一台机器作为mater。 b、参数文件如果使用csv进行参数化那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。 c、每台机器上安装的JMeter版本和插件最好都一致。 3、搭建持续集成接口测试平台 下面介绍最后一个实例搭建持续集成接口测试平台(JenkinsAntJMeter)。 1)、环境准备 JDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html Anthttp://ant.apache.org/bindownload.cgi Jenkinshttp://jenkins-ci.org/ 2)、Jemter脚本准备 a、脚本目录D:\B_TOOLS\apache-jmeter-2.13\demo b、脚本内容都是访问压测宝或google首页 Script_yacebao.jmx Script_google.jmx 3)、ANT的build.xml代码准备 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40xslt p in${jmeter.result.jtlName} 41 out${jmeter.result.htmlName} 42 style${jmeter.home}/extras/jmeter-results-detail-report_21.xsl/ 43 44 45 46 47 48 49 50 51 4)、配置Jenkins Job并运行: a、job配置如下 b、在job的workspace目录下会生成结果报告 c、TestReport.html: 5)、配置发送邮件功能 a、自已写一个发送邮件的功能并打成sendmail.jar包放在job的workspace目录中 b、jenkins增加构建步骤 a)进入到测试报告的目录 b) 调用sendmail.jar命令发送邮件 说明 由build3.xml的第12、13行可知报告文件生成目录为${env.WORKSPACE}/results/${env.BUILD_ID}所以这里要先cd到具体执行的那个build_id目录下。 可以把上面的两行命令写在成一个批处理文件例如第1步有个sendmail.bat文件就是然后调用时直接写sendmail.bat就好了。 持续集成接口测试平台(JenkinsAntJMeter)就此搭建成功以上是关于Jmeter脚本录制和压测的几个实例接下来为您带来进阶的《云智慧压测实战分享之JMeter场景设置与监控》敬请期待。 转载地址http://news.chinabyte.com/175/14014175.shtml