jmeter(三)微信H5页面的压力测试之XML

老样子,周末在加班中度过;最近工作比较忙,也没时间整理一些学习工作中累计的东西,今天被开发放鸽子,好好的周末啊,又没了,怨念ing。。。。。。

之前介绍了关于jmeter的基础以及录制脚本的两种方法,今天就以我最近工作为例子,说说怎样做一个简单的压力测试。。。

项目背景:公司的微信端H5界面新开发了会员注册功能,需要对其进行压力测试

项目目标:需要承受每分钟最少6000的压力

至于需要用到的工具、数据什么的,下面介绍

一、建立一个测试计划(test plan)

之前有说过,jmeter打开后会自动生成一个空的test plan,用户可以基于该test plan建立自己的test plan

一个性能测试的负载必须有一个线程组完成,而一个测试计划必须有至少一个线程组。添加线程组操作如下:

在测试计划处右键单击:添加→Threads(Users)→线程组

每个测试计划都必须包含至少一个线程组,当然,也可以包含多个,多个线程组的运行在jmeter中采用的是并行的方式,即:同时被初始化且同时执行其下的sample

线程组主要包含三个参数:

线程数:虚拟用户的数量,一个线程指一个线程或者进程

Ramp—Up Period(in seconds):准备时长。设置的线程数需要多久全部启动,比如上图,线程数为6000,启动时间为60,那么需要60S内启动6000个线程

循环次数:每个线程发送请求的次数。如上图,6000个线程,每个线程发送1次,总计1000个请求;如果勾选了永远,那么它将永远发送下去,直到停止脚本

设置合理的线程数对能否达到测试目标有决定性影响。比如在本例中,如果线程数太少,则无法达到设定的要求;

另外,设置合理的循环次数也很重要,除了给定的设置循环次数和永远,还可以通过勾选调度器,设置开始和结束时间来控制。

二、添加sample

添加完线程组后,在线程组上右键单击:添加→Sampler→SOAP/XML-RPC Request(SOAP/XML-RPC:都是报文中不同的数据格式)

前面说过,取样器(Sampler)是与服务器进行交互的单元。一个取样器通常进行三部分的工作:向服务器发送请求,记录服务器的响应数据和记录相应时间信息

这里解释一下,因为微信H5界面的会员注册,向微信端发送的是xml文件,所以这里我选择的取样器是SOAP/XML-RPC Request,有关的HTTP请求,晚几天介绍

上面的图中,选择SOAP/XML-RPC Request取样器,然后URL一栏输入我们需要进行加压的URL就行

然后默认选项,Use KeepAlive的意思是:保持连接,这个是http协议报文中的一个首部字段,之前的关于HTTP协议的随便写过

然后下面的SOAP/XML-RPC Data输入需要发送的xml格式的文件就行(也可以导入xml文件的文件夹进行读取),下面我简单介绍下xml文件和一般发送请求的json报文的区别:

添加完取样器和具体的地址参数之后,接下来就是添加监听器,对测试结果进行获取,在这之前说说关于我工作中遇到的问题:

之前的工作呢大都是传参json报文,xml这是第一次遇到,但是要求的本身xml文件不能重复,要不服务器会拒收或者log日志也只显示一条,而且数据库也只会插入一条数据

但是手动生成xml文件数据又比较慢,而且需要每个线程都携带不同的xml文件去向服务器施加压力,就比较难办了,解决的办法有两个,下面我分开来说

第一种:利用jmeter自带的函数生成

点击选项→函数助手对话框

如上图,选择_Random函数,输入我们需要的随机生成函数的范围,输入名字,然后点击右下角的生成,就会出现一个字符串${__Random(10000,99999,test1)}

将上面生成的函数添加到我们向服务器发送的xml文件串中,替换[]中的5位,然后,添加监听器,就可以得到压力测试的结果了

第二种:记事本写入文件读取物理层

利用记事本,将我们需要参数化的数据写入其中,保存为.bat文件,然后记事本另存为修改编码为UTF-8,注意用户名与密码是一一对应的,中间用(,)隔开,如下图

然后将这个文件放入jmeter安装目录下的bin/路径下,启动jmeter线程后,就会读取里面的数据

三、添加监听器

在线程组上右键单击,添加你需要的监听器,一般常用的就是结果树和聚合报告

添加后,就可以启动线程组,进行测试了,等线程执行完成后,根据结果树中的请求(携带的参数文件)和响应结果(success或者失败:java.net.ConnectException: Connection refused: connect)

就可以分析我们的测试是否成功,以及根据聚合报告结果来确认我们这次确认是否达成了预期结果

四、聚合报告简析

Aggregate Report: JMeter 常用的一个 Listener,中文被翻译为“聚合报告”

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Note:关于 50% 和 90% 并发用户数的含义,请参考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

时间: 2024-10-27 03:00:19

jmeter(三)微信H5页面的压力测试之XML的相关文章

C#开发微信门户及应用(44)--微信H5页面开发的经验总结

在我们开发微信页面的时候,需要大量用到了各种呈现的效果,一般可以使用Boostrap的效果来设计不同的页面,不过微信团队也提供很多这方面的资源,包括JSSDK的接口,以及Weui的页面样式和相关功能页面,给我们提供了很大的便利,本文是在自己做的一些H5微信应用页面上做了一些功能总结,希望能够给大家提供一定的帮助. 1.微信网页开发 1) JSSDK 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包.通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语

微信H5页面登录到支付的心得

这几天帮朋友做了一个微信H5页面,代码都是down下来的,只添加了微信登录和微信支付功能. 以前没这么搞过这方面的,不知道怎么入手,在同事的帮助下终于完成了,现在记录下来,避免以后继续踩坑. 1.首先你的公众号中必须支持微信网页授权的权限,创建了一个方法里面判断用户是否登录,没有的话那么就会去请求微信的接口获取用户的基本信息, 获取信息后存入到数据库,cookie和session中:下次进入的时候判断cookie和session中的数据是否和数据库的一致,一致的话就默认为登录状态.这样微信登录的

微信h5页面中跳转下载第三方app的办法

需求:在微信h5页面中下载第三方app -- 安卓, 直接下载apk文件包:iphone,跳转AppStore 分析:微信不支持,在微信中屏蔽了apk文件的下载以及AppStore的跳转(且除非和TX有合作的应用,否则也不支持通过scheme跳转第三方app) 变通方法: 一.借助TX的应用市场 --'应用宝':将app上架应用宝,在微信中点击下载按钮(app的应用宝微下载地址),安卓则可跳转应用直接进行下载,iphone则会自动跳转Appstore(需在TX开发平台进行配置) 总结:虽然这种方

微信h5页面中跳转外部浏览器下载APK的办法

需求:在微信h5页面中下载第三方app -- 安卓, 直接下载apk文件包:iphone,跳转AppStore 分析:微信不支持,在微信中屏蔽了apk文件的下载以及AppStore的跳转(且除非和TX有合作的应用,否则也不支持通过scheme跳转第三方app) 变通方法: 一.借助TX的应用市场 --'应用宝':将app上架应用宝,在微信中点击下载按钮(app的应用宝微下载地址),安卓则可跳转应用直接进行下载,iphone则会自动跳转Appstore(需在TX开发平台进行配置) 总结:虽然这种方

微信H5页面前端开发,大多数人都会遇到的几个兼容性坑

1.ios端兼容input光标高度 问题详情描述:input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上 当点击输入的时候,光标的高度和父盒子的高度一样.例如下图,左图是正常所期待的输入框光标,右边是ios的input光标. 出现原因分析:通常我们习惯用height属性设置行间的高度和line-height属性设置行间的距离(行高),当点击输入的时候,光标的高度就自动和父盒子的高度一样了.(谷歌浏览器的设计原则,还有一种可能就是当没有内容的时候光标的高度等于input的line-hei

微信h5页面调用第三方位置导航

微信h5页面拉起第三方导航应用 需要准备的: 通过微信认证的公众号有备案过的域名 背景:微信公众号点击菜单栏跳到h5页面,需要用到导航功能 需求:当用户点击导航按钮时,跳转到第三方app进行导航 参考:微信公众号开发文档 步骤: 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/... jssdk的签名权限,这个权限是由后台提供的,前端只需要把签名权限注入到wx.config中就可以了,相信用过微信其他api的这一步都可以省了

微信h5页面屏蔽投诉按钮的完美实现办法

   在做微信投票,小说阅读类,以及大部分推广类微信H5页面经常会遇到因为被举报投诉导致页面被微信封杀的情况.因为微信是处理投诉举报是非人工,所以一旦这种举报投诉多次域名就会百分百被封杀.申诉等处理又是遥遥无期,基本希望渺茫,严重影响了正常推广的拓展.如果我们能够屏蔽掉微信的举报投诉按钮的话,就能够从源头彻底杜绝了恶意举报投诉的情况,经多方寻找和研究最终找到了能够完美屏蔽到掉微信举报投诉按钮的方法.      演示地址1:http://www.188tool.cn/button/demo1.ht

【经验分享】微信H5页面制作_页面制作教程

现在,H5页面在微信中很受欢迎,邀请函就是其中一种,它有着传播快.影响范围广等特点,看起来虽然很高端复杂,很多企业或个人都不知道如何制作,但是其实非常简单,借汇桔宝平台就能轻松搞定. 它具有海量的场景营销模板,让您不会错失任何一个与客户接触的机会:数百个游戏模板,只需轻松配置即可玩转微信朋友圈,推广吸粉无比轻松.在这里您可以制作H5微场景,包括节日问候.企业宣传.产品推介以及活动介绍.你可以制作邀请函,包括:商务邀约和沙龙聚会:你还可以制作微投票,包括:市场调研.商业评选:你甚至还可在这里制作万

解决微信H5页面软键盘弹起后页面下方留白的问题(iOS端)

前言:微信H5项目,ios端出现了软键盘输完隐藏后页面不会回弹,下方会有一大块留白 最近微信和ios都有版本升级,不知道是哪边升级造成的,但是经过测试,软键盘收起后,再滚动一下页面,下面的留白就会消失.所以只要在输入完毕后模拟一下这个"滚动"的操作,就能解决问题了. 如果是用vue写的: <input type="text" @blur="fixScroll" placeholder="请输入xxx"/> //me