我被要求进行一些测试,以评估在我当前工作中开发的API的不同负载下的响应时间。我对jMeter有一个非常基本的知识,所以我把它看作是我选择使用的工具。
这是我正在努力实现的目标的快速背景信息: 我想通过模拟每个由不同用户创建的一些独特的Json调用来测试API。每个唯一的Json调用都包含唯一的用户ID和项目编号。
让我们举例说,我想测试一下,10个不同的用户,一次性调用API的不同项目。
我对线程组和用户之间的术语和区别以及循环计数(在线程组中找到)以及如何最好地使用它们有点混淆。我在jMeter网站上找不到答案,或者在这里找到答案,所以想出了我认为可能的方法....
从我对jMeter如何工作的理解。为了实现我的目标,我需要在测试计划中创建10个独立的线程组,每个线程组都配置了独特的Json主体数据。
例如:包含请求1的线程组1,包含请求2的线程组2,包含请求3的线程组3,包含请求4的线程组4,包含请求5的线程组5 ....等等。 (注意,我会取消选中'连续运行线程组,以便立即发送所有请求)
如果每个线程组中的用户数和循环计数设置为1,则每次调用只进行一次。这意味着在单次测试运行期间总共会进行10次调用吗?
我想,我有点问的是在我的场景中,术语线程组实际上是代表唯一用户,如果是,那么线程(用户)实际代表什么
我认为我已经做到了这一点,但是如果有经验者可能能够添加一些确认或建议,指出我的方向是正确的,如果我犯了这个错误,那就太好了。
答案 0 :(得分:0)
线程组是JMeter测试计划中的一个元素,负责执行给定用户组的场景/业务工作流程。对于给定的持续时间(或迭代/循环计数)。
假设我有这样的业务流程。
users login
search for product
select a product
order the product
同一应用程序的另一个业务流程是
Admin users login
Search for users
modify the order/cancel the order/issue refund
我会为2个不同的工作流创建2个线程组。
在生产/实时环境中,我可能有1000个用户在搜索产品,500个用户可能正在下订单。
我可能只有10位管理员用户为1000位用户提供支持 - 提供退款/修改订单等[有些可能会退款/有些取消/有些修改]
所以,
Thread Group 1 [users1=1000, rampup=3600,loop count=forever, duration=7200(2 hrs)]
users login
search for product
If Controller [let only 500 users to order product]
select a product
order product
Thread Group 2 [users1=10, rampup=600,loop count=forever, duration=7200(2 hrs)]
Admin users login
Search for users
Throughput controller [40%]
modify the order
Throughput controller [30%]
cancel the order
Throughput controller [30%]
some other support
如你所说,你是JMeter的新手,我建议你检查一下。
答案 1 :(得分:0)
我相信使用Synchronizing Timer来确保所有10个线程在完全相同的时刻运行将更容易和更明智的选择。
这是关于JMeter如何工作的一些一般信息:
希望它澄清一切