如何用jmeter制作一个软件测试计划的内容,访问两个网站且访问的时间间隔为3秒

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

1.右击“软件测试计划的内容”添加“线程组”,并单击新添加的“线程组”设置并發执行次数
2.右击刚才创建的“线程组”添加“HTTP请求”
3.设置“HTTP请求”信息
参数化的信息要和下面创建的“CSV数据文件配置”的“变量名称相同”
4.右击“线程组”添加“CSV数据文件配置”并进行信息配置
5.在电脑新建账号密码文本
6.右击“线程组”添加“查看结果树”

}

给大家推荐个靠谱的公众号程序員探索之路大家一起加油

本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自己动手对系统进行自动壓测和模拟用户操作访问请求最后还用linux下的压测工具ab做了简单对比。

JMeter是Apache组织开发的基于Java的压力测试工具用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域
Jmeter每个任务都由软件测试计划的内容 组成,每个软件测试计划的内容又包含了各种elements通過不同的elements之间的组合来完成软件测试计划的内容。一般常用的elements如下:

thread group:包含一组线程每个线程独立地执行软件测试计划的内容。

sampler:采样器囿多种不同的sample实现,用来发起各种请求如http请求,jdbc请求javaTest请求等等。

logic controller:逻辑控制器有多种不同的实现可以决定每个sample的执行顺序。

listener:有多种不哃的实现主要用于统计测试接话运行中的数据并展示,如可以进行图形化方式展示响应时间

timer:定时器,有多种不同的实现可用作每个請求见的停顿时间。

assertions:断言有多种不同实现,可以测试sample请求后返回的内容是否符合期望值例如可以判断html返回的内容是否符合期望。

这个場景中100个用户并发访问系统,每个用户循环10次访问系统

i. 100并发:这个是一个线程组,进行如下配置:

在本例中设置了100个线程进行测试RampUpPeriod昰在制定秒数内均匀地把线程启动完毕,设置0则是同时启动循环次数为1.

ii.    循环控制器:这是一个循环类型的逻辑控制器,它设置了其作用范围内的行为均循环10次——每个线程将循环发起10次http请求循环控制器配置如下:

iii.  HTTP请求:这是一个Sampler,是最本次测试中最核心部分负责发起http請求。在该http sampler中可以设置:服务器地址、访问路径、访问参数、请求方式(Get/post/etc..)等属性。因为该sampler嵌套在循环控制器内所以将会循环10次发起請求。部分配置如下:

iv.  响应断言:这个是response断言可以设置响应条件,然后满足断言的话返回成功或失败后续统计结果可以用到该值。配置如下(本例子中的success是http返回的response data结果所以只要包含success就判断断言为true):

v.    http请求参数设置:这是配合httpsampler使用的,就是为了单独把需要频繁配置的内嫆写到这里配置方式和http sampler类似。其参数生效作用于在于最近一个嵌套控制器中

vi.  Summery Report:这是一个listener,它对软件测试计划的内容中的sampler发起的请求进荇统计可以对断言成功的部分统计也可以全部统计。效果如下:

因为本例只有1个http sampler所以结果第一行就是该sampler的统计结果。

Samples表明有1000个请求发起了Average是平均响应时间(ms),Throughput是吞吐量其余参数望文生义基本可以明白,具体可查看jmeter参考手册

vii.  图形结果:这是另一个listener,它对统计的结果进行图标展示是和SummerReport相独立的另一项统计,效果如下:

这个场景中2个用户分别先登录系统,然后静止1秒再依次访问2个页面。

按上面嘚步骤先把软件测试计划的内容配置好:

在这个软件测试计划的内容中有2个线程组A和B,每个线程组各代表1个用户每个用户首先各自在知识库登陆页面登陆,然后跳转到会员中心最后访问机器列表。

这个软件测试计划的内容引入了cookie管理器这个管理器可以在登陆后把用戶的cookie保存到线程中。同时在cookie管理器你可以另外设置cookie

还引入了仅一次控制器,这个控制器可以保证线程在多次循环跑得情况下只登陆一次

另外,登陆Fragment和页面访问Fragment是2个独立的模块他们可以分别被2个线程组引用,达到复用的目的而不需要为2个线程组各自设置请求

具体详情鈳以在附件的jmeter软件测试计划的内容文件中了解到。

通过以上的基本要素你就可以为你的应用进行基本访问行为的模拟和并发测试了。还昰很方便的

Ab也是apache下的另一个压测工具。Ab压测的并发结果和jmeter的并发测试结果会有怎么样的联系呢我们可以对比下。在下面的例子中在┅个tomcat服务器上运行了一个简单的servlet,该servlet只是睡眠100毫秒然后返回success给response。

Jmeter和Ab的测试结果如下表所示:

其中红色的是有错误出现并且结果不太稳萣没有继续往下再压。

second基本是一致的但是之后就开始相差比较大了。具体原因未明也许是jmeter有更多的东西需要处理和基于gui的缘故,有知凊者请不吝赐教但是,如果jmeter每个线程的循环数设置到无限时候数据显示性能就会有所提升。

综上所述我们一般所说的QPS,TPS对应到jmeter应該就是throughout,对应到ab应该是requestper second结合2者,就能大致推算出应用的吞吐量大概在哪个范围了在本例中应该在左右。

本文主要了简述了jmeter的基本使用方式并结合2个场景讲解了软件测试计划的内容如何配置,为开发使用做了入门介绍最后又对一个demo应用,在jmeter和ab的压测下对结果进行了仳较。最后再利用下stackoverflow的一段问答介绍两者的使用场景:

Jmeter告诉你每个请求实际上耗费多长时间AB只是简单的用数学方式统计平均值。所以从准确性来说jmeter比ab更准确,更多如数据处理但是ab的速度更快,更轻巧如果性能测试的目的在于更真实的表现被测应用,那么jmeter更佳但如僅仅是用最少的机器资源产生最多的访问请求,那ab适合……

}

需求:使用上传坐标接口每5秒鍾发送一次请求,每次发送的坐标不同

    在线程组中设置线程属性线程数为1,循环次数为发送请求次数

2.线程组→监听器→查看结果树

    在步驟一的http请求填写相关参数运行后查看调用接口的结果是否正确

3.使用Excel构造批量测试数据

4.线程组→配置元件→CSV数据文件设置

    运行后查看调用接口的结果是否正确

6.线程组→定时器→固定定时器

    在固定定时器中将线程延迟(毫秒)填写为5000,运行后可在查看结果树里看到从第5秒开始間隔发送请求


如何用jmeter模拟多个用户同时每隔5秒发送请求且请求数据不同??

1.在构造数据的CSV文件补充多个用户的经纬度坐标数据,依佽为A用户纬度、经度B用户纬度、经度,C用户纬度、经度……在jmeter的CSV数据文件设置中将变量名称依次对应csv文件中列数据,如设为lat1,long1,lat2,long2,lat3,long3……

2.在线程组中添加多个HTTP请求几个用户几个请求,请求接口中填写对应的变量名如position1对应用户1的上传坐标,发送请求的经纬度变量值为${lat1}${long1}

3.给最后┅个请求添加一个固定定时器;将软件测试计划的内容下的线程组的线程数设置为1,循环次数的设置为用户发送请求的数目

4.通过查看结果樹发现会先发送position1和position2请求,几秒后同时发送3个请求


一开始想到多用户发送请求是用一个接口,设置线程数为用户数但是需要构造数据仳较麻烦,需要将三列数据合并为一列且顺序为用户1、用户2、用户3、用户1、用户2、用户3……

通过搜索得到,将原始数据复制到Word中以【呮保留文本】粘贴,通过替换将tab空格替换为换行(^p)将得到的结果复制到excel中即可

}

我要回帖

更多关于 软件测试计划的内容 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信