在我的项目(基于Web的应用程序)中,我需要测试20个网页的负载性能测试。 我有一个困惑,我怎么知道: 什么时候我需要创建下一个Thread(用户)组?和 我应该在一个线程组内创建多少个HTTP请求(页面)?
图片描述: [我带了四个Thread Group User1,User2,User3&用户4 &安培;在每个线程(用户)组内创建了两个或三个HTTP请求(网页)
我想知道我是否正在按照正确的方法创建用户&线程组? 这是一个正确的过程吗?因为我在某些页面中遇到错误(HttpHostConnectionException)..
请有人建议我什么是正确的过程?
提前致谢
答案 0 :(得分:2)
线程是JMeter中真实用户的模拟,因此线程组包含用户完成的操作。
实际上,线程组中的采样器/请求没有限制,但为了简单起见,可读性和调试目的,建议将请求划分为逻辑上分隔的部分。对于分离请求,您有2个选项,
Threadgroup
:它是JMeter中为其定义线程的组件,定义了rampup,即它具有自己的属性,将由其下的所有采样器共享。 In real life it represents a process comprising of many short workflows
。例如,当我说工作流程时,我的意思是登录,购物,添加到购物车,支付金钱,退出(用户的简短操作),当我处理它意味着"购买产品"其中包括以上所有我希望这已经明确了流程和工作流程之间的区别
Transaction controller
:它是Threadgroup的一个小版本,它使用Threadgroup的属性,即它的父线程组。它通常用于分离作为单个过程一部分的请求/采样器。即它用于分离登录,购买产品等属于单线程组的产品最后,Threadgroups应该用于我们想要加载测试的过程" 测试buy a product
与10个用户"
交易控制器应该用于工作流程" 登录工作流程并付钱"
下图应该有所帮助,
答案 1 :(得分:1)
Jmeter是性能测试和功能测试的优秀工具(不适用于UI验证) 它真的很容易学习,任何人都可以成为它的主人。在创建测试计划之前,请尝试了解每个元素的用途。它究竟做了什么。
线程组:
让我们考虑这种情况。
在基于网络的应用程序中,10个用户一次又一次登录并订购新产品,10个支持用户同时登录和更新现有产品。
所以,在这种情况下,我可能会创建2个线程组。一个用于订购产品,另一个用于更新现有产品。 '线程/用户数量'对于每个线程,Group应设置为10.
取样:
每个采样器都是对服务器的请求。如果您需要打20个不同的页面,则需要有20个采样器。由于它是基于Web的应用程序,因此您应该在线程组下添加HTTP采样器。
监听器:
(根据apache)监听器是显示样本结果的组件。 您已为每个采样器添加了一个侦听器。这是不正确的。您需要在测试计划级别中拥有它。 (至少线程组级别)
请参阅下面的教程。
http://www.youtube.com/watch?v=4mfFSrxpl0Y
http://www.tutorialspoint.com/jmeter/jmeter_build_test_plan.htm
&安培; Ofcourse,