首页 > 解决方案 > 如何使用 jmeter 对完整的逻辑流程进行负载测试?

问题描述

我有三个 API:

  1. 创建用户(在响应正文中返回 userId)
  2. 添加与步骤 1 中创建的用户对应的照片(在请求正文中获取 userId - 与在第一个正文的响应中获得的相同)
  3. 轮询 API 以检查用户照片更新是否完成(在请求正文中获取 userId - 与在第一个正文的响应中获得的相同)

这三个 API 的运行构成了应用程序的一个逻辑流程。我想运行和基准测试这三个 API 的“集合”。在这方面,我有以下担忧:

我应该如何决定是使用三个不同的线程组来运行这 3 个 API 还是一个线程组就足够了?

应该使用什么来从第一个 API 响应中提取“用户 ID”并将其用作第二个请求的输入。

如何在第三个 API 中根据需要实现轮询机制?

如果我说 5 个用户点击 request1,然后同样 5 个用户点击 request 2,我如何建立请求之间的映射,以便第一个 API 的 user1 映射到第二个 API?

标签: performancejmeterbenchmarking

解决方案


  1. How should I decide whether to have three different thread groups to run these 3 APIs or a single thread group should suffice ?- 我会选择单个线程组,因为它假设单个虚拟用户(或一组虚拟用户)的操作

  2. What should be used to extract 'userID' from first API response and use it as an input to second request.- 取决于响应类型,用于 JSON 的JSON 提取器,用于 XML的XPath 提取器

  3. How can I implement polling mechanism as needed in third API ?- 使用While 控制器

  4. If I have say 5 users hitting request1 and then the same 5 users hitting request 2, how can I establish mapping between requests so that user1 by first API gets mapped to second API ?- 你不需要做任何事情,每个 JMeter 线程(虚拟用户)颠倒执行采样器,所有上下文(如变量)对于这个用户(线程)来说都是本地的


推荐阅读